nandgame--Level 5.3: CPU: Control Unit
任务5.3:控制单元
任务描述:
任务说明:
输入:指令I和时钟CL
输出:
J标志:ALU模块输出的是否满足跳转条件的标志位。
A:寄存器的当前值。
CI:运算指令标志。需要存储的值是ALU的输出还是指令的X的值。如果是要保存指令I译码出来的X,则CI为0;如果是要保存ALU的计算结果,则CI为1。
SM:源操作数存储器。送到ALU单元的Y数据来自哪里。如果是来自A寄存器,则SM为0;如果是来自RAM,则SM为1。送到ALU单元的X数据永远是D寄存器。
OP标志:译码器输出的,送给ALU单元的运算符标志组。
DST标志:哪些寄存器要保存
CD标志:译码器输出的条件标志。
分析:
1,指令首先要译码。
2,还需要送到ALU进行运算。ALU的输入X=D;Y=A或者M,由sm来选择。op则是指令译码器的结果op.
3,需要保存到memory中的数据X也有两种情况,由CI来选择是来自于指令中的X,还是来自ALU的运算结果。
4,J标志直接由condition模块根据译码器的条件标志CD和ALU计算的结果X来确定。
5,最终结果: