三、单周期CPU的搭建(参考)
下面只是一个CPU搭建的例子,作为上面方法的样例,实验涉及到的CPU搭建不需要严格按照此搭建。
1、支持指令(指令集)
str ld cal_r cal_i lui b_type j jr jal jalr shamt sw lw addu ori beq sll subu slti sra slt addiu srl sllv srav srlv
2、功能模块

注:上表的SIMM表示将16位立即数作符号扩展成32位;UIMM则是无符号扩展;LIMM则是专门为lui指令设计的将低16位移至高16位,并扩展至32位。BPC则是将指令地址(PC)按照分支指令地址变换方式计算分支地址,JPC则是将指令地址(PC)按照跳转指令地址变换方式计算跳转地址。
3、数据通路
下表描述了所有指令对应的硬件连接情况,例如:对LD型指令,ADD4模块的PC端口接PC模块的Q输出,IM模块的IA端口连接PC的Q输出......
连接时注意分层和模块化。

之后,将数据通路进行整合,就是CPU除去控制器的主要通路了。这个过程中也会得到多选器的位置和结构。

4、控制信号
这里的控制信号有很强的主观性,某一个信号值代表的意义是什么并没有严格的规定,只要功能正确,任何规定都是合理的。下面只是其中一种仅仅保证功能的规定。
真值表:

再根据真值表列出(每一位)控制信号的逻辑表达式。(最小项法或最大项法)
最后构造逻辑电路,连线。
5、好的范例

上图搭建的CPU可以明显的看出单周期CPU的五个功能模块加一个控制单元。仅供参考,正确就好。