第5关:采用微程序的单总线CPU设计
✨创作不易,还希望各位大佬支持一下
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!
链 接:https://pan.baidu.com/s/1Z4kAcHijGBC6MUNfDyLb5Q
提取码:lrkk
实验目的
帮助学生理解单总线结构CPU基本原理,能设计基于微程序控制器的单总线CPU,使得MIPS程序能在单总线结构上运行,最终能运行简单的排序程序sort-5.hex。
实验内容
完成前面所有实验关卡以后,在本关进行最终的联调,测试排序程序。 在RAM中加载sort-5.hex程序,ctrl+k自动运行,程序应该运行至0x7c1节拍停下,指令计数为251,注意最后一条指令是一条beq分支指令,会跳回当前指令继续执行,是死循环。
内存数据如下:
注意蓝色区域的数值为有符号降序排序。
电路框架
MipsOnBusCpu-1.circ ◆单总线CPU(微程序) 子电路
电路引脚
信号 | 输入输出 | 位宽 | 功能描述 |
---|---|---|---|
ControlBus | 输出 | 32 | 控制总线,用于EduCoder系统自动测试 |
电路测试
完成设计后,可利用文本编辑工具打开 MipsOnBusCpu-3.circ,将所有文字信息复制粘贴到 Educoder 平台的代码框中,再点击评测按钮即可进行本关测试。平台会对你设计的电路进行自动测试,为方便测试,请勿修改子电路封装。
测试输出结果说明
由于CPU运行程序节拍数较多,输出信息较多,本关自动评测时仅仅显示错误节拍的输出信息,并给出错误位提示,左侧预期输出仅仅显示输出引脚标题栏。
# | 信号 | 功能描述 |
---|---|---|
1 | Clks | 时钟节拍号,注意是十六进制 |
2 | ControlBus | 控制总线的值,具体每位的定义见控制器电路 |
3 | ErrBit | 控制总线出错位 |
测试用例如下:
Clks ControlBus ErrBit
0000 202400 xx
0001 000008 xx
0002 085002 xx
0003 100100 xx
0004 000000 xx
0005 000000 xx
0006 000000 xx
0007 000000 xx
调试技巧与常见故障
1、检查待测电路引脚框架是否和前面的图一致,调整引脚会引起待测部件封装接口改变,导致测试无法正常进行; 2、检查待测电路子电路外观也就是封装和前面的图是否一致,引脚位置,引脚顺序、引脚数目等,这个不一样肯定不正常; 3、ErrBit表示控制总线中出错的第一个bit位,可以根据对应位号查找上面的总线引脚图找到对应控制信号,然后检查逻辑表达式是否正确。
✨创作不易,还希望各位大佬支持一下
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!
链 接:https://pan.baidu.com/s/1Z4kAcHijGBC6MUNfDyLb5Q
提取码:lrkk