內(nèi)容課件說明_第1頁
內(nèi)容課件說明_第2頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

5段流水線CPU設(shè)計實掌握流水方式下,通過I/O端口與外部設(shè)備進(jìn)行信息交互的方采用Verilog在quartusⅡ中實現(xiàn)基本的具有20條MIPS指令的5段流水CPU采用I/O統(tǒng)一編址方式,即將輸入輸出的I/O地址空間,作為數(shù)據(jù)存取空間的一部分,實現(xiàn)CPU與外部設(shè)備利用設(shè)計的I/O端口,通過lw指令,輸入DE2實驗板上的按鍵等輸入設(shè)備信息。即將外部設(shè)備狀態(tài)CPU內(nèi)部寄存利用設(shè)計的I/O端口,通過sw指令,輸出對DE2實驗板上的LED燈等輸出設(shè)備的控制信號(息)。即將對外部設(shè)備的控制數(shù)據(jù),從CPU內(nèi)部的寄存器,寫入到外部設(shè)備的相應(yīng)控制寄存器(或可直接連利用自己編寫的程序代碼,在自己設(shè)計的CPU上,實現(xiàn)對板載輸入開關(guān)或按鍵的狀態(tài)輸入,并將判別或處理結(jié)果,利用板載LED燈或7段LED數(shù)碼管顯示出來。例如,將一路4bit二進(jìn)制輸入與另一路4bit二進(jìn)制輸入相加,利用兩組分別2個LED數(shù)碼管以10進(jìn)制形式顯示“被加數(shù)”和“加數(shù)”,另外一組LED數(shù)碼管以10進(jìn)制形式顯示“和”等。(具體任務(wù)形式不做嚴(yán)格規(guī)定,同在實現(xiàn)MIPS基本20條指令的基礎(chǔ)上,掌握新指令的擴展方在實驗報告中,匯報自己的設(shè)計思想和方法;并以匯編語言的形式,提供以上兩種指令集(MIPS和Y86)DE1-SOC實驗板1示波器1數(shù)字萬用表1開發(fā)板功能布將六位數(shù)碼管作為數(shù)據(jù)器的結(jié)果顯示。數(shù)碼管對應(yīng)的端口與相應(yīng)地址對應(yīng),通過sw指令存入與數(shù)碼管相連的地址中。實驗原理實驗關(guān)鍵步驟與代 puter作為top-leveldesignentity,負(fù)責(zé)定義top-leveldesignentity中定義流水線的基本結(jié)構(gòu),包含五個階段的部件及其之間的流水線寄存器。通過輸入pipeifpipeifif_stage( ,pc4,ins,mem_clockpipeirinst_reg(pc4,ins,wpcir,clock,resetn,dpc4,instea,eb,eimm,ern0,eshift,ejal,epc4);//ID/EXE流水線寄存eshift,ern0,epc4,ejal,ern,ealu);//EXEstagepipememmem_stage(mwmem,malu,mb,clock,mem_clock,mmo,in_port0,in_port1,out_port0,out_port1,out_port2);//pipemwregmw_reg(wwreg,wm2reg,wmo,walu,wrnMEM/WB流水線寄存器mux2x32wb_stage(walu,wmo,wm2reg,wdi);//WBstage針對于每個部件,根據(jù)實驗原理圖進(jìn)行布線。使用多選器對信號來源進(jìn)行管理。(程序是對實驗原理圖的文本語言描述,同時與上次單周期CPU相似,故不列出代碼)與上次實驗相似,增加7段數(shù)碼管模塊用來對sw指令的數(shù)據(jù)器結(jié)果進(jìn)行顯示。(之后列出的代碼主要為在原有代碼中新增的代碼)對于數(shù)據(jù),使用內(nèi)部前推的方法解決。數(shù)據(jù)主要的原因在于運算需要一個數(shù)據(jù),但是該數(shù)據(jù)在上一條或上兩條指令尚未計算出來,所以當(dāng)前指令使用的數(shù)據(jù)將是之前步驟的寄存器數(shù)。因此需要設(shè)置轉(zhuǎn)發(fā)機制,當(dāng)流水線在D階段時數(shù)據(jù)時,對X階段和ME階段所產(chǎn)生的數(shù)據(jù)(即前兩條指令運行狀態(tài))檢查。如果發(fā)現(xiàn)數(shù)據(jù),則將X階段和MEM階段的數(shù)據(jù)轉(zhuǎn)發(fā)至D階段。使用多選器管理操作數(shù)是否可能存在。if(MEM/WB.regWriteand(MEM/WB.RegisterRd!=0)and(EX/MEM.RegisterRd!=ID/EX.RegisterRs)and(MEM/WB.RegisterRd==ID/EX.RegisterRs)ForwardA=if(MEM/WB.regWriteand(MEM/WB.RegisterRd!=0)and(EX/MEM.RegisterRd!=ID/EX.RegisterRs)and(MEM/WB.RegisterRd==ID/EX.RegisterRt)ForwardB=456if(ewreg&(ern!=0)&(ern==rs)&789if(mwreg&(mrn!=0)&(mrn==if(ewreg&(ern!=0)&(ern==rt)&if(mwreg&(mrn!=0)&(mrn==另一種數(shù)據(jù)無法使用內(nèi)部前推的方式解決。當(dāng)指令的上一條指令是lw指令同時Rt寄存器是當(dāng)前指令所需要的寄存器時,由于lw指令直到MEM階段才能夠讀出結(jié)果,而當(dāng)前指令在階段已經(jīng)需要該結(jié)果,因此內(nèi)部前推無法解決該問題。對于這種類型的數(shù)據(jù),不得不使用停頓。if(ID/EX.MemRead((ID/EX.RegisterRt=IF/ID.RegisterRs)or(ID/EX.RegisterRt=IF/ID.RegisterRt)))stallthepipeline使流水線暫停一個周期的方法是不往PC和IR中寫入新的數(shù)據(jù),因此需要一個wpir信號進(jìn)行管理。當(dāng)wpir為0時,不對PC和I寫入數(shù)據(jù),由于指令沒有更新,相當(dāng)于插入一條NOP指令。wpci信號參照上方的進(jìn)行設(shè)計。對于控制,由于跳轉(zhuǎn)指令的執(zhí)行導(dǎo)致指令流(P)發(fā)生變化,原來已進(jìn)入流水線的指令可能作廢,從而導(dǎo)致流水線性能損失。針對控制,使用最簡單的凍結(jié)流水線的方法。利用wir信號加入延遲來做到這一點。(這樣設(shè)計可能會對于某些控制存在疏漏)前步為寄存器先賦值,其中前三個寄存器各對應(yīng)一個區(qū)域的數(shù)碼管,而后兩個寄存器各對應(yīng)5lw和sw操作,實現(xiàn)數(shù)據(jù)與使用者的交互。本次實驗,讓我對流水線C

溫馨提示

  • 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

提交評論