微機原理projecta報告實驗2簡單計算機系統(tǒng)數(shù)據(jù)通路和控制器設(shè)計_第1頁
微機原理projecta報告實驗2簡單計算機系統(tǒng)數(shù)據(jù)通路和控制器設(shè)計_第2頁
微機原理projecta報告實驗2簡單計算機系統(tǒng)數(shù)據(jù)通路和控制器設(shè)計_第3頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

2簡單計算機系統(tǒng)數(shù)據(jù)通路和控制器設(shè)計一、控制器和PC模塊0123456789/////////////0101000000010000000000000000000000011012347650123334444000000001111100000000000000001000011111110111100000000000000001000001111111000000000000110110001000000ctrlunit(inputZERO,inputoutputregoutputalways@(*)beginelseelse

elseALUSRCB=1'b0;elseWRITEMEM=1'b0;elseWRITEREG=1'b0;elseMEMTOREG=1'b0;elseelseZERO0OP的逐漸增加,各個輸出變量的值是滿足ZERO1OP1314PC模塊本質(zhì)上是和計算在ROM當(dāng)中代碼的一個較小型的時序邏輯電路,其輸入輸出關(guān)系根據(jù)指示書有:若JUMP=1,將imm對應(yīng)的立即數(shù)作為下一個PC值;若BRANCH=1并且JUMP≠1,則將imm+PC+1作為下一個PC值;若JUMP和BRANCH均為0,則直接將PC+1作為下一個PC值。根據(jù)這個邏輯關(guān)系,即可列寫邏輯電路以實現(xiàn)功moduleinputinput[7:0]imm,PC模塊的仿真如上圖所示??梢钥吹?,在BRANCH信號到來前,PC的值在每個clk的上升沿+1;在BRANCH信號到來后,由于輸入的立即數(shù)為3,從而此后PC的值在每個clk的上升沿+4;撤去BRANCH信號之后,PC的變化又回到之前的初始狀態(tài)。在JUMP信號到來之后PCclk5。綜合看來,PC模塊也能實現(xiàn)基本1、ADDWRTEREGREDESrsrt0002,rd01。寄存器模塊給出R0R2Q1Q2作為運算數(shù)ALU;ALUSRCB(0)Q2ALUb端口;ALU接收到加法信號進(jìn)行運算,運算結(jié)果輸出;WRITEREG信號控制多路開關(guān)選擇將ALU的結(jié)果輸出給寄存器組;REGDES信號控制多路開關(guān)選擇rd作為目標(biāo)寄存器,寄存器組將接收到的數(shù)據(jù)存入R1中。2、SUBC這仍然是一條R型指令,其數(shù)據(jù)通路和上一條幾乎相同。不同之處僅僅在于寄存器的ALU的運算符。此時控制器接收到的op為0101(帶進(jìn)位減ALU的控制信號為6,帶進(jìn)位減。此時控制器接收到的op為1000,送出的控制信號為ALUC(1,與,ALUSRCB和WRITEREG。rsrt0201。其數(shù)據(jù)的具體運行過程為:寄存器模塊給出R2的值Q1作為運算數(shù)給ALU;REGDES信號控制多路開關(guān)選擇立即數(shù)輸出給ALU的b端口;ALU接收到運算信號進(jìn)行與運算,運算結(jié)果輸出;WRITEREG信號控制多路開關(guān)選擇將組將接收到的數(shù)據(jù)存入R1中。4、BEQR2,R3,rs和rt分別為02和03。其數(shù)據(jù)的具體運行過程為:寄存器模塊給出R3,R2的值Q1,Q2作為運算數(shù)給ALU;REGDES信號控制多路開關(guān)選擇Q2ALU的b端口;ALU接收到運算信號進(jìn)行不帶進(jìn)位減運算,運算結(jié)果輸出,同時給出ZERO信號;根據(jù)ZERO信號,控制器同時給出BRUNCH信號;根據(jù)ZERO和BRUNCH信號,PC控制模塊改變PC5、LWR3,R2,op1011ALUC(3,加法,ALUSRCB,WRITEREG和MEMTOREG。rs和rt分別為02和03。其數(shù)據(jù)的具體運行過程為:寄存器模塊給出R2的值Q1作為運算數(shù)給ALU;REGDES信號控制多路開關(guān)選擇立即數(shù)輸出給選擇RAM的結(jié)果輸出;WRITEREG信號控制多路開關(guān)選擇將RAM的結(jié)果輸出給寄存器6、SWR2,R1, ,ALUSRCB,R1Q1作為運算數(shù)給ALUREGDES信號控制多路開關(guān)選擇立即數(shù)輸出給ALU的地址輸入,WRITEMEM控制將R2的值Q2寫入RAM。三、計算機系統(tǒng)AA計算機系統(tǒng)A主要由之前搭建的各個模塊構(gòu)成,模塊之間的關(guān)系如上圖所示。為了進(jìn)譯的主要作用是將ROM輸出的16位數(shù)據(jù)拆分成相應(yīng)的op,rs,rt,rd和imm;數(shù)據(jù)選NI端,ALUbDI端。為了便于仿真,的carry_in端口接到了高電平。在此系統(tǒng)上得到的仿真結(jié)果如下圖所示:其中,PC為指針,S為寄存器組DI的輸入,ALU_outALU的輸出,Q1,Q2為寄存器組的輸出,CS為此時ALU的運算符號,q為ROM的輸出。ADDIR1,R0,1ADDIR2,R0,2ADDIR3,R0,3ADDR1,R0,R2SUBCR3,R2,R1ANDIR1,R2,0x20BEQR2,R3,4LWR3,R2,0x22SWR2,R1,0x26JMP0A101A202A303224059C08920DB04BB22C626(帶借位,此時carry_in為1),得到0存入R3,仿真波形中的結(jié)果也是正確的,并且carry_out的值為一,表明運算沒有借位發(fā)生,與理論符合;再將R2和0x20相與的結(jié)果賦此時R22,R30PC=PC+1,仿真的結(jié)果也是這樣的,程序進(jìn)入下一語句;再接著,0x24(R2+0x22)地址的RAM數(shù)據(jù)(應(yīng)該是0)再存入R3,從仿真來看ALU運算的結(jié)果和DI的值都是正確的;再然后,將R2的數(shù)據(jù)寫入RAM的地址0x26(R+x6要設(shè)計一條實現(xiàn)比較功能的I型指令,由于四位操作碼只有15條已有指令,因此運算的結(jié)果賦給一個寄存器,其中a來自寄存器,而b為立即數(shù):如果a<b則輸出1,反之輸出零。匯編語言格式為:SLTIRtRs,imm。執(zhí)行操作為:IfRs<imm,Rd=1;elseRd=0;PC=PC+1。其編碼即按照I型指令編碼。這條語句的數(shù)據(jù)通路和寄存器操作的I型指令是一樣的,唯一的不同在于給ALU的運0123456789/////////////0101/00000001000000000000000

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論