資源描述:
《簡(jiǎn)單16位CPU的設(shè)計(jì).doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、簡(jiǎn)單CPU的設(shè)計(jì)設(shè)計(jì)步驟:1)確定CPU功能2)擬定指令系統(tǒng)(采用MIPS)3)分析指令系統(tǒng),為數(shù)據(jù)通路選擇合適的組件,并給出組件所需的控制信號(hào),連接組件建立數(shù)據(jù)通路4)詳細(xì)分析指令在多周期通路中的執(zhí)行過(guò)程,給出指令執(zhí)行的流程圖5)依據(jù)指令執(zhí)行的流程圖,分析控制信號(hào)的取值,生成相應(yīng)的狀態(tài)轉(zhuǎn)換圖一、確定CPU功能M[2]←M[0]+M[1]二、擬定指令系統(tǒng)J類型OPTarget4位12位指令格式中的op(opcode)是指令操作碼。rs(registersource)是源操作數(shù)的寄存器號(hào)。rd(registerdes
2、tination)是目的寄存器號(hào)。rt(registertarget)即可作為源寄存器號(hào),又可作為目的寄存器號(hào),有具體的指令決定。func(function)可被認(rèn)為是擴(kuò)展的操作碼,Target表示一下個(gè)地址開(kāi)始注:操作碼4位,寄存器字段rs,rt,rd各三位,F(xiàn)un功能字段3位,Imm立即值字段6位;一共8個(gè)寄存器,R0只讀不可寫(xiě),恒為0。R類型的指令A(yù)DDRd,Rs,RtSUBRd,Rs,RtANDRd,Rs,RtORRd,Rs,RtXORRd,Rs,RtI類型的指令LWRt,Rs,imm6SWRt,Rs,im
3、m6指令操作碼OP所屬的指令格式Fun備注ADD0000R001R[rd]←R[rs]+R[rt]無(wú)符號(hào)加法SUB0000R010R[rd]←R[rs]-R[rt]無(wú)符號(hào)減法AND0000R011R[rd]←R[rs]&R[rt]邏輯與OR0000R100R[rd]←R[rs]
4、R[rt]邏輯或XOR0000R101R[rd]←R[rs]⊕R[rt]邏輯異或LW0001IR[rt]←M[R[rs]+Imm]主存中內(nèi)容寫(xiě)入寄存器SW0010IM[R[rs]+Imm]←R[rt]寄存器中內(nèi)容回寫(xiě)到主存存放在ROM中的匯
5、編指令,完成M[2]←M[0]+M[1]LWR1,0(R0);R1←M[R[0]+0],由于R(0)內(nèi)容為0,即R1←M[0]LWR2,1(R0);R1←M[R[0]+1],由于R(0)內(nèi)容為0,即R1←M[1]ADDR3,R1,R2;R3←R1+R2SWR3,2(R0);M[R[0]+2]←R3下面地址對(duì)應(yīng)著rom模塊里面ROM地址匯編指令機(jī)器指令0LWR1,0(R0)00010000011LWR2,1(R0)00010000102ADDR3,R1,R200000010100110013SWR3,2(R0)001
6、00000114INCR4,R300000110101001115SWR4,3(R0)00100001006ANDR5,R1,R200000010101010117ORR6,R1,R200000010101101008XORR7,R3,R400000111001111019SWR5,4(R0)001000010110SWR6,5(R0)001000011011SWR7,6(R0)001000011112NOTR3,R1000000100101111013SUBR4,R1,R2000000101010001014BE
7、QR1R2011000101000000115SWR3,7(R0)001000001116SWR4,8(R0)001000010017LWR1,2(R0)000100000118LWR2,3(R0)000100001019J(2)0011000000LW表示讀取數(shù)據(jù),SW表示存儲(chǔ)數(shù)據(jù),BEQ表示相等就跳轉(zhuǎn),J表示直接跳轉(zhuǎn)到某個(gè)地址一、根據(jù)指令的需求,連接組件,形成多周期的數(shù)據(jù)通路irwr,pcwr,regwr,aluoutregwr,memwr,lmdwr:相應(yīng)組件的寫(xiě)使能控制信號(hào),為1時(shí),有效Regdst:為1時(shí)
8、選擇RD;為0時(shí)選擇RT.Signex:為1時(shí)擴(kuò)展器進(jìn)行符號(hào)擴(kuò)展;為0時(shí)擴(kuò)展器進(jìn)行零擴(kuò)展。Aluselb:為1時(shí)選擇暫存器B;為0時(shí)選擇擴(kuò)展器的輸出端。Alufunc:0000與運(yùn)算;0001或運(yùn)算;0010異或;0011取反;0100加;0101減Memtoreg:為1時(shí)選擇LMD;為0時(shí)選擇aluoutput關(guān)鍵組件1)寄存器及寄存器組l設(shè)計(jì)帶復(fù)位(清零)、寫(xiě)使能控制功能的16位寄存器(PC),當(dāng)復(fù)位信號(hào)為1時(shí),寄存器輸出0,否則,在時(shí)鐘下降沿且寫(xiě)使能信號(hào)有效時(shí)將輸入數(shù)據(jù)傳送至輸出端。l設(shè)計(jì)帶寫(xiě)使能控制功能的1
9、6位寄存器(ALUO、LMD),在時(shí)鐘下降沿且寫(xiě)使能信號(hào)有效時(shí)將輸入數(shù)據(jù)傳送至輸出端。l設(shè)計(jì)暫存器(暫存器A、B),在時(shí)鐘下降沿將輸入數(shù)據(jù)傳送至輸出端。l設(shè)計(jì)指令寄存器(IR),在時(shí)鐘下降沿且寫(xiě)使能信號(hào)有效時(shí)將輸入指令傳送至輸出端,并且分解出指令的op、rs、rt、rd、func、imm字段。l設(shè)計(jì)由8個(gè)寄存器構(gòu)成的16位通用寄存器組。通用寄存器組有兩個(gè)讀口