多周期MIPS(硬布线)8指令CPU
首先画好数据通路,可以直接沿用上次多周期微程序的数据通路

1、 微程序控制器设计
1、指令译码逻辑
根据以上指令的OpCode字段和FUNCT字段结合logism自带的比较器,可以设计出指令译码逻辑部分。



2、ALU控制逻辑
根据下方提示,00的时候ALU做加法,01的时候ALU做减法,10的时候ALU的功能由FUNC字段决定,又因为FUNC字段跟R型指令关联,且Syscall不做运算,SLT做有带符号比较运算,ADD做加法运算,我又增加了一条i型指令ADDIU,所以设计成了11的时候做加法运算,因此可以设计出以下简易的ALU控制逻辑部分


3、实现状态机


根据慕课给出的Excel表格,加上状态转移图,结合自己的一部分修改,增加了三种状态,设计出的微程序地址转移电路如下

3、控制存储器的设计
在这里我增加了两个指令分别是ADDIU和J,ADDIU是i型指令,其功能和addi基本一样,不过立即数换成了无符号数,因此控制指令基本相同,注意把alucontrol换成11以运行加法操作。J直接执行跳转也不需要其他的操作。

Sort程序测试结果:


