實(shí)驗(yàn)五處理器數(shù)據(jù)通路實(shí)驗(yàn)_第1頁(yè)
實(shí)驗(yàn)五處理器數(shù)據(jù)通路實(shí)驗(yàn)_第2頁(yè)
實(shí)驗(yàn)五處理器數(shù)據(jù)通路實(shí)驗(yàn)_第3頁(yè)
實(shí)驗(yàn)五處理器數(shù)據(jù)通路實(shí)驗(yàn)_第4頁(yè)
實(shí)驗(yàn)五處理器數(shù)據(jù)通路實(shí)驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)五 數(shù)據(jù)通路的設(shè)計(jì)和驗(yàn)證一、 實(shí)驗(yàn)?zāi)康?、 通過(guò)數(shù)據(jù)通路的的設(shè)計(jì)和驗(yàn)證,掌握CPU數(shù)據(jù)通路的基本原理和控制信號(hào)的順序。2、 了解QUARTUS II硬件描述語(yǔ)言和原理圖混合輸入設(shè)計(jì)的過(guò)程。3、 掌握Simplest CPU的數(shù)據(jù)通路的控制方法,為控制器實(shí)驗(yàn)奠定基礎(chǔ)。二、 實(shí)驗(yàn)原理如圖1所示是本次實(shí)驗(yàn)所設(shè)計(jì)的Simplest CPU的數(shù)據(jù)通路和存儲(chǔ)器部分的原理框圖,該處理器支持的指令集如表1所示,只有4條指令。該CPU的寄存器如表2所示,數(shù)據(jù)通路的控制信號(hào)如表2所示。表1 SimplestCPU的指令集名稱實(shí)現(xiàn)的操作功能LD addrAC MEMAR取存儲(chǔ)器地址addr的數(shù)據(jù)到累加器ACST

2、 addrMEMAR AC存累加器AC數(shù)據(jù)到地址addr的存儲(chǔ)器ADD addrAC (AC)+MEMAR累加器AC加上存儲(chǔ)器地址addr數(shù)據(jù)JZ addr若AC為0則PC addr,否則,順序執(zhí)行下條指令累加器為0則從地址addr取指令執(zhí)行該處理器的存儲(chǔ)器為64單元,編址063,通過(guò)地址總線Addr5.0進(jìn)行選擇;每個(gè)單元數(shù)據(jù)寬度8位,分別通過(guò)Dout7.0和Din7.0進(jìn)行數(shù)據(jù)的讀寫,存儲(chǔ)器的讀、寫控制信號(hào)分別為MRD和MWR。表2 寄存器介紹寄存器中文名稱寬度功能PC程序計(jì)數(shù)器6位存放CPU要執(zhí)行的下一條指令的存儲(chǔ)器地址AR地址寄存器6位存放存儲(chǔ)器的地址,為訪問(wèn)存儲(chǔ)器提供地址信息DR數(shù)據(jù)

3、寄存器8位加法指令中提供第二個(gè)數(shù)據(jù)。IR指令寄存器2位存放取回的指令的2位操作碼AC累加器8位CPU的主要寄存器,存放源數(shù)據(jù)和結(jié)果圖1 實(shí)驗(yàn)使用的數(shù)據(jù)通路和存儲(chǔ)器原理框圖表3 數(shù)據(jù)通路控制信號(hào)信號(hào)中文名稱寬度功能mrd存儲(chǔ)器讀信號(hào)1位mrd=1:存儲(chǔ)器在Dout7.0輸出數(shù)據(jù)mwr存儲(chǔ)器寫信號(hào)1位mwr=1:將Din7.0的數(shù)據(jù)寫入存儲(chǔ)器PCloadPC寫信號(hào)1位PCload=1:內(nèi)部總線數(shù)據(jù)寫入PCPCincPC+1信號(hào)1位PCinc=1:PC寄存器的值自增1,即:PC<-(PC)+1PCbusPC讀信號(hào)1位PCbus=1:PC值輸出到內(nèi)部總線,即:內(nèi)部總線<-(PC)ARloa

4、dAR寫信號(hào)1位ARload=1:內(nèi)部總線數(shù)據(jù)寫入ARARbusAR讀信號(hào)1位ARbus=1:AR值輸出到內(nèi)部總線,即:內(nèi)部總線<-(AR)DRloadDR寫信號(hào)1位DRload=1:內(nèi)部總線數(shù)據(jù)寫入DRDRbusDR讀信號(hào)1位DRbus=1:DR值輸出到內(nèi)部總線,即:內(nèi)部總線<-(DR)IRloadIR寫信號(hào)1位IRload=1:內(nèi)部總線數(shù)據(jù)寫入IRACloadAC寫信號(hào)1位ARload=1:內(nèi)部總線數(shù)據(jù)寫入ACACbusAC讀信號(hào)1位ACbus=1:AC值輸出到內(nèi)部總線,即:內(nèi)部總線<-(AC)ALUselALU功能選擇1位ALUsel=0:內(nèi)部總線數(shù)據(jù) -> AC

5、ALUsel=1:(AC)+內(nèi)部總線數(shù)據(jù) -> AC三、 實(shí)驗(yàn)內(nèi)容本實(shí)驗(yàn)由多個(gè)設(shè)計(jì)文件構(gòu)成,并且頂層設(shè)計(jì)采用原理圖輸入方式,如圖2所示是本次實(shí)驗(yàn)的頂層設(shè)計(jì)原理圖。圖中的各個(gè)模塊采用verilog硬件描述語(yǔ)言設(shè)計(jì),對(duì)應(yīng)的模塊分別是時(shí)鐘分頻器ClockInput、數(shù)據(jù)通路datapath、存儲(chǔ)器mem、顯示輸出display和與PC機(jī)的輸入輸出調(diào)試接口PC_InOut,對(duì)應(yīng)的設(shè)計(jì)文件分別是ClockInput.v、datapath.v、mem.v、display.v和PC_InOut.v,如表4所示。表4 本實(shí)驗(yàn)所用的設(shè)計(jì)文件模塊文件功能頂層模塊EXP5.bdf原理圖設(shè)計(jì)的頂層模塊時(shí)鐘分頻器

6、ClockInput.v將外部輸入的1MHz的時(shí)鐘信號(hào)分頻為需要的1Hz時(shí)鐘信號(hào)數(shù)據(jù)通路datapath.vCPU的數(shù)據(jù)通路存儲(chǔ)器mem.v64字節(jié)的存儲(chǔ)器的設(shè)計(jì)顯示器display.v顯示數(shù)據(jù)通路輸出的數(shù)據(jù)PC調(diào)試輸入輸出PC_InOut.vPC端發(fā)出的控制信號(hào)和送到PC的數(shù)據(jù)通路輸出的數(shù)據(jù)圖2 本次實(shí)驗(yàn)的頂層設(shè)計(jì)原理圖四、 實(shí)驗(yàn)步驟(請(qǐng)參考實(shí)驗(yàn)演示文檔)1、 打開(kāi)QUARTUSII軟件,新建一個(gè)工程。2、 建完工程之后,新建一個(gè)原理圖文件,并保存為EXP5.bdf。3、 再新建一個(gè)Verilog File,打開(kāi)編輯器。4、 按照實(shí)驗(yàn)原理和自己的想法,在編輯窗口編寫Verilog代碼,請(qǐng)參考

7、實(shí)驗(yàn)所提供的實(shí)驗(yàn)代碼文件。5、 編寫完Verilog代碼后,保存起來(lái)。6、 對(duì)自己編寫的Verilog代碼生成符號(hào)文件“Create Symbol File from current file”,對(duì)程序的錯(cuò)誤進(jìn)行修改。7、 依次重復(fù)過(guò)程2、3、4、5依次完成表4所示的5個(gè)verilog文件的編寫和符號(hào)文件生成。8、 切換到原理圖文件,按圖2所示的原理圖選擇模塊并進(jìn)行連接,并保存設(shè)計(jì)。9、 編譯設(shè)計(jì)無(wú)誤后,數(shù)碼管與FPGA的管腳連接參照表5進(jìn)行引腳分配。分配完成后,再進(jìn)行全編譯一次,以使管腳分配生效。表5 端口管腳分配表端口名使用模塊信號(hào)對(duì)應(yīng)FPGA管腳說(shuō) 明clk數(shù)字信號(hào)源J4時(shí)鐘為1MHzI

8、R1LED指示燈D1A9指令的操作碼字段IR0LED指示燈D2B9zeroLED指示燈D3A10結(jié)果0的標(biāo)志位data_out7LED指示燈D5A11從存儲(chǔ)器讀取出的數(shù)據(jù)以二進(jìn)制形式顯示在這8個(gè)指示燈上data_out6LED指示燈D6B11data_out5LED指示燈D7F7data_out4LED指示燈D8F6data_out3LED指示燈D9E10data_out2LED指示燈D10E8data_out1LED指示燈D11F12data_out0LED指示燈D12E11seg0數(shù)碼管A段H3以十六進(jìn)制分別顯示PC、AR、DR和AC的值seg1數(shù)碼管B段H4seg2數(shù)碼管C段K5seg3

9、數(shù)碼管D段L5seg4數(shù)碼管E段K4seg5數(shù)碼管F段L3seg6數(shù)碼管G段L4seg7數(shù)碼管dp段M3sel0位選DEL0G4sel1位選DEL1G3sel2位選DEL2F410、 用下載電纜通過(guò)JTAG口將對(duì)應(yīng)的sof文件加載到FPGA中。11、 在PC機(jī)打開(kāi)“SimplestCPU數(shù)據(jù)通路控制面板”軟件,并連接實(shí)驗(yàn)箱。圖3 實(shí)驗(yàn)使用的控制面板軟件12、 在連接成功之后,通過(guò)操作控制面板上對(duì)應(yīng)的控制信號(hào),觀察實(shí)驗(yàn)結(jié)果是否與自己的數(shù)據(jù)通路的控制思想一致。五、 實(shí)驗(yàn)現(xiàn)象與結(jié)果該CPU的取指令和執(zhí)行指令的過(guò)程如圖4所示,以控制器從存儲(chǔ)器取指令(fetch)為例,取指令過(guò)程依次包含3個(gè)操作步驟,分

10、別用fetch1、fetch2和fetch3來(lái)表示,如表6所示。在PC端的SimplestCPU數(shù)據(jù)通路控制面板軟件界面上,在發(fā)出步驟fetch1所示的控制信號(hào)后,可以在實(shí)驗(yàn)箱和軟件界面上觀察到指示燈和AR寄存器的值是3DH。這是存放在程序存儲(chǔ)器地址0的指令LD 3DH所對(duì)應(yīng)的指令的機(jī)器指令編碼。表6 取指令的操作順序和控制信號(hào)(說(shuō)明:表格中綠底色的表示寄存器的寫控制,相繼的灰底色的表示該過(guò)程由軟件自動(dòng)完成,不需要手動(dòng)操作,PC端的軟件該信號(hào)對(duì)應(yīng)的按鈕按下后延遲彈起,發(fā)出對(duì)應(yīng)的控制信號(hào))名稱實(shí)現(xiàn)的操作和功能操作順序控制信號(hào)fetch1AR PC1PC_bus =12AR_load =13AR_

11、load =04PC_bus =0fetch2IR MEMAR7:6DR MEMAR5mrd =16IR_load =17IR_load =08DR_load =19DR_load =010mrd =0Fetch3PC PC+1AR DR5:011PC_inc =112PC_inc =013DR_bus =114AR_load =115AR_load =016DR_bus =0六、 實(shí)驗(yàn)報(bào)告1、 該處理器的指令集有4條指令的控制流程如圖4所示。請(qǐng)參考表6,寫出LD指令、ST指令和JZ指令的操作過(guò)程和控制信號(hào)的賦值,填入表7表10中。并依據(jù)表7表10通過(guò)PC端的實(shí)驗(yàn)軟件進(jìn)行驗(yàn)證;圖4 Simpl

12、estCPU的指令流程圖復(fù)位AR<-(PC)DR<-MEM(AR)IR<-MEM(AR)7:6PC<-(PC)+1AR<-DR5:0AC<-MEM(AR)MEM(AR)<- AC DR<-MEM(AR)AC<-(AC)+(DR)PC<-(AR)IR=00LD指令I(lǐng)R=01ST指令I(lǐng)R=10ADD指令I(lǐng)R=00JZ指令zero=10zero=00取指令執(zhí)行指令Fetch1Fetch2Fetch3LD1ST1ADD1ADD2JZ1Reset表7 LD指令控制流程指令指令分解實(shí)現(xiàn)的操作和功能順序控制信號(hào)LD addrLD1AC MEMAR1

13、mrd = 12ACload = 13ACload = 04mrd = 0表8 ST指令控制流程指令指令分解實(shí)現(xiàn)的操作和功能順序控制信號(hào)ST addrST1MEMAR AC1ACbus = 12mwr = 13mwr = 04ACbus = 0表9 ADD指令控制流程指令指令分解實(shí)現(xiàn)的操作和功能順序控制信號(hào)ADD addrADD1DR MEMAR1mrd = 12DRload = 13Drload = 04mrd = 0ADD2AC (AC)+(DR)5DRbus = 16ALUsel = 17ACload = 18Acload = 09ALUsel = 010DRbus = 0表10 JZ指

14、令控制流程指令指令分解實(shí)現(xiàn)的操作和功能if(zero=1)順序控制信號(hào)JZ addrJZ1 if(AC=0) PC AR1ARbus=12PCload=13PCload=04ARbus=02、 請(qǐng)依次通過(guò)操作控制信號(hào)讀出存儲(chǔ)器地址09這個(gè)10個(gè)單元的內(nèi)容。3、 實(shí)驗(yàn)原理、設(shè)計(jì)過(guò)程、編譯和分析結(jié)果、硬件測(cè)試結(jié)果記錄下來(lái)。說(shuō)明:本次實(shí)驗(yàn)存儲(chǔ)器中存放了等差數(shù)列1+2+3+22的數(shù)據(jù)求和的程序,為方便實(shí)驗(yàn),將該程序列在下面。/計(jì)算1+2+.+22=?,存儲(chǔ)器的3c,3d,3e單元分別存放-1,22和結(jié)果result,3f單元存放結(jié)束標(biāo)志0 RAM8'h00 <= 8'h3d; /

15、LD 3d 循環(huán)次數(shù)到-> AC RAM8'h01 <= 8'hc9 ; /JZ 09 為0則結(jié)束 RAM8'h02 <= 8'hbe; /ADD 3e result+ ? -> AC RAM8'h03 <= 8'h7e; /ST 3e AC -> ram3e RAM8'h04 <= 8'h3d; /LD 3d 循環(huán)次數(shù)->AC RAM8'h05 <= 8'hbc; /ADD 3c 循環(huán)次數(shù)-1->AC RAM8'h06 <= 8'h7d; /ST 3d AC -> ram3d保存循環(huán)次數(shù) RAM8'h07 <= 8'h3f; /LD 3f 0 -> AC RAM8'h08 <= 8'hc0; /JZ 00 loop RAM8'h09 <= 8'h3f; /LD 3f 3f -> AC,ie,0->AC RAM

溫馨提示

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

評(píng)論

0/150

提交評(píng)論