實驗報告-流水線cpu(處理器)的實現(xiàn)_第1頁
實驗報告-流水線cpu(處理器)的實現(xiàn)_第2頁
實驗報告-流水線cpu(處理器)的實現(xiàn)_第3頁
實驗報告-流水線cpu(處理器)的實現(xiàn)_第4頁
實驗報告-流水線cpu(處理器)的實現(xiàn)_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、本 科 實 驗 報 告實驗名稱: 流水線機制CPU的實現(xiàn) 一、實驗內(nèi)容和原理實驗內(nèi)容:1、 分析ARM指令集,明確指令功能、指令在CPU中執(zhí)行各階段中的行為;2、 設(shè)計ARM處理器的數(shù)據(jù)通路和控制通路,畫出指令描述表和指令的狀態(tài)轉(zhuǎn)換圖;3、 利用Vivado軟件,用Verilog硬件描述語言描述處理器中的各個分部件,每個分部件通過功能仿真;4、 利用Vivado軟件,用Verilog硬件描述語言實現(xiàn)分部件的互連,即實現(xiàn)數(shù)據(jù)通路和控制通路;5、 編寫測試用的匯編指令,并將匯編指令轉(zhuǎn)換為二進制的指令編碼,并且加載到處理器中的指令存儲器中。6、 將ARM處理器編程下載至FPGA實驗板,運行測試程序,

2、并通過開發(fā)板上的led或數(shù)碼管顯示執(zhí)行結(jié)果。二、實驗步驟與實驗結(jié)果寫出實驗操作的總體思路、操作規(guī)范和主要注意事項;按順序記錄實驗中每一個環(huán)節(jié)和實驗現(xiàn)象。畫出必要的實驗裝置結(jié)構(gòu)示意圖,并配以相應(yīng)文字說明;(一)說明你所實現(xiàn)的ARM處理器是多周期還是流水線CPU;一共實現(xiàn)了多少條指令?測試通過了多少條指令?我實現(xiàn)的處理器是流水線的,一共實現(xiàn)了10條指令,測試通過了10條指令。(二)描述你的設(shè)計思路,如果你實現(xiàn)了多周期和流水線CPU,請分別描述多周期CPU設(shè)計思路:流水線處理器設(shè)計思路:由于將多周期的階段分成五級流水,無法設(shè)置統(tǒng)一的控制信號,而是讓每一級流水段根據(jù)自己輸入的指令產(chǎn)生控制信號,即將各個

3、控制信號分屬到兩級流水之間的寄存器當(dāng)中。本想設(shè)計一個移位寄存器來將指令分別送入各級寄存器,但是發(fā)現(xiàn)不是特別有必要這樣做,因為可以將指令一級一級傳遞下去可以實現(xiàn)同樣的功能??偣卜治寮壛魉≈?,譯碼,執(zhí)行,存儲,寫回。如果指令之間出現(xiàn)相關(guān)則設(shè)置空指令,如果遇到空指令則所有控制信號為0,不產(chǎn)生任何有影響的操作。(3) 對于實現(xiàn)的多周期處理器,為你所實現(xiàn)的指令畫出指令描述表,和指令的狀態(tài)轉(zhuǎn)換圖,一類指令可以畫一個表或一個狀態(tài)轉(zhuǎn)換圖助記符功能操作描述LDR加載字RFrd = MemAddrSTR存儲字MemAddr = RFrdADD加RFrd = RFrn+Src2SUB減RFrd = RFrn-S

4、rc2AND與RFrd = RFrn&Src2ORR或RFrd = RFrn|Src2EOR異或RFrd = RFrnSrc2MOV移動RFrd = Src2CMP比較Set flags based on RFrn - Src2B轉(zhuǎn)移PC = PC + 4 + BranchAddr(四)畫出你設(shè)計的處理器(多周期和流水線)的數(shù)據(jù)通路和控制通路的合成圖,要求為viso圖或其他可再次修改的圖,不能僅用無法修改的圖片流水線數(shù)據(jù)通路(viso圖雙擊用viso打開)(一) 如果你設(shè)計的是流水線CPU,描述你的設(shè)計思路,實現(xiàn)方法,和多周期實現(xiàn)時的異同。流水線實現(xiàn)的時候與多周期的相同之處在于各級部件均相同,

5、控制信號也相似,不同之處在于多周期是狀態(tài)機轉(zhuǎn)換,控制信號統(tǒng)一生成,而流水線是分段處理,流水作業(yè),各級流水線寄存器產(chǎn)生控制該級流水的控制信號。將一個指令分成5個相同階段執(zhí)行,可以提高并行性,充分利用硬件資源。(二) 你的驗證程序,匯編形式,帶注釋指令功能描述結(jié)果E3A01001MOV RF1, 1RF1 = 1E3A02001MOV RF2, 1RF2 = 1E3A06002MOV RF6, 2RF6 = 2E3A07005MOV RF7, 5RF7 = 5ECMP RF6, RF7Z=(RF6=RF7?)1:0B, 3Z=1,跳至EERF1 = RF1+RF2RF1 = RF1+RF2ERF2

6、 = RF1-RF2RF2 = RF1-RF2ERF6 = RF6+1RF6 = RF6+1E8FFFFF9B, -7跳至E執(zhí)行EMEM0 = RF1MEM0 = RF1(七)你的實驗結(jié)果見實驗結(jié)果分析。三、實驗結(jié)果分析說明分析方法(邏輯分析、系統(tǒng)科學(xué)分析、模糊數(shù)學(xué)分析或統(tǒng)計分析的方法等),對原始數(shù)據(jù)進行分析和處理,寫出明確的實驗結(jié)果,并說明其可靠程度;我將斐波那契數(shù)列計算到了5,結(jié)果應(yīng)該顯示1,2,3,5.最終結(jié)果為5八、問題與建議對實驗過程中出現(xiàn)的問題進行描述、分析,提出解決思路和方法,無法解決的,要說明原因;記錄實驗心得體會,提出建議。流水線實現(xiàn)起來較多周期要容易一些,也可能是已經(jīng)對軟件

7、操作比較熟練,差錯的能力也提高了,所以將多周期改造成流水線的時候沒花太多功夫,主要就是將控制信號分屬到各個寄存器當(dāng)中去,并對RF單獨開一個讀口給Rd字段,因為要在一拍讀出三個寄存器的值較為困難。還將RF的讀功能取消時鐘上升沿觸發(fā)而是改成只要地址改變就讀,這樣可以節(jié)省在兩個流水段之間的時鐘周期數(shù)為1,取消ALUout寄存器以及CPSR,而將其結(jié)果直接輸入下一個流水段之間的寄存器,目的同樣是為了減少兩個流水段之間的時鐘周期為1。但是要保留PC的寄存器功能。四、實驗總結(jié) 本次實驗我學(xué)會了使用Verilog硬件描述語言,通過軟件設(shè)計的形式來設(shè)計硬件電路。Verilog語言不難學(xué),類似于C語言,可以類比學(xué)習(xí)。數(shù)據(jù)通路以及CPU的設(shè)計都是數(shù)字電路基礎(chǔ)以及計算機原理知識的綜合運用。本次實驗提升了我綜合運用所學(xué)知識,分析,設(shè)計電路的能力,我體

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論