8指令CPU设计
设计8指令CPU执行冒泡排序汇编程序⭐
8指令CPU设计
单周期硬布线控制器
设计指令译码逻辑
首先从OpCode和FUNCT中提取选择的指令
根据表格中的OpCode和FUNCT的值来填写上面指令译码逻辑
首先对OpCode进行分类
OpCode |
0 | 4 | 5 | 8 | 35 | 43 |
|---|---|---|---|---|---|---|
| 指令 | ADD & SLT & SYSCALL | BEQ | BNE | ADDI | LW | SW |
填入对应的值
随后设计OpCode=0x00时FUNCT的逻辑,根据上面表格可以使用与门和比较器来实现。
其中的R_TYPE引脚为除了SysCall之外的R类型指令,所以其逻辑为(ADD^SLT) & ~SysCall
所以整体的指令译码逻辑为
ALU控制器逻辑
首先观察需要用到ALU_OP控制的指令,一共有五个ADD ADDI LW SW 和SLT。其中前面四个进行加法运算ALU_OP = 5而SLT进行比较运算ALU_OP = 11,所以可以不使用给定的OP和FUNC隧道引脚,重新建立一个SLT隧道用多路选择器来选择ALU_OP的值。
或者使用比较器和多路选择器也可以分离出SLT指令实现
机器输出信号的控制

根据各个控制信号产生的逻辑连接电路
最后,我连好的整个电路如下图所示
连接数据通路