第4关:单总线CPU微程序控制器设计
✨创作不易,还希望各位大佬支持一下
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!
链 接:https://pan.baidu.com/s/14y2i4aT-wnqpq0llmCauSg
提取码:bwe
实验目的
帮助学生理解微程序控制器基本原理,要求学生能够设计微程序控制器。
实验内容
完善下图中的微程序框架,将微程序入口查找逻辑,判别测试逻辑,控制存储器等部件进行适当连接,实现微程序控制器的主要数据通路,设计微程序并加载到控制存储器中。
微程序设计可以通过填写3号EXCEL文件中的微程序自动生成表自动产生
电路引脚
信号 | 输入输出 | 位宽 | 功能描述 |
---|---|---|---|
IR | 输入 | 32 | MIPS指令字 |
equal | 输入 | 1 | 条件反馈信号,表示运算相等 |
mAddr | 输出 | 5 | 当前微指令地址 |
ControlBus | 输出 | 5 | 微指令字的控制字段 |
子电路外观如下:
电路框架
MipsOnBusCpu-1.circ ◇微程序控制器 子电路 注意:可以整体平移引脚框到电路任何位置,但由于电路封装与引脚位置和顺序有关系,所以框内引脚一律不许增删改,哪怕是移动位置调整顺序,改变引脚朝向,也不要在电路中增加额外的引脚,否则测试系统无法测试。
电路测试
完成设计后,可利用文本编辑工具打开 MipsOnBusCpu-1.circ,将所有文字信息复制粘贴到 Educoder 平台的代码框中,再点击评测按钮即可进行本关测试。平台会对你设计的电路进行自动测试,为方便测试,请勿修改子电路封装。
测试输出结果说明
最终输出包括个检测引脚的期望值和实际值,出错时请对比查错。
# | 信号 | 功能描述 |
---|---|---|
1 | Cnt | 测试用例编号,注意是十六进制 |
2 | Instr | MIPS指令字 |
3 | equal | 比较相等反馈信号 |
4 | mAddr | 5位微指令地址 |
5 | cBus | 控制总线的值,具体每位的定义见控制器电路 |
6 | ErrBit | 控制总线中出错的第一个bit位的位置 |
Cnt Instr equal mAddr 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
...
调试技巧与常见故障
1、检查待测电路引脚框架是否和前面的图一致,调整引脚会引起待测部件封装接口改变,导致测试无法正常进行;
2、检查待测电路子电路外观也就是封装和前面的图是否一致,引脚位置,引脚顺序、引脚数目等,这个不一样肯定不正常;
3、ErrBit表示控制总线中出错的第一个bit位的位置,可以根据对应位号查找上面的总线引脚图找到对应控制信号,然后检查逻辑表达式是否正确。
✨创作不易,还希望各位大佬支持一下
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!
链 接:https://pan.baidu.com/s/14y2i4aT-wnqpq0llmCauSg
提取码:bwes