版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、單周期CPU及其Verilog HDL設(shè)計、指令的設(shè)計MIPS32的指令的三種格式的參考:R類型:3126 2521 2016 1511 106 50oprsrtrdsafunc6位5位5位5位5位6位oprsrtimmediate6位5位5位16位I類型:3126 2521 2016 150J類型:3126 250opaddress6位26位R類型指令的op為0,具體操作由func指定。rs和rt是源寄存器號,rd是 目的寄存器號。只有移位指令使用 sa來指定移位位數(shù)。I類型指令的低16位是 立即數(shù),計算時要把它擴展到32位。依指令的不同,有零擴展和符號擴展兩種。 J類型指令右邊26位是字地
2、址,用于產(chǎn)生跳轉(zhuǎn)的目標(biāo)地址。具體的指令格式和 內(nèi)容請參考 MIPS32。設(shè)計報告中需自行設(shè)計所有指令的二進制格式和對應(yīng)的匯編指令格式。二、單周期CPU的設(shè)計我們把時鐘的電平從低到高變化的瞬間稱為時鐘上升沿, 兩個相鄰時鐘上升 沿之間的時間間隔稱為一個時鐘周期。單周期 CPU指的是一條指令的執(zhí)行在一 個這樣的時鐘周期內(nèi)完成,然后開始下一條指令的執(zhí)行,即一條指令用一個周期。2.1執(zhí)行一條指令所需的硬件電路我們的目的地是要設(shè)計CPU的硬件電路,使其能夠從存儲器中讀出一條條 指令并執(zhí)行指令所描述的操作。從存儲器中讀取指令的動作一般與指令本身的意 義無關(guān),可以以同樣的方法把指令從存儲器中取出。 而執(zhí)行指
3、令則與指令本身的 意義密切相關(guān),因此最重要是首先搞清楚 CPU要執(zhí)行的每條指令的意義。下面 以兩種類型的電路來舉例。2.1.1與取指令有關(guān)的電路指令存儲在存儲器中。CPU取指令時把程序計數(shù)器(PC)中的內(nèi)容作為存 儲器的地址,根據(jù)它來訪問存儲器,從 PC值指定的存儲單元中取來一條 32位 指令。如果取來的指令執(zhí)行時沒有引起轉(zhuǎn)移, PC的值要加4;如果轉(zhuǎn)移,要把 轉(zhuǎn)移的目標(biāo)地址寫入PC,以便在下一個時鐘周期取出下一條指令。何取指令及PC+4地址F指令n措令nXXJCXXXKMl 燈耳“蟲口PT-卜4 KXAXXXXXts;(b)掘令存儲器XXXMMXXK?:圖2.1取指令時用到的硬件電路和指令寄
4、存器如圖2.1所示,PC是一個簡單的32位寄存器,由32個D觸發(fā)器構(gòu)成。指 令存儲器(Inst Mem)的輸入端a是地址、輸出端do是數(shù)據(jù)輸出,即指令。圖 中的加法器專供PC+4使用,它的輸出接到多路器的一個輸入端。如果取來的指 令沒有引起轉(zhuǎn)移或跳轉(zhuǎn),則選擇PC+4,在時鐘上升沿處將其打入PC;若引起轉(zhuǎn) 移或跳轉(zhuǎn),則用多路器選擇下一條指令該打入的PC值。2.1.2寄存器計算類型指令執(zhí)行時所需電路寄存器類型的指令有add等。如圖2.2所示是執(zhí)行它們所需的部分硬件電路。大多數(shù)MIPS指令屬于三操作數(shù)指令。指令格式中的rs和rt是兩個5位的寄存器號,由它們從寄存器堆(Regfile)中讀出兩個32位
5、的數(shù)據(jù)。由于寄存器號有 5位,所以能從32個寄存器中選出一個。32個寄存器合在一起稱為寄存器堆(Register File)。從寄存器堆讀出的兩個32位數(shù)據(jù)分別被送到ALU的a和b的 輸入端。圖2.2執(zhí)行寄存器計算類型指令所需電路具體的計算由ALU完成。ALU的計算控制碼aluc由控制部件(Control Unit) 產(chǎn)生。這里的控制部件是簡單的組合電路,輸入信號是指令的操作碼op和功能碼func,輸出信號3個,它們分別是ALU的操作碼aluc、計算結(jié)果是否寫入寄 存器堆的控制信號wreg和下一條指令的地址選擇信號 pcsourca ALU的計算結(jié) 果要寫入寄存器堆。到底要寫入 32個寄存器中
6、的哪一個,由5位目的寄存器號 rd指定。2.2寄存器堆設(shè)計寄存器堆有兩個讀端口和一個寫端口。每個端口都有一個5位寄存器號,用于指定一個寄存器;還有32位的數(shù)據(jù)端,用于寫數(shù)據(jù)。寄存器堆的參考電路如 圖2.3,其中,dec5e是一個帶有使能端的 5-32譯碼器,mux32x32是一個32位 的32選1的多路器,reg32由許多D觸發(fā)器組成??梢杂霉δ苊枋鲲L(fēng)格的 Verilog HDL代碼來實現(xiàn),關(guān)鍵部分是類似于二維數(shù)組的寄存器變量: reg31:0register1:31(寄存器 0 的內(nèi)容永遠是 0)。圖2.3寄存器堆regfile的電路圖2.3數(shù)據(jù)存儲器和指令存儲器設(shè)計我們利用Xilinx I
7、SE自帶的IP核實現(xiàn)數(shù)據(jù)存儲器和指令存儲器的設(shè)計。在 使用IP核時,可以將其作為一個黑盒子,只關(guān)注核的功能和參數(shù)配置,不需要 了解核內(nèi)部的實現(xiàn)電路。下面以指令存儲器的設(shè)計為例。2.3.1指令存儲器的設(shè)計1、雙擊“ ISE Design Suite 14.2啟動軟件,建立好 project。2、編輯初始化存儲器的文檔。在工程目錄下生成一個txt文檔,內(nèi)容格式為:irtemory_itiit i al i zati on_radi 玄二 1&;meroary_ini-t iali 5ation_vetQr=3c0100Q0 34240050, OcODOOlb, 200500C 20a5ffff,
8、 34a8ffff, 39085555, 2009ffff, 312affff, 01493025, 01494026, 08000008,00000000, 2005ffft 000543c0, OOC84400. 00084403, 000843C2, 0109020, 20a5ffff, LaOfffc 20S40004, OSeOOOOS, 00081000, 00000000, 00000000, OOOOCOQO, 00000000, 00000000, 00000000, 00000000, 00000000, 00000000,00000000, 00000000, 00000
9、000, OOCOOOOO, 00000000J 00000000, booooooo;|圖2.4初始化ROM的文件格式文件前兩行是格式說明,第一行說明數(shù)據(jù)格式是 16進制,第二行說明是初 始向量,每個單元內(nèi)的數(shù)據(jù)用逗號隔開, 結(jié)束用分號。這里的數(shù)據(jù)是機器指令代 碼。完成后將后綴改成.coe。3、在工程管理區(qū)任意位置單擊鼠標(biāo)右鍵,在彈出的菜單中選擇 New Source 命令。在彈出如圖 2.5 的窗口,選擇 IP( Core Generator&Architecture Wizard), 設(shè)置好后點next進入IP核選擇,如圖2.6。Select Source Type:Sa 丄 uLt v
10、cmjfQ t 班 % til 訂 jclsitn gii ail 益 卍 a/H d oil j IP (CUFtE Giere*r jlar 也 Architectlureg Uuf Dc.uirrnt2 Vrfilog Modute可 V&ril&fl lest Fixture耳 WDL ModuloWIDL Litwaryf VHDL Packagey VHIDL Te處 BcrchI .J Itrnbfrdded Pf* 亡廠HyjonG eA RAMv& ROM Distributed Memory Gemerator 1 工FFI jc Stardcird BuIntcrfacM
11、-J ilL IT xs i ancSmirch IT Csi_ali3Cl*4r勺hly I? onj a.tibl4 with fhc*EL j-artCttl圖2.6選擇所需的存儲器IP核生成器4、IP核參數(shù)設(shè)置。第1頁,直接點next。第2頁,修改Memory Type選擇 項為:Single Port Rom。其余不變。第 3頁修改 Write Width和 Write Depth為需 要的值,其余不變。第4頁在Load Init File處打鉤,用之前寫好的后綴為.coe的 文件初始化存儲器。選擇Show可以看到存儲器里的內(nèi)容。以后這個關(guān)聯(lián)文件內(nèi) 容修改后都要重新做一個 Regen
12、erate Core。第5、6頁不用修改。點擊 Generate 系統(tǒng)自動生成My_Rom只讀存儲器模塊。生成完后ISE的工程管理區(qū)會增加一個模塊:My_Rom( My_Rom.xco),選 中My_Rom ( My_Rom.xco),在過程管理區(qū)會出現(xiàn)核生成器菜單。5、雙擊過程管理區(qū)的 View HDL Instruction Template在代碼邏輯區(qū)會給出My_Rom的調(diào)用參數(shù),你可以像一般模塊那樣調(diào)用。YourlnstanceName改成喜歡 的名字即可。數(shù)據(jù)存儲器的設(shè)計和指令存儲器類似,只是注意Memory Type要選擇SinglePort Ram。設(shè)計報告中應(yīng)包括完整的 CPU結(jié)構(gòu)圖和完整Verilog HDL代碼。三、單周期CPU的測試CPU測試分為兩個內(nèi)容的工作:1.通過Xilinx的仿真環(huán)境仿真CPU的工作 過程;2.編寫測試程序測試CPU的功能的正確性。對于“2.編寫測試程序測試 CPU的功能的正確性”要求用軟件實現(xiàn)一個從 匯編指令到二進制指令的解
溫馨提示
- 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度新型環(huán)保防水材料全國代理權(quán)合同范本2篇
- 2025年滬教版三年級語文下冊階段測試試卷含答案
- 《分子 細胞與組織教學(xué)課件》tbl
- 二零二五年度房地產(chǎn)估價師房地產(chǎn)項目可行性研究合同2篇
- 2025版智慧社區(qū)租賃承包經(jīng)營服務(wù)協(xié)議3篇
- 二零二五年度合同能源管理節(jié)能環(huán)保技術(shù)研發(fā)合同3篇
- 2025年仁愛科普版九年級英語上冊月考試卷含答案
- 2025年仁愛科普版八年級數(shù)學(xué)下冊階段測試試卷
- 招聘工作人員報名登記表
- 2025年人教版PEP七年級生物下冊月考試卷
- 新型電力系統(tǒng)背景下新能源發(fā)電企業(yè)技術(shù)監(jiān)督管理體系創(chuàng)新
- 北京市海淀區(qū)2023-2024學(xué)年高二上學(xué)期期末考試 英語 含答案
- 幼小銜接-認識植物-課件
- 蘇教版三年級上冊數(shù)學(xué)口算題1000道帶答案
- 南孔儒學(xué)完整版本
- 小學(xué)語文一年級上冊《秋天》評課稿
- 《公共科目》軍隊文職考試試題及解答參考(2024年)
- 眼鏡制造加工合作協(xié)議
- 公立醫(yī)院運營管理工作計劃
- 《ISO56001-2024創(chuàng)新管理體系 - 要求》之24:“9績效評價-9.1監(jiān)視、測量、分析和評價”解讀和應(yīng)用指導(dǎo)材料(雷澤佳編制-2024)
- 患病兒童護理及其家庭支持(兒科護理課件)
評論
0/150
提交評論