控制器

控制器實(shí)現(xiàn)示意圖.png
輸入:操作碼
opcode和功能碼func-
實(shí)現(xiàn):
步驟1 將操作碼
opcode和功能碼func接入到一個(gè)由與門的邏輯電路中,得到rtype、add、sub、ori、lw、sw、beq等7組中間信號(hào);
步驟2 將步驟1產(chǎn)生的7個(gè)中間信號(hào)接入到一個(gè)由或門組成的邏輯電路中,得到控制信號(hào)RegDst、ALUSrc、MemtoReg、RegWr、MemWr、nPC_sel、ExtOp、ALUctr[0]、ALUctr[1]等9種控制信號(hào) 輸出:控制信號(hào)
RegDst、ALUSrc、MemtoReg、RegWr、MemWr、nPC_sel、ExtOp、ALUctr[0]、ALUctr[1]
輸入信號(hào)到中間信號(hào)
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)
中間信號(hào)到控制信號(hào)
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
匯總輸入信號(hào)、中間信號(hào)、控制信號(hào)

控制器的輸入輸出關(guān)系總表.png
- 縱向
分解出每個(gè)指令需要的控制信號(hào); - 橫向
通過中間信號(hào),可以建立起輸入信號(hào)和單個(gè)控制信號(hào)之間的關(guān)系;