实验目的
帮助学生理解现代时序系统中硬布线控制器的设计原理。
实验内容
在实现指令译码、现代时序状态机模块后,最终实现硬布线控制器的集成,在下图中完成硬布线控制器框架连接,注意硬布线控制器组合逻辑不需要实现直接采用微程序控制器的控制存储器代替即可。
电路引脚
信号 | 输入输出 | 位宽 | 功能描述 |
---|---|---|---|
IR | 输入 | 32 | MIPS指令字 |
CLK | 输入 | 1 | 时钟输入 |
equal | 输入 | 1 | 条件状态信号,相等标志 |
控制总线 | 输出 | 22 | 所有控制信号汇总而成的控制总线 |
当前状态值 | 输出 | 5 | 状态字的值 |
测试输出
# | 信号 | 功能描述 |
---|---|---|
1 | Cnt | 测试用例编号,注意是十六进制 |
2 | Instr | MIPS指令字 |
3 | equal | 比较相等反馈信号 |
4 | Statu | 状态寄存器当前值 |
5 | cBus | 控制总线的值 |
6 | ErrBit | 控制总线中出错的第一个bit位的位置 |
Cnt Instr equal Statu cBus ErrBit
00 2010ffff 1 00 202400 xx
01 2010ffff 1 01 000008 xx
02 2010ffff 1 02 085002 xx
03 2010ffff 1 03 100100 xx
04 2010ffff 1 16 040400 xx
05 2010ffff 1 17 020010 xx
06 2010ffff 1 18 080200 xx
07 0274402a 1 00 202400 xx
08 0274402a 1 01 000008 xx
实验步骤
- 设计完硬部线状态机后,连接硬部线控制器。
- 要先将存储内容存入存储器中:
- 时钟触发为下降沿触发,上升沿触发则会重复输出。
- 分线器配置:
测试:
预期输出:
Cnt Instr equal Statu cBus ErrBit
00 2010ffff 1 00 202400 xx
01 2010ffff 1 01 000008 xx
02 2010ffff 1 02 085002 xx
03 2010ffff 1 03 100100 xx
04 2010ffff 1 16 040400 xx
05 2010ffff 1 17 020010 xx
06 2010ffff 1 18 080200 xx
07 0274402a 1 00 202400 xx
08 0274402a 1 01 000008 xx
09 0274402a 1 02 085002 xx
0a 0274402a 1 03 100100 xx
0b 0274402a 1 13 040400 xx
0c 0274402a 1 14 040044 xx
0d 0274402a 1 15 080220 xx
0e ae300200 1 00 202400 xx
0f ae300200 1 01 000008 xx
10 ae300200 1 02 085002 xx
11 ae300200 1 03 100100 xx
12 ae300200 1 09 040400 xx
13 ae300200 1 0a 020010 xx
14 ae300200 1 0b 082000 xx
15 ae300200 1 0c 040840 xx
16 ae300200 1 0d 008001 xx
17 8e130200 1 00 202400 xx
18 8e130200 1 01 000008 xx
19 8e130200 1 02 085002 xx
1a 8e130200 1 03 100100 xx
1b 8e130200 1 04 040400 xx
1c 8e130200 1 05 020010 xx
1d 8e130200 1 06 082000 xx
1e 8e130200 1 07 001002 xx
1f 8e130200 1 08 100200 xx
20 1000ffff 1 00 202400 xx
21 1000ffff 1 01 000008 xx
22 1000ffff 1 02 085002 xx
23 1000ffff 1 03 100100 xx
24 1000ffff 1 0e 040400 xx
25 1000ffff 1 0f 0400c0 xx
26 1000ffff 1 10 200400 xx
27 1000ffff 1 11 010010 xx
28 1000ffff 0 12 084000 xx
29 2010ffff 0 00 202400 xx
2a 2010ffff 0 01 000008 xx
2b 2010ffff 0 02 085002 xx
2c 2010ffff 0 03 100100 xx
2d 2010ffff 0 16 040400 xx
2e 2010ffff 0 17 020010 xx
2f 2010ffff 0 18 080200 xx
30 0274402a 0 00 202400 xx
31 0274402a 0 01 000008 xx
32 0274402a 0 02 085002 xx
33 0274402a 0 03 100100 xx
34 0274402a 0 13 040400 xx
35 0274402a 0 14 040044 xx
36 0274402a 0 15 080220 xx
37 ae300200 0 00 202400 xx
38 ae300200 0 01 000008 xx
39 ae300200 0 02 085002 xx
3a ae300200 0 03 100100 xx
3b ae300200 0 09 040400 xx
3c ae300200 0 0a 020010 xx
3d ae300200 0 0b 082000 xx
3e ae300200 0 0c 040840 xx
3f ae300200 0 0d 008001 xx
40 8e130200 0 00 202400 xx
41 8e130200 0 01 000008 xx
42 8e130200 0 02 085002 xx
43 8e130200 0 03 100100 xx
44 8e130200 0 04 040400 xx
45 8e130200 0 05 020010 xx
46 8e130200 0 06 082000 xx
47 8e130200 0 07 001002 xx
48 8e130200 0 08 100200 xx
49 1000ffff 0 00 202400 xx
4a 1000ffff 0 01 000008 xx
4b 1000ffff 0 02 085002 xx
4c 1000ffff 0 03 100100 xx
4d 1000ffff 0 0e 040400 xx
4e 1000ffff 0 0f 0400c0 xx
4f 1000ffff 0 00 202400 xx
实际输出:
Cnt Instr equal Statu cBus ErrBit
00 2010ffff 1 00 202400 xx
01 2010ffff 1 01 000008 xx
02 2010ffff 1 02 085002 xx
03 2010ffff 1 03 100100 xx
04 2010ffff 1 16 040400 xx
05 2010ffff 1 17 020010 xx
06 2010ffff 1 18 080200 xx
07 0274402a 1 00 202400 xx
08 0274402a 1 01 000008 xx
09 0274402a 1 02 085002 xx
0a 0274402a 1 03 100100 xx
0b 0274402a 1 13 040400 xx
0c 0274402a 1 14 040044 xx
0d 0274402a 1 15 080220 xx
0e ae300200 1 00 202400 xx
0f ae300200 1 01 000008 xx
10 ae300200 1 02 085002 xx
11 ae300200 1 03 100100 xx
12 ae300200 1 09 040400 xx
13 ae300200 1 0a 020010 xx
14 ae300200 1 0b 082000 xx
15 ae300200 1 0c 040840 xx
16 ae300200 1 0d 008001 xx
17 8e130200 1 00 202400 xx
18 8e130200 1 01 000008 xx
19 8e130200 1 02 085002 xx
1a 8e130200 1 03 100100 xx
1b 8e130200 1 04 040400 xx
1c 8e130200 1 05 020010 xx
1d 8e130200 1 06 082000 xx
1e 8e130200 1 07 001002 xx
1f 8e130200 1 08 100200 xx
20 1000ffff 1 00 202400 xx
21 1000ffff 1 01 000008 xx
22 1000ffff 1 02 085002 xx
23 1000ffff 1 03 100100 xx
24 1000ffff 1 0e 040400 xx
25 1000ffff 1 0f 0400c0 xx
26 1000ffff 1 10 200400 xx
27 1000ffff 1 11 010010 xx
28 1000ffff 0 12 084000 xx
29 2010ffff 0 00 202400 xx
2a 2010ffff 0 01 000008 xx
2b 2010ffff 0 02 085002 xx
2c 2010ffff 0 03 100100 xx
2d 2010ffff 0 16 040400 xx
2e 2010ffff 0 17 020010 xx
2f 2010ffff 0 18 080200 xx
30 0274402a 0 00 202400 xx
31 0274402a 0 01 000008 xx
32 0274402a 0 02 085002 xx
33 0274402a 0 03 100100 xx
34 0274402a 0 13 040400 xx
35 0274402a 0 14 040044 xx
36 0274402a 0 15 080220 xx
37 ae300200 0 00 202400 xx
38 ae300200 0 01 000008 xx
39 ae300200 0 02 085002 xx
3a ae300200 0 03 100100 xx
3b ae300200 0 09 040400 xx
3c ae300200 0 0a 020010 xx
3d ae300200 0 0b 082000 xx
3e ae300200 0 0c 040840 xx
3f ae300200 0 0d 008001 xx
40 8e130200 0 00 202400 xx
41 8e130200 0 01 000008 xx
42 8e130200 0 02 085002 xx
43 8e130200 0 03 100100 xx
44 8e130200 0 04 040400 xx
45 8e130200 0 05 020010 xx
46 8e130200 0 06 082000 xx
47 8e130200 0 07 001002 xx
48 8e130200 0 08 100200 xx
49 1000ffff 0 00 202400 xx
4a 1000ffff 0 01 000008 xx
4b 1000ffff 0 02 085002 xx
4c 1000ffff 0 03 100100 xx
4d 1000ffff 0 0e 040400 xx
4e 1000ffff 0 0f 0400c0 xx
4f 1000ffff 0 00 202400 xx