circ文件下载链接 注意文末
第一关:MIPS指令译码器设计
要求我们设计译码器,那么首先要知道要指令的具体格式,通过查阅MIPS指令手册可以知道
OP | Func | |
---|---|---|
SLT | 000000 | 101010 |
BEQ | 000100 | / |
ADDI | 001000 | / |
LW | 100011 | / |
SW | 101011 | / |
于是将获得的OP、Func和常数对比就行,相同输出1
以下给出例子:
更新,答案如下:
第2关:定长指令周期—时序发生器FSM设计
根据下图,知道次态和原态之间的关系。
输入输出:
法1:
填写表格,生成表达式:
输入表达式:
法2:
直接填真值表:
第3关:定长指令周期—时序发生器输出函数设计
解法:同样根据测试用例,填写表格
第4关:硬布线控制器组合逻辑单元
解法:
根据下表,填写题目给的excel表格。
图一
注意:slt指令的执行周期输出信号如下
T1:rout xin
T2:rout rs/rt slt
T3:zout rin regdst
rs/rt是regtgt信号,Cin是PCin(当输入equal=1,T3=1,beq时,输出PCin=1)
将excel生成的表达式输入到logisim中。
图二
------------------------------------------------------5/25更新-----------------------------------------------------------
以下具体讲一下填写excel表格的方法:
以图一中的计算周期为例:
取指周期对应的输入是Mif,节拍T1对应的输入是T1,所以图二表格中的输入的Mif,T1填1;
而看图1可以知道对应的输出是PCout,ARin,Xin,那么图二表格中的输出在PCout,ARin,Xin对应位置下填1;
以图一中的计算周期的lw指令为例:
计算周期对应的输入是Mcal,节拍T1对应的输入是T1,指令lw对应的输入是LW,所以图二表格中的输入的Mcal,T1,LW填1;
而看图1可以知道对应的输出是Riout,Xin,那么图二表格中的输出在对应位置下填1;
整个表格的填写大致如下,不保证全对(只能找到早期的表格了,后面可能有修改,与SLT命令有关的行需要读者自己根据平台输出再调整一下)
如果根据此表格填写出现问题,可以参考评论区 bists的意见:slt部分确实有出错,T1部分应该将Rs/Rt信号和slt信号剔除(对应ControlBus(hex): 40484一行)
第5关:定长指令周期—硬布线控制器设计
解法:根据下图连线
提醒:指令信号没用到,CLK接的位置如下,状态寄存器的要变成下降沿;
更新:答案如下
第六关:
根据题目,加载数据
运行就行,提交。
mvjc