构建单周期CPU记录Ⅲ

本文最后更新于 2024年9月12日 晚上

构建单周期CPU记录Ⅲ(addi, j)

addi

对于addi,不需要新增器件,addi与add的不同,本质上是将其中一个寄存器换成了立即数.

比较两者的机器码

add
addi

可以发现:

  • rs不变
  • rt的作用从原来的提供加数,变为赋值地址
  • rd消失,立即数代替rt成为加数

因此修改如下:

  • A1端口不变,仍然连接Instr[25:21]
  • SrcB不再接收Instr[20:16]的值,而是立即数
  • A3端口不再接收Instr[15:11]的值,而是Instr[20:16]

我们对ALUSrc,RegDst两个信号作出修改

j

对NXTAD(对下一个地址的计算器)做出修改,新增Jump信号

NXTAD(新增Jump信号)

整体

整体

信号表

指令 RegWrite MemWrite ALUControl RegDst MemtoReg ALUSrc Branch Jump
lw 1 0 010(加法) 0 1 1 0 0
sw 0 1 010(加法) X X 1 0 0
beq 0 0 110(减法) X X 0 1 0
add 1 0 010(加法) 1 0 0 0 0
sub 1 0 110(减法) 1 0 0 0 0
and 1 0 000(与) 1 0 0 0 0
or 1 0 001(或) 1 0 0 0 0
slt 1 0 111(小于置位) 1 0 0 0 0
addi 1 0 010(加法) 0 0 1 0 0
j 0 0 XXX X X X X 1

构建单周期CPU记录Ⅲ
https://meteor041.git.io/2024/09/12/构建单周期CPU记录Ⅲ/
作者
meteor041
发布于
2024年9月12日
许可协议