控制器
輸入:操作碼
opcode
和功能碼func
-
實現(xiàn):
步驟1 將操作碼
opcode
和功能碼func
接入到一個由與門的邏輯電路中肤京,得到rtype
找筝、add
、sub
畜伐、ori
、lw
躺率、sw
玛界、beq
等7組中間信號;
步驟2 將步驟1產(chǎn)生的7個中間信號接入到一個由或門組成的邏輯電路中肥照,得到控制信號RegDst
脚仔、ALUSrc
、MemtoReg
舆绎、RegWr
鲤脏、MemWr
、nPC_sel
吕朵、ExtOp
猎醇、ALUctr[0]
、ALUctr[1]
等9種控制信號 輸出:控制信號
RegDst
努溃、ALUSrc
硫嘶、MemtoReg
、RegWr
梧税、MemWr
沦疾、nPC_sel
、ExtOp
第队、ALUctr[0]
哮塞、ALUctr[1]
輸入信號到中間信號
rtype = (~op5)·(~op4)·(~op3)·(~op2)·(~op1)·(~op0)
add = rtype·func5·(~func4)·(~func3)·(~func2)·(~func1)·(~func0)
sub = rtype·func5·(~func4)·(~func3)·(~func2)·(~func1)·(~func0)
ori = (~op5)·(~op4)·op3·op2·(~op1)·(~op0)
lw = op5·(~op4)·(~op3)·(~op2)·op1·op0
sw = op5·(~op4)·op3·(~op2)·(~op1)·(~op0)
beq = (~op5)·(~op4)·(~op3)·op2·(~op1)·(~op0)
中間信號到控制信號
RegDst = add + sub
ALUSrc = ori + lw + sw
MemtoReg = lw
RegWr = add + sub + ori + lw
MemWr = sw
nPC_sel = beq
ExtOp = lw + sw
ALUctr[0] = sub + beq
ALUctr[1] = or
匯總輸入信號、中間信號凳谦、控制信號
- 縱向
分解出每個指令需要的控制信號忆畅; - 橫向
通過中間信號,可以建立起輸入信號和單個控制信號之間的關(guān)系尸执;