計算機組成與系統(tǒng)結(jié)構(gòu)課程設計--單周期32位cpu的設計_第1頁
已閱讀1頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  學 號:</b></p><p>  計算機組成與系統(tǒng)結(jié)構(gòu)課程設計</p><p><b>  設計說明書</b></p><p>  起止日期: 2014 年 1 月 13 日 至 2014 年 1 月 17 日</p><p>  計算機與信息工程學院<

2、/p><p>  2014年1月17日</p><p> 單周期32位CPU的設計</p><p><b>  目錄</b></p><p>  1、 指令系統(tǒng)設計1</p><p>  2、 控制部件設計4</p><p>  3、 單周期中央處理器cpu設計9<

3、/p><p>  4、 計算機主機系統(tǒng)設計12</p><p>  5、 調(diào)試程序編制及主機系統(tǒng)調(diào)試12</p><p>  6、 心得體會16</p><p><b>  參考資料16</b></p><p><b>  指令系統(tǒng)設計</b></p>&l

4、t;p>  R型指令(op=0001)</p><p>  │←─━━━op────→│← rs →│← rt →│← rd →│ ←─━━━━func━━━────│ </p><p>  add(func=000001):將rs寄存器中的值和rt寄存器中的值相加,結(jié)果存入rd寄存器</p><p>  sub(func=000010):將r

5、s寄存器中的值和rt寄存器中的值相減,結(jié)果存入rd寄存器</p><p>  and(func=000011):將rs寄存器中的值和rt寄存器中的值相與,結(jié)果存入rd寄存器</p><p>  or(func=000100):將rs寄存器中的值和rt寄存器中的值進行或運算,結(jié)果存入rd寄存器</p><p><b>  I型指令</b><

6、/p><p>  │←─━━━op────→│← rs →│← rt →│←─━━━━━━━立即數(shù)━━━━────│ </p><p>  addi(op=1000):將rs寄存器中的值與(補零成32位的)立即數(shù)減,結(jié)果存入rt寄存器</p><p>  ori(op=0010):將rs寄存器中的值與(補零成32位的)立即數(shù)或,結(jié)果存入rt寄存器</p

7、><p>  lw(op=0011):將RAM中地址為[rs+立即數(shù)]單元的值寫入rt</p><p>  sw(op=0100):將rt中的值寫入RAM中地址為[rs+立即數(shù)]單元</p><p>  beq(op=0101):若rs中的值=rt中的值,則跳轉(zhuǎn)到(原本的下一個地址+立即數(shù))</p><p>  wr(op=0111):把(補零成

8、32位的)立即數(shù)寫入寄存器rt</p><p><b>  J型指令</b></p><p>  │←─━━━op────→│←─── invalid ──→│←─━━━━━━━地址━━━━━━────│ </p><p>  jump(op=0110):直接跳轉(zhuǎn)到目的地址(8位)開始執(zhí)行</p><p>  指令譯碼器

9、的作業(yè)是對取指令操作中得到的指令進行譯碼,確定這條指令需要完成的操作。從而產(chǎn)生相應的控制信號,驅(qū)動執(zhí)行狀態(tài)中的各種動作。它是控制器的一個重要組成部分。在MIPS指令集中,根據(jù)操作碼OP和功能碼FUNC來區(qū)別指令。根據(jù)表3-3列出的20條指令編碼的邏輯表達式如下,其中,OP[5..0]為操作碼OP,F(xiàn)UNC[5..0]為功能碼FUNC,電路符號如圖9-4所示。</p><p>  圖5-2 指令執(zhí)行時序圖2<

10、/p><p><b>  仿真結(jié)果:</b></p><p><b>  控制部件設計</b></p><p>  控制器是計算機中 發(fā)號施令的部件,它控制計算機的各部件有條不紊的進行工作。 更具體的講, 控制器的任務是從內(nèi)存中取出指令解題步驟加以分析,然后執(zhí)行某種操作。</p><p>  PCSOU

11、RCE是用于標記下一條指令的地址,通過計算得到的下一條指令有下列4種情況:為0時:下一條指令地址取PC+4(用于指令存儲器的地址是[7..2]);為1時:下一條指令地址取分支跳轉(zhuǎn)(BEQ、BNQ指令);為2時:下一條指令地址取跳轉(zhuǎn)(J指令);為3時:下一條指令地址取跳轉(zhuǎn)變鏈接(JAL指令)。</p><p>  CALL(JAL)標記31號寄存器,由于JAL指令要把分支延遲槽下一條指令的指令地址保存在寄存器31號

12、中,故需要設置一個控制信號CALL,當CALL=1時,選擇31號寄存器,為JAL跳轉(zhuǎn)指令提供寄存器,當CALL=0時,從32位的寄存器堆中根據(jù)地址選擇出一個32位的寄存器用于讀或?qū)憯?shù)據(jù)。M2REG(LW指令)標記是將運算的結(jié)果直接寫入寄存器堆,還是將數(shù)據(jù)存儲器的數(shù)據(jù)取出后寫入寄存器堆。ALUC運算器的控制信號,用于選擇做何種運算。WMEM數(shù)據(jù)存儲器的讀寫信號。SHIFT標記移位運算,由于移位運算的運算數(shù)需要位數(shù)拓展。ALUIMM標記立即

13、數(shù)運算,由于有立即數(shù)參與運算前需要位數(shù)拓展。SEXT標記參加運算的是有符號數(shù)。WREG寄存器堆的讀寫信號。REGRT標記指令中的[20..16]或[15..11]中的哪一種作為運算的目標寄存器。它的電路符號如圖9-7。根據(jù)3.3節(jié)指令的執(zhí)行分析,可以得出這20條控制信號的邏輯表達式如圖所示:</p><p><b>  表3-1。</b></p><p><b&

14、gt;  仿真結(jié)果:</b></p><p><b>  、</b></p><p>  指令存儲器用于在計算機中保存指令。在本屆中使用LPM_ROM來實現(xiàn),它能保存64條指令字,如圖9-10所示。指令存儲器輸入:A[31..0](指令地址),實際使用的地址為A[7..2]。指令的輸出信號:DO[31..0]。指令存儲器的元件符號如圖9-10所示。真值表如

15、9-3所示,DO表示在指令數(shù)據(jù)文件中地址A對應的指令數(shù)據(jù)。</p><p>  波形分析。10.0ns~20.0ns這一段,A為00000004,CLK在10.0ns時刻有一個下降沿。故此時DO的值應該變?yōu)榈刂?0000004對應的指令數(shù)據(jù)為3C010000,然后直到20.0ns時刻之前都是上升沿,故一直保持不變?yōu)?C010000,直到20.0ns時刻來了一個下降沿,DO的值應該變?yōu)榈刂?0000008對應的指令

16、數(shù)據(jù)為34240050。圖9-20中此刻時段正好也為這樣,因此得證。</p><p>  最后,根據(jù)原理圖,按照第4.1.3小節(jié)中的方法生成元器件原理圖。</p><p><b>  仿真結(jié)果:</b></p><p>  ↑為上升沿?!秊橄陆笛?lt;/p><p>  數(shù)據(jù)存儲器的原理圖設計</p><

17、p> ?。?)加法指令數(shù)據(jù)文件</p><p>  調(diào)用lpm_ram_dp宏設計數(shù)據(jù)存儲器</p><p><b>  仿真結(jié)果:</b></p><p><b>  :</b></p><p>  波形分析。20.0ns~25.0ns這一時刻,A為00000060,CLK為0,WE為0,則

18、為讀信號,MEMCLK此時此刻有一個上升沿,故獨處地址A對應的數(shù)據(jù)DO位000000A3。30.0ns~35.0ns這一時刻,A為00000000,DI為00000300,CLK為0,WE為1,則寫為信號。MEMCLK此時此刻有一個上升沿,故將DI數(shù)據(jù)寫入到地址A對應的位置DO為00000300。圖9-31中正是如此,只是整體有一個周期的時延,因此得證。</p><p>  單周期中央處理器cpu設計</p

19、><p>  通過調(diào)用前面編寫的一系列元器件來實現(xiàn)單周期CPU,它能處理MIPS中列出的20條常用指令。CPU輸入信號:CLOCK為時鐘信號,RESETN為設置0信號,INSTR為指令數(shù)據(jù),MEM為運算數(shù)據(jù)。CPU輸出信號:PC是下一條要執(zhí)行指令在指令存儲器中的地址,DATA是運算得到的要寫入數(shù)據(jù)存儲器的數(shù)據(jù)。</p><p>  根據(jù)控制器各控制信號的描述以及3.3節(jié)中CPU設計思路分析,可

20、綜合完整的CPU邏輯設計,如圖9-33所示。最終得到CPU的原理圖</p><p><b>  計算機主機系統(tǒng)設計</b></p><p>  主機系統(tǒng)的設計與現(xiàn)實是離不開存儲器的,因為CPU要從指令存儲器中取得指令,分析解釋后在從數(shù)據(jù)存儲器中取得用于計算的數(shù)據(jù),計算的接過可存放到數(shù)據(jù)存儲器中。故本杰將在9.6節(jié)的基礎上為CPU加上指令存儲器和數(shù)據(jù)存儲器,得到一個計算

21、機主機系統(tǒng)。主機系統(tǒng)的電路圖</p><p>  分析CPU的設計描述及各端口描述,不難得出如圖所示的主機系統(tǒng)的原理圖</p><p><b>  原理圖:</b></p><p>  調(diào)試程序編制及主機系統(tǒng)調(diào)試</p><p><b>  加法程序調(diào)試仿真</b></p><p

22、>  在這里做一個加法163+39+121+277=600</p><p>  指令寄存器數(shù)據(jù)文件:</p><p><b>  仿真結(jié)果:</b></p><p><b>  心得體會</b></p><p>  在此次課設進行前我們在老師幫助下提前做了幾章的實驗,所以對QuartusⅡ軟件

23、的操作有了一定基礎的了解,讓我們更好的去做這個課設,經(jīng)過一個星期的努力,熟練地掌握了quartus的使用方法。在此次課設中,我們從最底層了解到了計算機的本質(zhì),對 CPU、寄存器、控制器登入到精簡指令計算機,都有了一定程度上的了解。在課設當中自己動手實踐開發(fā)設計能力得到了極大地提高,為今后的相關(guān)硬件課程打下了堅實的基礎,硬件設計思維得到了進一步的鍛煉和提升。</p><p><b>  參考資料</

24、b></p><p>  [1]朱子玉,李亞民.CPU芯片邏輯設計技術(shù)[M].北京:清華大學出版社,2005:31-110.</p><p>  [2] 王誠等.Altera FPGA/CPLD設計基礎篇[M].北京:人民郵電出版社,2005:1-28.</p><p>  [3] (美)Dominic Sweetman.MIPS處理器設計透視[M].北京:北

溫馨提示

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

評論

0/150

提交評論