基于FPGA的微處理器設計畢業(yè)設計_第1頁
基于FPGA的微處理器設計畢業(yè)設計_第2頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于FPGA的微處理器設計畢業(yè)設計(論文)設計(論文)題目基于FPGA的微處理器設計摘要ABSTRACTii本文使用結構化編程方法,將微處理器內核按照功能劃分為不同的模塊,采用 VHD 語言設計每一個模塊的內部功能和外圍接 口,設計實現(xiàn)了一種基于 FPGA 芯片的微處理器系統(tǒng)。矚慫潤厲釤瘞睞櫪廡賴。該微處理器主要由控制器、運算器和寄存器組成,具有指令控制、操作控制、時間控制和數(shù)據(jù)加工等基本功能,可實現(xiàn)四位 操作數(shù)的各種運算,其指令長度為16 位定長,采用了直接尋址方式。最后采用 QUARTUSI 對設計進行了仿真測試,結果表明設計 實現(xiàn)了微處理器的主要功能 。聞創(chuàng)溝燴鐺險愛氌譴凈。關鍵字:FP

2、GA 微處理器,VHDLABSTRACTIIIABSTRACTA microprocessor on FPGA is realized by using structuredprogram ming. This microprocessor core is divided into several different fun cti on modules which are desig ned using VHDL.殘騖 樓諍錈瀨濟溆塹籟。The microprocessor con sists of con troller, arithmetic unit andregisters. It

3、realizes the instruction control, operation control, timesequenee control and data processing functions. The directaddressing mode is adopted. The various operations for 4bit opera ndcan be achieved. Its in structi on len gth is 16 bit.釅錒極額閉鎮(zhèn)檜豬訣錐。The design is simulated by using QUARTUSII, and the r

4、esultsshow that the main functions of a microprocessor are achieved.彈貿(mào)攝爾霽斃攬磚鹵廡。Key Words:FPGA,CPU,VHDL目錄目 錄摘 要.II謀蕎摶篋飆鐸懟類蔣薔。ABSTRACT. III廈礴懇蹣駢時盡繼價騷。第 1 章 緒論.1煢楨廣鰳鯡選塊網(wǎng)羈淚。1.1 背景.1鵝婭盡損鵪慘歷蘢鴛賴。1.2 微處理器的概況.1籟叢媽羥為贍債蟶練淨。1.3 課題研究方法及技術背景 .2預頌圣鉉儐歲齦訝驊糴。1.3.1 研究方法. 2滲釤嗆儼勻諤鱉調硯錦。1.3.2 技術背景 . 2鐃誅臥瀉噦圣騁貺頂廡。1.4 課題工作內容

5、 .3擁締鳳襪備訊顎輪爛薔。第二章微處理器體系結構 .4贓熱俁閫歲匱閶鄴鎵騷。2.1 CPU 的功能和構成 .4壇搏鄉(xiāng)囂懺蔞鍥鈴氈淚。2.2 指令系統(tǒng)分析 .5蠟變黲癟報倀鉉錨鈰贅。2.2.1 RISC 與總線結構.5買鯛鴯譖曇膚遙閆擷凄。2.2.2 指令系統(tǒng) . 6綾鏑鯛駕櫬鶘蹤韋轔糴。2.3 指令時序分析 .8驅躓髏彥浹綏譎飴憂錦。2.3.1 RISC 與流水線 .8貓蠆驢繪燈鮒誅髏貺廡。2.3.2 程序計數(shù)器與流水線 .9鍬籟饗逕瑣筆襖鷗婭薔。2.4 CPU 整體結構即設計思想 .9構氽頑黌碩飩薺齦話騖。2.4.1 CPU 的外部引腳規(guī)戈 U .9輒嶧陽檉籪癤網(wǎng)儂號澩。2.4.2 CPU

6、 的整體框圖 . 10堯側閆繭絳闕絢勵蜆贅。2.4.3 CPU 結構的層次戈 U 分 . 11識饒鎂錕縊灩筧嚌儼淒。第三章 CPU 數(shù)據(jù)通路設計.12凍鈹鋨勞臘錯癇婦脛糴。3.1 程序計數(shù)器模塊 PC.12恥諤銪滅縈歡煬鞏鶩錦。3.2 程序存儲器 PC_RAM.13鯊腎鑰詘漣鉀溈懼統(tǒng)庫。3.3 指令寄存器模塊.14碩癘鄴頏謅攆檸攜驤蘞。3.4 時鐘發(fā)生器模塊.15閿擻輳嬪諫遷擇植秘騖。3.5 寄存器堆 TRAM.15氬嚕躑竄貿(mào)懇彈濾頷澩。3.6 ALU 模塊 .16釷鵒資贏車贖孫滅獅贅。第四章 CPU 控制單元的設計.18慫闡譜鯪逕導嘯畫長涼。4.1 控制器 Control 模塊.19諺辭調擔

7、鈧諂動禪瀉類。4.2 有限狀態(tài)機 FSM 模塊. 19嘰覲詿縲鐋囁偽純鉿錈。4.2.1 有限狀態(tài)機 . 19熒紿譏鉦鏌觶鷹緇機庫。4.2.2 利用的 VHDL 語言進行狀態(tài)機描述 .20鶼漬螻偉閱劍鯫腎邏蘞。第五章 RISC CPU 勺仿真驗證 .21紂憂蔣氳頑薟驅藥憫騖。5.1 各模塊的組合 .21穎芻莖峽餑億頓裊賠瀧。5.2 綜合 RTL 電路圖 . 22濫驂膽閉驟羥闈詔寢賻。5.3 RISCCPU 勺功能仿真驗證 . 25銚銻縵嚌鰻鴻鋟謎諏涼。5.3.1 算術運算類指令驗證 .25擠貼綬電麥結鈺贖嘵類。5.3.2 邏輯運算類指令驗證 .26賠荊紳諮侖驟遼輩襪錈。5.3.3 移位類指令驗證

8、. 26塤礙籟饈決穩(wěn)賽釙冊庫。5.3.4 LD 數(shù)據(jù)輸出指令仿真 .27裊樣祕廬廂顫諺鍘羋藺。目錄5.3.5 ST 運算數(shù)據(jù)存儲仿真 .27倉嫗盤紲囑瓏詁鍬齊驚。目錄5.4 總結.28第六章總結和展望. 29參考文獻.30綻萬璉轆娛閬蟶鬮綰瀧。驍顧燁鶚巰瀆蕪領鱺賻?,嶀暈R曖惲錕縞馭篩涼。鎦詩涇艷損樓紲鯗餳類。櫛緶歐鋤棗鈕種鵑瑤錟。致謝.錯誤!未定義書簽。附錄.31山東大學威海分校畢業(yè)設計(論文)1第 1 章緒論1.1 背景隨著數(shù)字通信和工業(yè)控制領域的高速發(fā)展, 超大規(guī)模集成電路的集成度和工 藝水平不斷提高,要求專用集成電路(ASIC)的功能越來越強,功耗越來越低,生 產(chǎn)周期越來越短,這些都對芯

9、片設計提出了巨大的挑戰(zhàn), 傳統(tǒng)的芯片設計方法已 經(jīng)不能適應復雜的應用需求了,將整個應用電子系統(tǒng)集成在一個芯片中(SOC) ,已成為現(xiàn)代電子系統(tǒng)設計的趨勢。簡單來說,SOC 是一種將多個獨立的 VLSI 設計拼合在一起,來形成某一應用所需的全部功能的集成電路,以其高集成度、低功耗等優(yōu)點越來越受歡迎。轡燁棟剛殮攬瑤麗鬮應。中國的電子信息產(chǎn)業(yè)現(xiàn)在增長迅速, 主要集中在移動通信設備、數(shù)據(jù)通信設 備、計算機及消費產(chǎn)品領域??紤]到我國電子信息市場的特殊性, 即巨大的移動 通信和數(shù)字家電市場的核心芯片主要依賴進口的狀況。巨大的市場的需求決定了 開發(fā) SOC的必要性,現(xiàn)在數(shù)字家電的片上系統(tǒng)研究己經(jīng)成為研究的熱

10、點之一。研究 SOC 的設計方法和驗證方法具有很大的現(xiàn)實意義2-3。其中 CPU 是 SOC 的重要組成部分,可以完成簡單的數(shù)據(jù)處理,內存的調度,中斷處理等操作。隨著百萬門 級的FPGA 芯片、功能復雜的 IP 核、可重構的嵌入式處理器核以及各種強大 EDA 的開發(fā)工具的迅速發(fā)展,使得設計者在 EDA 工具的幫助下完成整個系統(tǒng)從行為算 法級到物理結構級的全部設計,并最終將一個電子系統(tǒng)集成到一片F(xiàn)PGA 中,即SOPC??梢?,SOPC 是基于 FPGA 解決方案的 SOC,是 SOC 發(fā)展的新階段。峴揚爛 滾澗輻灄興渙藺。1.2 微處理器的概況微處理器是計算機系統(tǒng)中非常之重要的核心組成部分,它用

11、來控制計算機的 各種操作過程,通常也被稱為 CPU 即中央處理器。隨著科學技術的迅速發(fā)展, 微處理器的發(fā)展也是非常迅速,它的處理能力已經(jīng)由過去的4 位發(fā)展到現(xiàn)在的 64位,運算能力和處理能力大大提高,應用領域也從計算機系統(tǒng)擴展到各個相關領 域,例如通信、航天和工業(yè)控制等。通常,微處理器按照處理能力可以劃分為4位、8 位、16 位、32 位和 64 位微處理器,它的處理能力是逐步提高的。但是,在 微控制器的發(fā)展過程中,8 位機始終是嵌入式低端應用的主要機型4。詩叁撻訥燼憂毀 厲鋨驁?,F(xiàn)今市場上流行的典型的 8 位微控制器,可以在各種 FPGA 上實現(xiàn),設計靈活 方便而且易于進行功能擴展。因此研究

12、 8 位 CPU 內核具有廣泛的現(xiàn)實意義,由于其 具有較高的處理性能和較少的資源占用,故具有更加廣泛的應用前景。則鯤愜韋瘓賈暉園棟瀧。1.3 課題研究方法及技術背景1.3.1 研究方法山東大學威海分校畢業(yè)設計(論文)2本課題使用硬件描述語言 VHD 采用自頂向下的設計方法設計一個滿足要求 的 8位 CPU 內核及外部接口,使用 EDA 軟件 QUARTUSII 軟件完成編碼、仿真驗證。 自頂向下的設計方法就是設計者首先從整體上規(guī)劃整個系統(tǒng)的功能和性能,然后利用功能分割手段對系統(tǒng)進行劃分,分解為規(guī)模較小、功能較簡單的局部模塊, 并確立它們之間的相互關系,將設計由上至下進行層次化和模塊化,即分層次

13、、 分模塊地對電子系統(tǒng)進行設計和仿真。 不難看出,采用自頂向下的設計方法實際 上就是基于芯片的系統(tǒng)設計方法,這種方法有助于在設計早期發(fā)現(xiàn)結構設計中的 錯誤,提高設計成功率。脹鏝彈奧秘孫戶孿釔賻。1.3.2 技術背景1.硬件描述語言 VHDL如今,大多數(shù)的 EDA 工具都采用 VHDL 作為主要的硬件描述語言,這主要 源于VHD 強大的自身功能和特點,下面介紹一下 VHDL 的優(yōu)點。鰓躋峽禱紉誦幫廢掃減。(1) 具有強大的描述能力VHDL 既可以描述系統(tǒng)級電路,也可以描述門電路;既可以采用行為描述、 寄存器描述或者結構描述,可以方便地建立電子系統(tǒng)模型。稟虛嬪賑維嚌妝擴踴糶。(2) 具有共享與復用

14、能力VHDL 采用基于庫的設計方法,從而大大減少了工作量,縮短了開發(fā)周期。(3) 具有獨立于器件和工藝設計的能力VHDL 獨立于器件的特點可以使設計人員集中精力來進行電子系統(tǒng)的設計 和性能優(yōu)化,而不需要考慮其他問題。(4) 具有良好的可移植能力。VHDL 的可移植性源于它是一種標準化得硬件語言,因此同一個設計描述 可以被不同的工具所支持。(5) 具有向 ASIC 移植的能力。2.CISC 指令集和 RISC 指令集CISC 是一種為了便于編程和提高內存訪問效率的芯片設計體系。早期的計 算機使用匯編語言編程,由于內存速度慢且價格昂貴,使得 CISC 體系得到了用 武之地。它的設計目的是要用最少的

15、機器語言指令來完成所需的計算任務。 后來 功能需求越來越豐富,因此越來越多的復雜指令被加入到指令系統(tǒng)中, 但是還必 須保持著前向的兼容性。內容的不斷擴充和兼容性的考慮,導致龐大的 CISC 指 令系統(tǒng)形成了。在20 世紀 90 年代中期之前,大多數(shù)的微處理器都采用 CISC 體 系包括 In tel 的 80 x86和 Motorola 的 6sK 系列等。陽簍埡鮭罷規(guī)嗚舊巋錟。CISC 體系結構幾乎沒有考慮流水線的因素,使得指令執(zhí)行起來耗時而且尋 址復雜。 1975 年, IBM 的設計師提出了一種新的體系結構和指令集設計方案,這就是 RISC體系結構。典型的 RISC 處理器具有以下特點:

16、溈氣嘮戇萇鑿鑿櫧諤應。(1) 指令功能簡單,各指令的復雜度分布均衡,有利于形成流水線;(2)控制電路簡單,多采用硬連線方式來實現(xiàn)。因為不需要額外的存取微程序存儲器來完成指令的執(zhí)行,因此可以直接使用硬連線方式來設計;鋇嵐縣緱虜榮產(chǎn)濤團藺。(3)指令定長,指令格式簡單,指令編碼固定。這樣字段固定,使操作碼得譯碼與操作數(shù)的存取可以同時執(zhí)行,使得控制單元的設計簡單化;懨俠劑鈍觸樂鷴燼觶騮。山東大學威海分校畢業(yè)設計(論文)3(4)ALU 指令和訪存指令分開,并且訪存種類很少。(5)以寄存器對寄存器的運算為主。寄存器對寄存器的運算有助于減少對存 儲器的訪問次數(shù),提高數(shù)據(jù)的存取速度7-8。謾飽兗爭詣繚鮐癩別

17、濾。1.4 課題工作內容本文一共分為七章。各章節(jié)內容安排如下:第一章緒論。第二章微處理器的體系結構。研究了 CPU 的整體設計,指令系統(tǒng)和時序分 析以及流水線的實現(xiàn)。第三章 CPU 數(shù)據(jù)通路設計。詳細介紹了通路模塊中的程序計數(shù)器、指令寄 存器、程序存儲器等的具體設計和功能實現(xiàn)。第四章 CPU 控制單元的設計。詳細介紹了控制單元中的控制器和狀態(tài)機的 設計和功能實現(xiàn)。第五章 CPU 的仿真驗證。驗證 CPU 的部分功能。第六章總結和展望。山東大學威海分校畢業(yè)設計(論文)4第二章微處理器體系結構2.1CPU的功能和構成CPU 是計算機的核心組成部分。計算機進行信息處理可分為以下兩個步驟9(1) 將數(shù)

18、據(jù)和程序(即指令序列)輸入到計算機的存儲器中;(2) 從第一條指令的地址開始執(zhí)行該程序,得到所需的結果,結束運行。CPU 的作用是協(xié)調和控制計算機的各個部件,并執(zhí)行程序的指令序列,使 其有條不紊的進行,因此必須具備以下基本功能:咼鉉們歟謙鴣餃競蕩賺。取指令:當程序已在存儲器中時,首先根據(jù)程序入口地址取出一條程序, 為此要發(fā)出指令的地址及相關的控制信號;分析指令:即指令譯碼,既對當前所取的指令進行分析,指出它要求什么 操作,并產(chǎn)生相應的操作所需要的控制命令;執(zhí)行指令:根據(jù)分析指令時產(chǎn)生的“操作命令”形成相應的操作控制序列, 通過運算器、存儲器及輸入輸出的執(zhí)行,實現(xiàn)每條指令的功能,其中包括對運算

19、結果的處理及下條指令地址的形成?,撝C齷蘄賞組靄縐嚴減。將 CPU 的功能進一步細化,可以概括如下。(1) 能對指令進行譯碼并執(zhí)行規(guī)定動作;(2) 可以進行算術和邏輯運算;(3) 能與存儲器和外設交換數(shù)據(jù);(4) 提供整個系統(tǒng)所需的控制。盡管各種 CPU 的性能指標和結構細節(jié)各不相同, 但它們所能完成的基本功 能相同,簡化 CPU 內部結構如圖 2-1 所示。CPU內M總線算術和邏輯卑兀算術和邏輯卑兀山東大學威海分校畢業(yè)設計(論文)5圖 2-1 簡化 CPU 內部結構2.2 指令系統(tǒng)分析指令系統(tǒng)結構是微處理器體系結構的一個重要部分,是微處理器設計的基 礎。指令格式、尋址方式和指令系統(tǒng)是指令系統(tǒng)結

20、構的重要方面。目前主流CPU指令可以分為 RISC 和 CISC,由上節(jié)介紹可知,RISC 微處理器指令系統(tǒng)的指令 種類少而經(jīng),尋址方式簡單,指令格式固定,所以本次設計采用RISC 指令系統(tǒng)納疇鰻吶鄖禎銣膩鰲錟。2.2.1 RISC 與總線結構早期的計算機一般都采用馮.諾依曼(Von Neuma nn)結構,CISC 架構的微 處理器常采用這種結構。它是在同一個存儲空間取指令和數(shù)據(jù),采用單地址總線 結構,即程序存儲器和數(shù)據(jù)存儲器共用一條地址總線, 限制了工作帶寬,使得控 制電路復雜,功耗較大10-11。結構見圖 2-2 所示:風攆鮪貓鐵頻鈣薊糾廟。這種結構有兩個明顯的缺點:(1) CPU 中控

21、制器和運算器的速度必須與存儲器的速度相匹配;(2) 指令和數(shù)據(jù)的流動都通過同一條總線,使指令和數(shù)據(jù)的獨立性消弱;目前,RISC 架構的微處理器都采用哈佛結構,這種結構具有分離地址總線的兩個存儲器,其中一個放程序,另一個放數(shù)據(jù),其指令和數(shù)據(jù)空間完全分開, 可以同時訪問,且一次讀出,簡化控制電路,提高數(shù)據(jù)的吞吐率12。結構如圖 2-3 所示。滅曖駭諗鋅獵輛覯餿藹。CPU指令存儲器指令存儲器 * * 控制器控制器圖 2-2 馮.諾依曼結構圖山東大學威海分校畢業(yè)設計(論文)6運算器運算器 * *- 數(shù)據(jù)存儲器數(shù)據(jù)存儲器山東大學威海分校畢業(yè)設計(論文)7圖 2-3 哈佛結構圖這種結構的優(yōu)點是:(1)允許

22、數(shù)據(jù)從程序存儲器傳遞到 SRAM,該功能也允許從程序存儲器中讀取數(shù)據(jù)表。這對現(xiàn)代微控制器應用十分重要,因為為了使掉電后數(shù)據(jù)表不丟失,就要將它放在程序存儲器中,RISC 架構很好地解決了這個問題。鐒鸝餉飾鐔閌貲諢癱騮。(2)讀取指令和存儲器數(shù)據(jù)交換可以在多步流水線中同時進行,這在馮諾依曼單地址總線結構中很難實現(xiàn)。攙閿頻嶸陣澇諗譴隴瀘?;谝陨蟽煞N體系結構特點的比較,本文設計的微處理器器采用了哈佛結構 的體系結構。首先,哈佛結構的指令總線和數(shù)據(jù)總線分開,可以使用不同位寬的 指令和數(shù)據(jù),還有一個最大好處就是可以預取指令,這樣對流水線是很有用的。 其次,該微處理器實現(xiàn)了兩級指令流水線, 采用哈佛結構可

23、使流水實現(xiàn)的難度大 為降低,在采用流水線后,能夠有效地提高指令的執(zhí)行速度。再次,該微處理器 采用了硬布線邏輯代替微程序控制的方法,提高了指令的執(zhí)行速度和效率。趕輾雛紈顆鋝討躍滿賺。2.2.2 指令系統(tǒng)本文設計的微控制器采用兩級流水線、指令長固定、指令密度適中、控制單 元簡單的類似 RISC 指令集,本文自定義指令集,該指令集僅有 20 條指令,尋址 方式簡單。每條指令的字長都是 16 位,包含足夠的信息:指令操作碼,源操作數(shù) 地址,目的操作數(shù)地址,立即數(shù)13-14。夾覡閭輇駁檔驀遷錟減。1、指令集表 1 是本文所涉及的 CPU 所有指令的一個集合指令名稱指令操作影響標志位周期算術與邏輯類指令A

24、DD R1,R2Add Two RegisterC1SUB R1,R2Sub Two RegisterZ1AND R1,R2And Two RegisterZ1OR R1,R2Or Two RegisterZ1位操作指令LSL R1Logical Shift LeftNone1LSR R1Logical Shift RightNone1數(shù)據(jù)傳送類指令MOV R1,#11Move Between RegisterNone1LD R1Load Immediate from RegisterNone1SD R1Store Result to RegisterNone1山東大學威海分校畢業(yè)設計(論文)

25、8停機指令SLEEPSleep(Wait for )NoneAny2、 尋址方式本文指令系統(tǒng)的尋址方式為下面兩種直接尋址方式:(1)單一寄存器尋址。操作數(shù)在目的寄存器;(2)雙寄存器尋址。操作數(shù)分別在目的寄存器和源操作寄存器中。3、 指令格式定義正如以前所提到的,RISC 總是有固定長度以便于譯碼。對設計的微處 理,每個指令都是固定的 16 位長度,其中操作碼占用 16 位指令字的高 4 位。所有的指令碼都很容易譯碼。對兩個寄存器的指令,d 選擇目的寄存器, r 選擇源寄存器,4 位可以尋址16 個寄存器,這種指令格式包括 ADD,SU B,AND,OR。視絀鏝鴯鱭鐘腦鈞欖糲。1514 131

26、211109876543210rrrrdddd對于僅需要一個寄存器的指令,d 用來尋址目標寄存器。這種指令格式 包括 LD,LSL,LSR 指令。1514 131211109876543210dddd對于立即數(shù)指令,指令中間 8 位是 8 位常數(shù),其中 H 代表常數(shù)的高四位, L 代表常數(shù)的低四位,d 用來尋址目的寄存器。這種指令格式包括 MOV, SD。偽澀錕攢鴛擋緬鐒鈞錠。1514 131211109876543210LLLLHHHHdddd4、指令編碼確定了指令的格式,就可以對指令進行編碼,這樣指令就有唯一的身 份識別。指令編碼結果如表 2 所示。表 2 指令編碼指令類型指令機器碼ADD

27、00010000r r r rd d d dSUB00100000r r r rd d d dAND00110000r r r rd d d dOR01000000r r r rd d d dLSL010100000000d d d dLSR011000000000d d d dMOV0111LLLLHHHHd d d dST100000000000d d d dLD100100000000d d d dSLEEP1011000000000000山東大學威海分校畢業(yè)設計(論文)92.3 指令時序分析2.3.1 RISC 與流水線指令的執(zhí)行分成兩個階段:取指階段和執(zhí)行階段。在取指階段,指令機器碼

28、 被取到指令寄存器,控制單元通過譯碼知道這是個什么樣的指令,需要執(zhí)行什緦 徑銚膾齲轎級鏜撟廟。么樣的操作,需要什么操作數(shù);在執(zhí)行階段當前指令以及取指完畢, 上一條指令 被執(zhí)行。這樣按順序第 1 條指令執(zhí)行完再取第 2 條指令,第 2 條執(zhí)行完在取第 3 條指令的順序執(zhí)行方式執(zhí)行一條指令最少需要兩個時鐘周期,如果執(zhí)行10 條指令那么就得需要 10 個時鐘周期,顯然這樣指令的執(zhí)行效率不高。為了解決這個 問題,本次設計中引入了流水線(pipeline)操作。8 位 CPU 采用兩級流水線技術, 指令的流水線可以用圖 2-4 來簡單的示意:騅憑鈳銘僥張礫陣軫藹。- -周期周期1”周期蕓,*周期3.k周

29、期丄JX取指取指執(zhí)行執(zhí)行取指取指執(zhí)行執(zhí)行取指取指執(zhí)行執(zhí)行圖 2-4 流水線指令執(zhí)行由圖可以看出,盡管每條指令的完成需要兩個周期的時間,但是在流水線結 構中,當前指令的取值周期和上一條指令的執(zhí)行周期在時間上是重疊的, 對于這 種并行操作,從平均角度來看,相當于一個周期內完成一條指令,因此可以大大 提高指令的運行速度15。癘騏鏨農(nóng)剎貯獄顥幗騮。RISC 架構的處理器,每條指令有固定的長度,指令格式只有簡單的幾種,指令功能不交叉,尋址方式也簡單,所以更加有利于實現(xiàn)流水結構。鏃鋝過潤啟婭澗駱讕濾。為了降低執(zhí)行每條指令所需時鐘數(shù), 本文也采用兩級流水,其功能分別定義 為:第一級,取指;第二級,時鐘前半周

30、期控制器譯碼、發(fā)出控制信號,時鐘后 半周期進行對寄存器堆 TRA 進行讀操作、ALU 計算。這樣,很顯然也能降低執(zhí)行 指令所需的時鐘數(shù),取指、執(zhí)行只用了一個時鐘。在時鐘上升沿PC 產(chǎn)生進入PCRAM 的地址,由于 PCRAM 有反應時間,經(jīng)過一段很短的時間讀出指令,在 下一個時鐘上升沿到來時,指令寄存器鎖存指令,然后開始對指令進行譯碼,并 產(chǎn)生操作數(shù)、目的存儲器/寄存器地址、寫信號及各種控制信號。榿貳軻謄壟該檻鯔塏賽。2.3.2 程序計數(shù)器與流水線程序計數(shù)器(PC)是程序中尋址取得指令的特殊單元。正是靠 PC 的移動,CPU才能一條一條的執(zhí)行指令。同時,程序計數(shù)器也是和流水線密切相關的單元。

31、在程序開始執(zhí)行前,CPU 將它的起始地址送入 PC,當指令執(zhí)行時,CPU 將自動 修改 PC 的內容,所以 PC 中的內容總是下一條指令的地址。 由于指令通常是順序 執(zhí)行的,所以山東大學威海分校畢業(yè)設計(論文)10修改的過程通常只是簡單的 PC 加 1。表 2 說明了在引入流水線后 PC 的具體工作情況:邁蔦賺陘賓唄擷鷦訟湊。表 3 指令執(zhí)行中 PC 值的變化情況時鐘周期Reset周期 1周期 2周期 3周期 4PC01234第一條指令讀取指令 0執(zhí)行指令 0第二條指令讀取指令 1執(zhí)行指令 1第三條指令讀取指令 2執(zhí)行指令 2表 3 表明,在系統(tǒng)復位時,PC 內的值清 0,第一個時鐘周期,指令

32、寄存器 取 PC為 0 的地址的指令,同時 PC 的值加 1;第二個時鐘周期,執(zhí)行 0 地址的 指令,同時讀取地址 1 的指令,同時 PC 的值加 1;第三個時鐘周期,重復這樣 的過程。這樣可以得到結論:如果當前 CPU 正在執(zhí)行的是第 N 條指令,那么指 令寄存器正在讀取的是 N+1條指令,此時 PC 的值應該是 N+2。嶁硤貪塒廩袞憫倉華糲。2.4 CPU 整體結構即設計思想在設計 CPU 之前整個結構的特性及由哪些模塊組成,這些模塊之間的 互連關系以及整個 CPU 的最后輸出信號等都是要事先定義好的。2.4.1 CPU 的外部引腳規(guī)劃從 CPU 外部看整個輸入輸出如圖 2-5山東大學威海

33、分校畢業(yè)設計(論文)11R7.,.OC4wdddr7, ,0wdata15,0CPU圖 2-5 CPU 外部引腳信號該 CPU 有 5 個輸入引腳,1 個結果輸出端口以及一個運算溢出信號。系統(tǒng) 的時鐘信號將直接驅動驅動整個 CPU。WR 信號是系統(tǒng)的異步指令輸入信號,高 電平有效。當 WR 信號有效時,整個 CPU 進入指令輸入狀態(tài),當 WR 低電平時 CPU 進入指令讀取并完成指令操作的狀態(tài),當 CPU 完成全部輸入指令時進入停 機狀態(tài),此時Start 信號重新啟動 CPU,使其進入等待狀態(tài)。該櫟諼碼戇沖巋鳧薩錠。2.4.2CPU 的整體框圖系統(tǒng)的頂層結構模塊圖如圖 2-6該模塊包含了系統(tǒng)的

34、主要模塊及它們之間的連接關系。 圖中的一個一個的 模塊代表了各個功能模塊,將在下面的章節(jié)中分別做詳細的設計說明。每個模塊 都將按照 EDA 設計中自下而上的設計原則分別獨立設計。 有些模塊是比較簡單的 像指令寄存器(IR),有些模塊則是比較難的像 ALU 模塊和控制單元模塊。劇妝諢貰 攖蘋塒呂侖廟。elkwr取指單元取指單元執(zhí)行單元執(zhí)行單元山東大學威海分校畢業(yè)設計(論文)12在設計微處理器的功能模塊之前,需要決定如何邏輯實現(xiàn)和處理器鎖存數(shù) 據(jù)。微處理器中有兩種不同的邏輯元件:(1)ALU、MUX、CONCROL 單元的元件都是組合邏輯電路。它們的輸出僅僅依賴于當前的輸入狀態(tài),沒有內部存儲功能;

35、臠龍訛驄椏業(yè)變墊羅蘄。(2)寄存器堆、臨時寄存器都是狀態(tài)單元,它的輸出不僅依賴于輸入,還有 其自身內部的狀態(tài)。時鐘用來決定狀態(tài)何時被寫入,一個狀態(tài)可以在任意時 刻讀取。鰻順褸悅漚縫輾屜鴨騫。微處理器的時鐘采用邊沿觸發(fā)的方式, 整個系統(tǒng)采用單時鐘電路,即提供一 個系統(tǒng)時鐘,每當時鐘邊沿到來的時候,向狀態(tài)單元寫入數(shù)據(jù)。穡釓虛綹滟鰻絲懷紆濼。整個系統(tǒng)可以分為兩個單元:取指單元,執(zhí)行單元。取指單元負責取下條指 令,執(zhí)行單元負責執(zhí)行當前指令。取指單元和執(zhí)行單元共同構成了CPU 的微控制單元。取指單元的第一個模塊是程序計數(shù)器(PC),PC 中是下條要執(zhí)行的指令 的地址,它是指向程序存儲器單元(PROM)來

36、尋址指令的??刂颇K是對從指令 寄存器(IR)送出指令進行譯碼從而發(fā)出適當?shù)目刂菩盘枅?zhí)行程序的。隸誆熒鑒獫綱鴣攣駘賽。系統(tǒng)中包括了很多寄存器的設計包括指令寄存器 (IR),程序計數(shù)器(PC),這些寄存器大都在我們頂層可見的模塊的內部, 系統(tǒng)的工作也可以看作就是數(shù)據(jù) 在這些寄存器之間的“遷移”,也即寄存器內容的遷移。微處理器的功能就是體 現(xiàn)在這些這些數(shù)據(jù)是如何傳遞的, 在傳遞前的處理是如何處理的,所有這一系列 寄存器數(shù)據(jù)之間的遷移轉換就組成了微處理器。浹繢膩叢著駕驃構碭湊。243 CPU 結構的層次劃分正確合理的劃分系統(tǒng)是所有數(shù)字系統(tǒng)設計成功的關鍵。子系統(tǒng)的劃分過程就是把總體任務劃分程若干分任務

37、的過程。本設計將 CPU 分解為兩大子系統(tǒng):數(shù) 據(jù)通路和控制通路。這種劃分將 CPU 的運算、執(zhí)行單元與控制部件分離開,是 非常合理、自然的。數(shù)據(jù)通路和控制通路這兩大部分又可以細化為更小的模塊,ALU 模塊(算術邏輯單元)、PC_RAM 模塊(程序存儲器)和 IR (指令寄存器)、 TRAM (寄存器堆)屬于數(shù)據(jù)通路部分,ALU 內部又包含更小的模塊(加、減、與、或、移位模塊) ;控制模塊屬于控制通路部分,其中控制模塊又由FSM (狀態(tài)機)和 CONTROL (控制器)構成。具體的模塊功能實現(xiàn)將在下面兩章中詳細 介紹。鈀燭罰櫝箋礱颼畢韞糲。山東大學威海分校畢業(yè)設計(論文)13第三章CPU數(shù)據(jù)通

38、路設計從這一章開始將詳細介紹整個 CPU 的細化設計模塊。通過上一章對 CPU 的 結構劃分,已經(jīng)知道 CPU 的整個設計分為兩個部分:數(shù)據(jù)通路和控制單元。在 這一章中將細分數(shù)據(jù)通路模塊,數(shù)據(jù)通路是 CPU 中的執(zhí)行部件,數(shù)據(jù)傳輸、存 儲、處理都是在數(shù)據(jù)通路中完成的。在整個 CPU 的結構框圖中,除了控制單元 部分,其余部分都是數(shù)據(jù)通路部分,包括程序計數(shù)器 PC、程序存儲器 PC_RAM、 指令寄存器 IR、寄存器堆 TRAM、數(shù)據(jù)選擇器 ALUMUX 和算術與邏輯單元 AL U。愜執(zhí)緝蘿紳頎陽灣愴鍵。設計數(shù)據(jù)通路,有兩種不同的設計方案。第一種是在所有需要傳送數(shù)據(jù)的部 件創(chuàng)建一條直接通路,采用

39、多路選擇器或者緩沖器為那些有多個數(shù)據(jù)源的寄存器 從多個可能的輸入中選擇一個,這種方案適用于規(guī)模比較小的微處理器設計。另一種方案是在微處理器內部創(chuàng)建一條總線,并且在各個部件之間使用總線傳數(shù) 據(jù)。本設計采用的是第一種方案的設計方法。下面將一一介紹數(shù)據(jù)通路的各個模 塊功能及其實現(xiàn)。貞廈給鏌綞牽鎮(zhèn)獵鎦龐。3.1 程序計數(shù)器模塊 PC程序計數(shù)器(PC)作為指向指令地址“指針”,決定著下一條要執(zhí)行的指令。正是有了 PC 的移動和變化,CPU 才能按一定的順序或預想的情況進行指令的執(zhí)山東大學威海分校畢業(yè)設計(論文)14行。程序計數(shù)器 PC 中存放指令存儲器的地址,當一條指令被執(zhí)行時,程序計數(shù) 器存放下一條指

40、令的地址。在正常工作的條件下,控制信號選擇PC+1 作為下一個 PC 的值輸出;當執(zhí)行 JMP 指令時,選擇來自指令中的跳轉地址決定新的 PC 值,但是在本次設計中沒有涉及到。嚌鰭級廚脹鑲銦礦毀蘄。AHpc_out7, Q-nrst-pjincPC圖 3-1 PC 模塊外部接口信號圖 3-1 所示是從外部看的 PC 模塊的接口。其中輸出的 PC 是 8BitS 寬的,因 此PC 模塊可以尋址獨立的 256 個單元。PC_OUT 地址輸出信號是直接與程序存 儲器PCRAM 相連的。PCNC 控制信號來自控制單元,若 PC_INC 有效則 PC 將執(zhí)行加1 操作。EN 信號是程序計數(shù)器 PC 的使

41、能控制信號,只有當該信號有 效時 PC 的相應才能操作才能執(zhí)行。薊鑌豎牘熒浹醬籬鈴騫。3.2 程序存儲器 PC_RAM程序存儲器是存儲微處理器程序,即能執(zhí)行特定功能的一組指令組合。圖3-2 顯示了程序存儲器的結構圖。在設計程序存儲器模塊時,本文是自行設計寄存器堆型的存儲器,直接使用 一個數(shù)組存放二進制數(shù)據(jù),通過 VHDL 編寫一個一定長度的數(shù)組實現(xiàn)。因為程 序計數(shù)器可以尋址到 256 條指令,所以程序存儲器也必需可以至少存放128 條 16位的指令,這樣只需申請一個變量 Ram,有 256 個元素,每個元素 16 位即可。第一個數(shù)組兀素下標表示存貯器的 0 號地址,第二個數(shù)組兀素下標表示 1

42、號地址,以 此類推至第 256 個數(shù)組元素的下標,即 11111111 號存貯器地址。齡踐硯語蝸鑄轉絹攤濼。山東大學威海分校畢業(yè)設計(論文)15程序存儲器是一個可讀可寫的模塊, 其輸入端口接入外圍程序和地址輸入端口,由 WR 異步控制其讀寫狀態(tài),WR 高電平有效。當 WR 有效時,程序存 儲器為寫狀態(tài),即將輸入程序存入其輸入地址對應的存儲單元中,即執(zhí)行操作ram(conv_integer(waddr) = wdata;當 WR 為低電平時,程序存儲器處于讀狀 態(tài),其將程序計數(shù)器輸出地址PC_OUT 上 對應的存儲單元中的指令輸出,即執(zhí)行操作 instruction waddr7,.0- wda

43、ta15.-0PC PM山東大學威海分校畢業(yè)設計(論文)16J圖 3-4 指令寄存器外部接口圖 3-4 所示,指令寄存器的指令流向是:4 位操作碼 IR 指令送往控制單元已做 譯碼使用,而根據(jù)不同指令分離出來的要操作的立即數(shù)DATA、源操作寄存器RR、目的操作寄存器 RD 送到寄存器堆 TRAM 模塊。指令寄存器外部輸入控制信 號en 是來自控制單元的輸入信號,En 高電平有效,與 PC 模塊的使能 en 信號功能 上基本一致,它控制著指令寄存器是否可以從程序存儲器中加載指令。當 en 有效時指令寄存器才能更新來自程序存儲器的指令。擷偽氫鱧轍冪聹諛詼龐。3.4 時鐘發(fā)生器模塊時鐘發(fā)生器 TIM

44、E_CTRL 利用時鐘信號 CLK 生成從時鐘信號 CLKR,并送往 CPU的寄存器堆 TRAM 中,作為其進行讀寫操作的時鐘信號。 CLKR 是將 CLK 延遲半個周期產(chǎn)生的,有利于流水線的完成。蹤飯夢摻釣貞綾賁發(fā)蘄。時鐘發(fā)生器的外部接口如圖 3-5。ckclkrTIME CTRL圖 3-5 時鐘發(fā)生器的外部接口3.5 寄存器堆 TRAM寄存器堆與程序存儲器設計相同,都是直接使用一個數(shù)組存放二進制數(shù) 據(jù),通過 VHDL 編寫一個一定長度的數(shù)組實現(xiàn),同樣可以通過集成器數(shù)組 元素和輸入地址間的相互賦值實現(xiàn)“讀存儲器”,“寫存儲器”。婭鑠機職錮夾簣軒蝕騫。在本次 CPU 設計中 TRAM 模塊用以

45、完成以下幾個操作:1、 將立即數(shù)寫入指定寄存器中。2、 將指定目的操作寄存器地址中的數(shù)據(jù)讀出并輸出。3、 將指定源操作寄存器地址中的數(shù)據(jù)讀出。山東大學威海分校畢業(yè)設計(論文)17regLTr7.,0egd7 0ram_ctrll,0data1.0RO7.O圖 3-6 寄存器堆 TRAM 卜部接口如圖 12 所示,fclkr 時鐘信號是來自時鐘發(fā)生器,控制寄存器是否能進行讀 寫操作。在 CPU 時鐘的前半周期,控制器進行譯碼并發(fā)出控制信號,為操作的施 行鋪好路,在時鐘的后半周期,也就是從時鐘信號 fclkr 的上升沿,TRAM 在控制 信號 ram _ctrl、load、store 的控制下進行

46、讀寫操作。譽諶摻鉺錠試監(jiān)鄺儕瀉。If (ris in g_edge(fclkr) the nIf (fstore = thenram (conv_in teger(fromrd)=fR0一存儲上條指令運算得到的結果elsif (fromram_ctrl = 11) the n toreg_rr=ram(c onv_in teger(fromrr);toreg_rd=ram(c onv_in teger(fromrd);一一將指定寄存器的值輸出elsif (fromram_ctrl = 01) the n ram (conv_in teger(fromrd)=value2;-/存儲立即數(shù)到目的寄

47、存器從這段代碼可以看出,當控制信號 store 有效時,TRAM 可以完成將運算器的 結果寫入目的操作寄存器中,若無效,則判斷控制信號 ram_ctrl 的值,根據(jù)不同的 控制值可以將寄存器的儲存值分別寫入目的操作寄存器和源操作寄存器中,可以將立即數(shù)寫入目的操作寄存器中,可以讀出指定寄存器的值并輸出。儔聹執(zhí)償閏號燴鈿膽賾。3.6 ALU 模塊ALU 單元即算術運算單元,是 CPU 的核心處理的單元,不但能完成算術和 邏輯運算,而且很多數(shù)據(jù)都要通過 ALU 送出到輸出端口并輸出。在 ALU 中還 可以細化成兩個功能單元:取操作數(shù)單元、執(zhí)行運算單元。取操作數(shù)單元負責對 ALU 的兩個操作數(shù) A 和

48、 B 的取值,執(zhí)行運算單元負責將取到的操作數(shù)進行相應 的操作。ALU 整體框圖如圖 3 7 所示。縝電悵淺靚蠐淺錒鵬凜。clkrloadstorerr3. .0rd3,.,0-山東大學威海分校畢業(yè)設計(論文)18圖 3-7 ALU 整體結構圖算術邏輯單元 ALU是絕大多數(shù)指令必須經(jīng)過的單元,所有的運算都在 ALU 中完成。取操作數(shù)單元在數(shù)據(jù)選擇的控制信號控制下,可以選取一個或者兩個操 作數(shù)輸入執(zhí)行單元。在執(zhí)行運算單元中,根據(jù)指令的類型對兩個或一個 8 位輸入 數(shù)據(jù)進行運算。4位算術控制輸入信號 alu_ctrl 決定兩個輸入數(shù)據(jù)的算術操作類 型,可以有 16 種不同的功能組合。2 位邏輯控制輸

49、入信號 Logic 決定一個輸入數(shù) 據(jù)的邏輯操作類型,可以有 4種不同的功能組合。驥擯幟褸饜兗椏長絳粵。在 ALU 的設計中主要還是根據(jù)指令來的,ALU 所能執(zhí)行的指令是很多的, 基本的指令可以分為 4 類,即卩 ADD,SUB, LOGIC, LSL、LSR。指令 ADD 分 為不帶進位和帶進位加法操作:SUB 指令組分為執(zhí)行不帶進位和帶進位減法操作 LOGIC 指令組分為或和與的邏輯操作;LSL 指令組分為帶進位的循環(huán)右移和不帶 進位的算術右移操作;LSR 指令組分為帶進位的循環(huán)左移和不帶進位的算術左 移操作;在本次設計中只完成加法、減法、與、或、不帶進位的左移和不帶進位 的右移的運算功能

50、,并輸出溢出信號。癱噴導閽騁艷搗靨驄鍵。Process (a1, b1, fromalu_ctrl , fromlogic)Beg incase fromalu_ctrl isend case;case fromlogic isend case;end process;Process (clk)beg inif (rising_edge(clk) thenif fouten =0 then Rv=ZZZZZZZZ;elsif fload =0 then Rreg_rr7lk0-reg_rd7.R7.O- -*-*廿DdEi丄.日.Jr-alu_ctrl3.,0-logic 1 0-outen-

51、loadALU圖 3-11 ALU 模塊外部接口第四章 CPU 控制單元的設計在 CPU 中還有一個重要的模塊,即控制單元模塊,其功能是得到當前指令, 得到需要的數(shù)據(jù),在正確的時間、用正確的值設置所有相關的控制信號,控制 CPU 的取指、譯碼和指令執(zhí)行等操作。因此這個模塊在整個 CPU 的設計中是最關鍵的 也是最難精準實現(xiàn)的模塊。欖閾團皺鵬緦壽驏頦蘊。流水線操作和數(shù)據(jù)通路各個模塊的所有控制信號都是來自控制單元??刂茊卧淖饔镁褪菍χ噶钭g碼,在不同的狀態(tài)發(fā)出不同的控制信號來處理流水線過 程,另一方面在合適的時間對數(shù)據(jù)通路發(fā)出正確的控制信號來控制指令的正確執(zhí) 行。為了實現(xiàn)控制模塊的功能,可以將該模

52、塊細化為兩個部分,即控制指令操作的控制器和控制狀態(tài)轉換的有限狀態(tài)機(FSM)。遜輸吳貝義鰈國鳩猶騸。山東大學威海分校畢業(yè)設計(論文)204.1 控制器 Control 模塊控制器則是一個微處理器的核心部件之一,在每一個時鐘周期的上升沿,指 令寄存器 IR 從內存中讀取指令字后,送入控制器中,控制器能夠根據(jù)輸入的 4 位 操作碼進行譯碼,為其他每個功能單元產(chǎn)生相應的主控制信號,并發(fā)出信號狀態(tài) 信號控制狀態(tài)機的狀態(tài)轉換,最終實現(xiàn)對 CPU 各個功能單元的控制,實現(xiàn)指令的 順利執(zhí)行。幘覘匱駭儺紅鹵齡鐮瀉。loadouteni3 0sleepstore abselfl, ,0 ram_ctrll.Ol

53、ogic 1.-0alu_ctr3.OCONTROL圖 4-1 控制器Control外部接口控制器根據(jù) 4 位操作碼 IR 進行譯碼, 通過指令譯碼給出其它各單元的操作控 制信號,包括 ALU 單元的算術和邏輯運算控制信號、移位控制信號,操作數(shù)輸入 選擇信號、結果輸出信號,TRAM 的讀寫控制、送入狀態(tài)機得停機控制信號。誦 終決懷區(qū)馱倆側澩賾。4.2 有限狀態(tài)機 FSM 模塊4.2.1 有限狀態(tài)機狀態(tài)機是 CPU 的又一個控制核心部件,是實現(xiàn)高效率高可靠邏輯控制的重要 途徑,用于產(chǎn)生一系列的控制信號,啟動或停止某些部件。程序計數(shù)器PC 值的改變、指令寄存器取指令以及 CPU 的復位等操作都是由

54、狀態(tài)機來控制的。狀態(tài)機 FSM的當前狀態(tài),由變量 state 記錄。醫(yī)滌侶綃噲睞齒辦銩凜。從狀態(tài)機的信號輸出上分,有 Moore 型和 Mealy 型兩種狀態(tài)機。從輸出時序 上看,前者屬于同步狀態(tài)機,而后者屬于異步狀態(tài)機。Mealy 型狀態(tài)機的輸出是當前狀態(tài)和所輸入信號決定的,它的輸出是在輸入變化后立即發(fā)生的,不依賴時鐘的同步16。Moore 型狀態(tài)機的輸出則僅由當前狀態(tài)控制,這類狀態(tài)機在輸入發(fā)山東大學威海分校畢業(yè)設計(論文)21本次設計采用 2 個進程模塊,一個模塊用同步時序描述狀態(tài)轉移;另一個模 塊用組合邏輯判斷狀態(tài)的邏輯輸出,其 VHD 代碼如下:筧驪鴨櫨懷鏇頤嶸悅廢。process (

55、clk,wr,i nput,start)beg in/第一個進程模塊用同步時序描述狀態(tài)轉移if wr = 1 thenstate /利用 case句對每一個狀態(tài)建立一項 case句的分支If in put =1 thenstate = tj;elsestate whe n tj =end case;end if;end process;process (state)生變化還必須等待時鐘的到來,時鐘使狀態(tài)發(fā)生變化時才導致輸出變化。臚當為遙頭韙鰭啰暈糞。在本次 CPU 設計中,將采用 Mealy 型狀態(tài)機來實現(xiàn)時序和狀態(tài)的轉換。在整 個CPU 的狀態(tài)機中共設計了 3 個狀態(tài):執(zhí)行(exe)待機(s

56、p),停機(tj)。圖 16 是 各個狀態(tài)的狀態(tài)轉移圖。鴣湊鸛齏嶇燭罵獎選鋸。en=(1nrst311pc incwhe n sp =whe n tj =end case;end process;第五章 RISC CPU 勺仿真驗證5.1 各模塊的組合前面兩章將 CPU 細化為多個功能模塊,為了使其能集合成一個完整的系統(tǒng)共 同完成特定的功能執(zhí)行,各個模塊就需要組合起來配合工作。在構建頂層文件的 方法有語言描述和原理圖法。原理圖法就是將 CPU 中的每個綜合模塊以元件的形 式,通過互連線將各個模塊像電路上畫原理圖一樣連接起來,系統(tǒng)規(guī)模比較大時,各個模塊連起來的互連線很多,操作起來很不方便,同時也

57、容易出錯。韋鋯鯖榮擬滄閡懸贖蘊。在本次設計中由于各個模塊的互連信號比較多, 所以將采用硬件語言描述的 方法將各個模塊連接起來,即用 VHDL 語言將各個模塊組合起來從而形成一個最 頂層的模塊。濤貶騙錟晉鎩錈撳憲騙。用 VHDL 語言引用一個模塊時是先用 compo nen 來聲明這個模塊,模塊的接山東大學威海分校畢業(yè)設計(論文)23口要用 port 關鍵詞聲明,例如對程序計數(shù)器模塊的引用聲明如下:鈿蘇饌華檻榪鐵樣說瀉。COMPONENT pc ISPORT (elk ,fe n: IN STD_LOGIC ;fromnrst : IN STD_LOGIC ; frompc_i nc : IN

58、STD_LOGIC ;pcout : out un sig ned(7 dow nto 0);END COMPONENT pc;對程序計數(shù)器模塊的聲明后再對該模塊的引用, 引用時用的關鍵詞是 PORT MAP,通過如下程序段完成模塊引用U1: pc PORT MAP (clk = clk,fen = en,fromnrst = n rst, frompc_i nc = pc_inc, pcout = pc_out);各個模塊間的互連信號是用用一 signa 類型的變量聲明的。SIGNAL en, n rst ,clkr: STD_LOGIC;SIGNAL oute n :STD_LOGIC;將

59、所有的功能模塊組合連接起來就成為一個整體,作為整個仿真的 頂層模塊。5.2 綜合 RTL 電路圖利用硬件語言法構建好頂層文件, 把所有模塊組裝成了一個整體,在對這 個整體進行編譯和綜合成功后即可對它進行功能仿真。用 QUARTUSII 對設計模 塊進行編譯及綜合后生成的 RTL 綜合電路圖如圖 5 1 示。購櫛頁詩燦戶踐瀾襯鳳。山東大學威海分校畢業(yè)設計(論文)24on clk,fe n = en,fromnrst = n rst,frompc_i nc = pc_inc,frompc_load =pc_load,fromaddr =addr, pcout = pc_out)鄭餼腸絆頎鎦鷓鮞嚶錳

60、。U2: pc_ram PORT MAP(clk = clk,fro mnrst = n rst,pc_in = pc_out,waddr= waddr,wdata = wdata,wr = wr, toi nstructio n = in structi on);棄鈾縫遷馀氣鰷鸞覲廩。U3: ir_ram PORT MAP(clk = clk,fromi ns = in structio n,frome n = en ,tord= rd,torr = rr,todata = data,toir = ir);調誶續(xù)鷚髏鋮饅喪劉藪。U4: Tram PORT MAP(fclkr = clkr,f

溫馨提示

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

最新文檔

評論

0/150

提交評論