




已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
數(shù)字系統(tǒng)EDA技術實驗指導書EDA課程組2014年9月序 言數(shù)字系統(tǒng)EDA技術實驗指導書是與理論課程數(shù)字系統(tǒng)EDA技術配套使用。該實驗課程是電子信息類專業(yè)的一門專業(yè)實驗課程,對電子信息類專業(yè)的學生具有非常重要的作用。本實驗課與理論課同時進行,同學們在做本實驗之前必須具備以下的基礎知識:1、數(shù)字電路的基礎知識;2、電子計算機常用操作系統(tǒng)的使用方法;3、一定的英語基礎;4、必須有一定的理論知識做基礎,與理論課同時進行。PLD(可編程邏輯器件)是與ISP(在系統(tǒng)可編程)技術和EDA(電子設計自動化)工具緊密結(jié)合、同時進行的。它代表了數(shù)字系統(tǒng)設計領域的最高水平,給數(shù)字電路的設計帶來了革命性的變化。從70 年代第一片可編程邏輯器件PROM的誕生到現(xiàn)在的CPLD/FPGA,數(shù)字系統(tǒng)的設計發(fā)生了本質(zhì)的變化。從傳統(tǒng)的對電路板的設計到現(xiàn)在的基于芯片的設計,使得數(shù)字系統(tǒng)設計的效率大大提高,產(chǎn)品更新速度大大加快,設計周期大大變短。本實驗不同于其它實驗,他的實驗手段和實驗方法都有了重大的變化,主要體現(xiàn)在以下幾個方面:1、實驗方法不同本實驗是在PC、實驗箱和相關軟件搭配成的專用實驗平臺上,用原理圖或文本進行輸入,按以下流程反復對設計源文件進行修改,直到其設計滿足要求為止。修改修改修改編寫源文件編譯仿真下載修改系統(tǒng)測試2、本實驗課的目的學生學習完本實驗課后,應達到如下的要求:1)能熟練使用本實驗的配套EDA軟件Quartus、ModelSim;2)掌握PLD 芯片的基本使用方法,能用現(xiàn)代數(shù)字系統(tǒng)的設計方法進行基本的數(shù)字系統(tǒng)設計;3)掌握圖形編輯和VHDL文本編輯兩種設計方法,重點是VHDL文本編輯;4)具備基本的開發(fā)能力,為后續(xù)學習打下堅實的基礎。實驗規(guī)則為了維護正常的實驗教學次序,提高實驗課的教學質(zhì)量,順利的完成各項實驗任務,確保人身、設備安全,特制定如下實驗規(guī)則:一、實驗前必須充分預習,完成指定的預習內(nèi)容,并寫出預習報告,預習要求如下:1、認真閱讀本實驗指導書,分析掌握本次實驗的基本原理;2、完成各實驗預習要求中指定的內(nèi)容;3、熟悉實驗任務。二、實驗時,認真、仔細的寫出源程序,進行調(diào)試,有問題向指導老師舉手提問;調(diào)試成功準備下載時,必須請示指導老師,得到允許方可下載。三、實驗時注意觀察,如發(fā)現(xiàn)有異?,F(xiàn)象(電腦故障或?qū)嶒炏涔收希?,必須及時報告指導老師,嚴禁私自亂動。四、實驗過程中應仔細觀察實驗現(xiàn)象,認真記錄實驗數(shù)據(jù)、波形、邏輯關系及其它現(xiàn)象,記錄的原始結(jié)果必須經(jīng)指導教師審閱簽字后,方可離開。五、自覺保持實驗室的肅靜、整潔;實驗結(jié)束后,必須清理實驗桌,將實驗設備、工具、導線按規(guī)定放好,并填寫儀器設備使用記錄。六、凡有下列情況之一者,不準做實驗:1、沒有寫預習報告者;2、實驗開始后遲到10 分鐘以上者;3、實驗中不遵守實驗室有關規(guī)定,不愛護儀器,表現(xiàn)不好而又不服從管理教育者;七、實驗后,必須認真作好實驗報告,下次實驗時交實驗指導老師批閱。沒交實驗報告者,在規(guī)定時間里必須交給實驗指導老師,否則視為缺做一次實驗。八、一次未做實驗,本實驗課成績視為不及格,原則上與下一屆學生進行重修。以上實驗規(guī)則,請同學們自覺遵守,并互相監(jiān)督。注意:請參加實驗的同學每次實驗后將自己的源程序拷貝備用。數(shù)字系統(tǒng)實驗室儀器設備操作規(guī)程1、 指導教師或?qū)嶒灩ぷ魅藛T應密切注視實驗人員的操作行為,如發(fā)現(xiàn)不按操作規(guī)程辦事,或隨意亂動室內(nèi)的儀器設備,應予以制止;2、 進行本實驗的學生,應具備一定的電腦知識,基本熟悉Windows操作系統(tǒng)的應用;3、 實驗前,學生應在實驗教師的指導下,學習實驗軟件Quartus、ModelSim軟件的基本使用方法,了解數(shù)字邏輯實驗箱的使用方法,并在實驗中逐步熟悉;4、 本實驗室的儀器設備較貴重,嚴禁隨意亂動;嚴禁在電腦上私設密碼;實驗時,必須按實驗程序進行;5、 實驗中,對于學生使用的各種儀器、儀表及實驗連線,必須經(jīng)實驗指導教師審查確認后,方可接通電源;通電后,應隨時觀察是否正常工作,如發(fā)現(xiàn)異常情況,應立即切斷電源,并報告指導教師,在故障未排除之前,嚴禁強行通電,否則后果自負;6、 學生在指定桌上實驗,除本桌儀器外,不得擅自取用其它儀器設備;如確需要取用,須經(jīng)指導教師同意;7、 實驗過程中,如發(fā)現(xiàn)損壞儀器設備、儀表工具,或軟件不能正常使用等情況,應立即報告指導教師或?qū)嶒灩ぷ魅藛T;8、 實驗完畢后,實驗人員應清點好實驗所用的一切儀器設備,并經(jīng)實驗指導教師同意后方可離開;9、違規(guī)操作損壞的設備,除照價賠償外,并給予相應的紀律處分。實驗一 十進制計數(shù)器設計與仿真一、預習內(nèi)容1. 結(jié)合教材中的介紹熟悉Quartus、ModelSim軟件的使用及設計流程;2. 十進制計數(shù)器設計原理。二、實驗目的3. 圖形設計方法二、實驗目的1. 掌握VHDL設計方法;2. 熟悉Quartus、ModelSim軟件的使用及設計流程;3. 掌握十進制計數(shù)器的設計。三、實驗器材三、 實驗器材PC機一臺、配套EDA開發(fā)工具Quartus、ModelSim四、實驗要求1、用VHDL設計一個十進制計數(shù)器;2、用VHDL設計十進制計數(shù)器的測試平臺; 3、用Quartus II完成十進制計數(shù)器的綜合實現(xiàn);4、用ModelSim完成十進制計數(shù)器的時序仿真。五、實驗原理與內(nèi)容1、原理:計數(shù)器是數(shù)字系統(tǒng)中的基本邏輯器件。計數(shù)器分為同步計數(shù)器和異步計數(shù)器。同步計數(shù)器指在時鐘脈沖(計數(shù)脈沖)的控制下,構(gòu)成計數(shù)器的各觸發(fā)器狀態(tài)同時發(fā)生變化的計數(shù)器,即計數(shù)器內(nèi)部各觸發(fā)器的時鐘信號是統(tǒng)一的時鐘信號。同步計數(shù)器具有工作穩(wěn)定可靠、工作頻率高的優(yōu)點,但消耗硬件資源較多。異步計數(shù)器又稱為行波計數(shù)器,它的低位計數(shù)器的輸出作為高位計數(shù)器的時鐘信號。異步計數(shù)器采用行波計數(shù),使計數(shù)延遲增加,計數(shù)器工作頻率較低,但具有消耗資源較少的優(yōu)點。計數(shù)器的清零信號分為同步清零和異步清零。同步清零由時鐘的邊沿信號控制產(chǎn)生清零操作,異步清零操作與時鐘信號無關。十進制計數(shù)器的計數(shù)范圍為09循環(huán)變化,輸入信號包括:時鐘信號、復位信號;輸出信號包括:4位寬的計數(shù)結(jié)果、進位位。2、實現(xiàn)框圖: 十進制計數(shù)器clockresetCounter_out3.0Cout六、實驗步驟1、 用VHDL語言設計一個異步清零的十進制同步計數(shù)器;2、 用VHDL設計十進制計數(shù)器的測試平臺;3、 完成該計數(shù)器的綜合、布局布線和時序仿真;七、實驗報告1、寫出實驗源程序,并附上綜合結(jié)果和仿真波形;2、分析實驗結(jié)果;3、心得體會本次實驗中你的感受;你從實驗中獲得了哪些收益;本次實驗你的成功之處;本次實驗中還有待改進的地方;下次實驗應該從哪些地方進行改進;怎樣提高自己的實驗效率和實驗水平等等。4、完成實驗思考題。八、問題及思考1、通過仿真比較計數(shù)器同步清零與異步清零的區(qū)別。2、理解同步計數(shù)器與異步計數(shù)器原理的區(qū)別,比較兩種計數(shù)器綜合后的性能差異(主要從消耗資源和運算速度考慮)。實驗二 DE2-115開發(fā)板接口應用一、預習內(nèi)容1、 結(jié)合附錄一了解EDA實驗箱的原理;2、 七段LED顯示原理;3、 怎樣用VHDL實現(xiàn)8421BCD碼在七段LED數(shù)碼管上顯示。二、實驗目的實驗目的1. 掌握VHDL進行EDA設計的基本步驟;2. 了解EDA實驗箱的基本功能和使用方法;3. 掌握七段LED的顯示原理;三、實驗器材驗器材PC機一臺、EDA教學實驗系統(tǒng)一臺、下載電纜一根。四、實驗要求1. 將學號后四位的每一位數(shù)字均轉(zhuǎn)換為8421BCD碼,使用實驗箱上的16個滑動開關(SW15SW0)分別將四位學號的BCD碼輸入,并作為輸入信號。2. 用VHDL設計七段LED譯碼顯示電路;3. 用圖形輸入法設計完成顯示學號后四位的顯示電路;4. 下載該程序驗證程序是否正確;5. 使用實驗箱中的四組七段LED電路(HEX3、HEX2、HEX1、HEX0)依次顯示學號后四位;6. 請事先準備一個優(yōu)盤,本實驗程序需要保存,后面實驗需要用到。五、實驗原理與內(nèi)容1、 8421BCD編碼 在數(shù)字系統(tǒng)中常用四位二進制代碼來表示一位十進制數(shù)字0、1、2、9,稱之為二十進制代碼,即BCD碼。將十進制數(shù)編成BCD碼的電路,稱為二十進制(BCD)編碼器。二-十進制編碼的方案很多,若BCD編碼器采用8421編碼方案,稱為8421BCD編碼器。例如:十進制數(shù)5的8421BCD編碼為:0101。2、 七段譯碼器BCD七段譯碼器是一種常見的顯示譯碼電路,其邏輯圖如圖2-1所示,其中:D3.0代表輸入的四位二進制BCD碼,a,b,c,d,e,f,g 接對應的數(shù)碼顯示接口,通過點亮7個數(shù)碼管中的某幾個數(shù)碼管的方式可實現(xiàn)在數(shù)碼管上顯示相應的數(shù)字。本實驗箱中的數(shù)碼管為低電平0點亮,高電平1熄滅。圖2-1 譯碼器邏輯圖BCD七段譯碼器的真值表如表2-1。表2-1 譯碼器的真值表數(shù)值輸入輸出D3D2D1D0abcdefg000000000001100011001111200100010010300110000110401001001100501010100100601100100000701110001111810000000000910010000100A10100001000B10111100000C11000110001D11011000010E11100110000F111101110003、 實現(xiàn)框圖程序?qū)崿F(xiàn)框圖如圖2-2所示,由于要求顯示學生學號的后四位,因此可以在頂層圖中使用4個七段譯碼電路。每個譯碼電路的輸入都是某一位學號數(shù)值對應的4位寬的BCD編碼,輸出為該數(shù)值對應的七段譯碼結(jié)果。圖2-2 頂層實現(xiàn)框圖六、實驗步驟1、寫出輸入為8421BCD碼的七段譯碼器電路;2、利用步驟一得到的七段譯碼器,使用圖形輸入法實現(xiàn)同時對四組輸入數(shù)據(jù)的七段譯碼;3、選定器件、映射管腳、編譯、下載。七、實驗報告1、寫出實驗源程序;2、總結(jié)實驗步驟和實驗結(jié)果;3、心得體會本次實驗中你的感受;你從實驗中獲得了哪些收益;本次實驗你的成功之處;本次實驗中還有待改進的地方;下次實驗應該從哪些地方進行改進;怎樣提高自己的實驗效率和實驗水平等等。4、完成實驗思考題。八、問題及思考 如果要求譯出09和,程序該如何修改呢?九、實驗中需要用到的引腳編號1、實驗中需要使用16個滑動開關(SW15SW0)實現(xiàn)將四位學號的BCD碼進行輸入,這16個滑動開關的引腳編號如表2-2所示:2、實驗箱共提供八組七段LED電路(HEX7HEX0)。本實驗中使用實驗箱中的后四組七段LED電路(HEX3、HEX2、HEX1、HEX0)依次顯示學號后四位。各組七段LED電路的引腳編號如表2-3所示:3、實驗箱中七段LED電路各數(shù)碼管的編號索引如圖2-3所示:圖2-3 七段數(shù)碼管索引編號4、若將工程中所有的輸入輸出信號定義成與上述表中的信號名字相同,可通過將引腳配置文件DE2_115_pin_assignments.csv導入工程的方式自動配置各信號引腳編號,而不必一個一個的指定信號的引腳編號。導入引腳配置文件的方法:選擇Assignments-Import Assignments-選擇文件“DE2_115_pin_assignments.csv”- OK實驗三 處理器核心電路的設計及驗證一、實驗目的 1、進一步掌握Altera DE2-115開發(fā)平臺的使用; 2、掌握Quartus軟件設計流程; 3、掌握一個處理器核心電路的基本結(jié)構(gòu)及設計方法; 4、掌握狀態(tài)機的設計方法; 5、進一步掌握如何編寫testBench,并利用Modelsim進行仿真。二、實驗前的準備工作 1、通過查詢相關資料或書籍自學如何編寫testBench; 2、通過查詢相關資料或書籍自學如何使用Modelsim進行仿真。三、實驗環(huán)境 1、預裝開發(fā)環(huán)境Quartus11.0以上的版本和仿真工具軟件Modelsim的計算機; 2、DE2-115開發(fā)板一套。四、實驗內(nèi)容1、 利用層次化的設計方法使用VHDL語言設計一個簡單的處理器;2、 設計一個應用程序用于驗證所設計的處理器的功能。五、實驗原理1、一個最基本處理器的主要部件的構(gòu)成如下圖所示,一個最基本的處理器應該包括一些寄存器,一個多路選擇器、一個加法/減法單元、計數(shù)器和一個控制單元。其中,寄存器的位寬可以選擇8位、16位、32位、64位。以下均以16位為例來說明所設計的處理器的基本結(jié)構(gòu)。處理器所處理的輸入數(shù)據(jù)通過多路復用器加載到不同的寄存器內(nèi),寄存器分別定義為R0、R1、R2、R3、R4、R5、R6、R7和A。各個寄存器之間可以相互傳遞數(shù)據(jù)。復用器的輸出稱之為總線。該總線容許數(shù)據(jù)從一個位置傳遞到另一個位置。加法/減法單元首先通過多路復用器將一個16位數(shù)加載到寄存器A中,寄存器A固定作為加法/減法單元的一個操作數(shù)。加法/減法單元的第二個操作數(shù)將通過總線傳至加法/減法單元的另一個數(shù)據(jù)輸入接口,完成運算操作后的數(shù)據(jù)存入寄存器G內(nèi)。寄存器G的值可通過復用器將其搬移到需要的位置。圖1 處理器內(nèi)部結(jié)構(gòu)圖 在控制單元的控制下,每個時鐘周期可完成不同的操作。這個控制單元決定什么數(shù)據(jù)放在總線上,并且控制哪個寄存器加載總線上的數(shù)據(jù)。例如,將寄存器R0的值加載到寄存器A內(nèi),可在兩個時鐘周期內(nèi)完成,第一個時鐘周期是將R0的值放在總線上,第二個周期則將總線上的數(shù)據(jù)加載到寄存器A內(nèi)。2、處理器的操作處理器可通過各種指令來進行所需要的操作。下表列出了本次實驗需要完成的4條指令及相應的功能。mv Rx, Ry 表示將Ry寄存器內(nèi)的數(shù)據(jù)移到Rx寄存器內(nèi)。mvi Rx, #D 表示將立即數(shù)送到Rx寄存器內(nèi)。add Rx, Ry 表示將Rx和Ry寄存器內(nèi)的數(shù)據(jù)相加,結(jié)果存入Rx寄存器內(nèi)。sub Rx,Ry 表示將Rx和Ry寄存器內(nèi)的數(shù)據(jù)相加減,結(jié)果存入Rx寄存器內(nèi)。指令可通過編碼后存入IR寄存器內(nèi)。IR寄存器可以使用9位表示。如IIIXXXYYY。其中III表示指令,XXX代表Rx寄存器,YYY代表Ry寄存器。IR必須連接到16位數(shù)據(jù)輸入腳上(可以是低9位或高9位)。對于mvi指令,YYY域不用,立即數(shù)#D在mvi指令存入IR寄存器后由16位數(shù)據(jù)輸入口送入。對于加法和減法指令,由于該類操作需要多次占用總線,因此完成這類操作需要多個時鐘周期。為此可增加一個2位的計數(shù)器counter。當RUN有效時計數(shù)器counter開始計數(shù),即檢測到開始執(zhí)行加法/減法操作,當指令執(zhí)行完畢后Done有效,此時清空counter計數(shù)器,可以進行下一指令的操作。表1處理器操作指令操作所完成的功能mv Rx, RyRx - Rymvi Rx, #DRx - Dadd Rx, RyRx - Rx + Rysub Rx, RyRx Rx, 001: R1 - Rx, . , 111: R7 - Rx-YYY: select Ry value : 000: R0 - Ry, 001: R1 - Ry, . , 111: R7 - Ry-resources-8 16-bit registers: R0 R7 -1 16-bit ALU(Add or subtract)-Operation timing- 1 2 3 4 5 6-clk _|-|_|-|_|-|_|-|_|-|_|-|_|-|_|-|_|-|_|-|_|-|_|-|_|-|_-Run _|-|_-DIn =-Done _|-|_ mv or mvi-procBus= Bus valid data-R7:0 = R7:0 valid data(delay a clock period) -Done _|-|_ add or sub-procBus=-R7:0 =R7:0 valid data(delay a clock period)- : Valid Instruction-: Valid Data-庫、程序包的聲明library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; -有符號的加減運算-處理器的輸入和輸出口entity simProc isgeneric (BusWidth : integer :=16);port(DIn : in std_logic_vector(BusWidth-1 downto 0); -16-bit data input portnARst : in std_logic ; -reset signal, low activeclk : in std_logic ; -clock input, can be obtained through 50 MHZ frequency -divider or through a button of DE2_115 boardRun: in std_logic ; -high active, Keep at least one clock cycleDone: out std_logic; -operation over, high activeprocBus: out std_logic_vector(BusWidth-1 downto 0); -output processor bus statIndic: out std_logic_vector(2 downto 0) -state indicators);end simProc ; architecture arch of simProc issignal highLevel : std_logic ;signal upCntClr: std_logic ;signal cntRst: std_logic ;signal procBusReg: std_logic_vector(BusWidth-1 downto 0); -register procBus -IR(2 downto 0): RY register-IR(5 downto 3): RX register-IR(8 downto 6): resprents Instruction signal IR: std_logic_vector(8 downto 0) ; -9-bit Instruction-mv : I=0 -mvi: I=1-add: I=2-sub: I=3signal I : std_logic_vector(2 downto 0); -Instruction registersignal Xreg, Yreg: std_logic_vector(7 downto 0) ;-Indicate which registers(R0 R7) -R0 R7 registerssignal R0, R1, R2, R3, R4, R5, R6, R7: std_logic_vector(BusWidth-1 downto 0) ;-write enable signals of R0 R7 registerssignal Rin: std_logic_vector(7 downto 0) ;- operand Rx and Rysignal Rx, Ry: std_logic_vector(BusWidth-1 downto 0) ;-A register which is used to save Rx operand when to add or subtract operationsignal A: std_logic_vector(BusWidth-1 downto 0) ;-write enable signal of A register-signal A_En: std_logic ; -Hidden in the program-save add/subtract result signal G: std_logic_vector(BusWidth-1 downto 0) ;-operation steps-signal Tstep_Q :std_logic_vector(1 downto 0) ;type Tstep is (Tstep_Q0, Tstep_Q1, Tstep_Q2, Tstep_Q3) ;signal currentOpState : std_logic_vector(1 downto 0) ;signal nextOpState : Tstep ;component dec3to8 isport(w: in std_logic_vector(2 downto 0); En: in std_logic; Y: out std_logic_vector(7 downto 0);end component ;component regn isgeneric (regWidth: integer:=16);port(R: in std_logic_vector(regWidth-1 downto 0); nRst: in std_logic ; Rin, clk: in std_logic ; Q: out std_logic_vector(regWidth-1 downto 0);end component ; begin-highLevel = 1 ;procBus = procBusReg ;-decode IR registerI BusWidth)port map(procBusReg, nARst, Rin(0), clk, R0);reg_1: regn generic map(regWidth = BusWidth)port map(procBusReg, nARst, Rin(1), clk, R1);reg_2: regn generic map(regWidth = BusWidth)port map(procBusReg, nARst, Rin(2), clk, R2);reg_3: regn generic map(regWidth = BusWidth)port map(procBusReg, nARst, Rin(3), clk, R3);reg_4: regn generic map(regWidth = BusWidth)port map(procBusReg, nARst, Rin(4), clk, R4);reg_5: regn generic map(regWidth = BusWidth)port map(procBusReg, nARst, Rin(5), clk, R5);reg_6: regn generic map(regWidth = BusWidth)port map(procBusReg, nARst, Rin(6), clk, R6);reg_7: regn generic map(regWidth = BusWidth)port map(procBusReg, nARst, Rin(7), clk, R7);-Determine which registers are used according to IR instructiuon-RxRx = R0 when IR(5 downto 3) = 000 elseR1 when IR(5 downto 3) = 001 elseR2 when IR(5 downto 3) = 010 elseR3 when IR(5 downto 3) = 011 elseR4 when IR(5 downto 3) = 100 elseR5 when IR(5 downto 3) = 101 elseR6 when IR(5 downto 3) = 110 elseR7 ;-RyRy = R0 when IR(2 downto 0) = 000 elseR1 when IR(2 downto 0) = 001 elseR2 when IR(2 downto 0) = 010 elseR3 when IR(2 downto 0) = 011 elseR4 when IR(2 downto 0) = 100 elseR5 when IR(2 downto 0) = 101 elseR6 when IR(2 downto 0) = 110 elseR7 ;-instruction operation state machineprocess(clk, nARst)beginif (nARst = 0) then currentOpState = 00 ;elsif clkevent and clk = 1 then- currentOpState -Tstep_Q :T0if (Run = 1) then currentOpState -Tstep_Q :T1 if (I = 010) or (I = 011) then currentOpState = 10 ;else currentOpState -Tstep_Q : T2 if (I = 010) or (I = 011) then currentOpState = 11 ;else currentOpState - nextOpState -Tstep_Q :T3 currentOpState = 00 ;end case ;end if ;end process;- instruction operationprocess(clk, nARst)beginif (nARst = 0) thenDone = 0 ;Rin 0) ;statIndic(0) = 0 ;procBusReg 0) ;IR 0) ;G 0) ;elsif clkevent and clk = 1 thencase currentOpState is-load instructionwhen 00 = -Tstep_Q :T0Done = 0 ;Rin 0) ;statIndic(0) = 0 ;if (Run = 1) then IR -Tstep_Q :T1 case I is when 000 = -mv Rx, Ry procBusReg = Ry ; Rin = Xreg ; Done -mvi Rx, #D procBusReg = DIn ; Rin = Xreg ; Done - add Rx, Ry A -input error statIndic(0) -Tstep_Q : T2 case I is when 000 | 001 = statIndic(0) - add Rx, Ry G - sub Rx, Ry G statIndic(0) -Tstep_Q :T3 case I is when 000 | 001 = statIndic(0) - add Rx, Ry or sub Rx, Ry procBusReg = G ; Rin = Xreg ; Done statIndic(0) statIndic(0) = 1 ;end case ;end if ;end process;statIndic(2 downto 1) Y Y = 00000010 ; . end case ;else Y = 00000000 ; end if ;end process;end arch ; 寄存器的實現(xiàn)regn-庫、程序包的聲明entity regn isgeneric (regWidth: integer:=16);port(R: in std_logic_vector(regWidth-1 downto 0); nRst: in std_logic ; Rin, clk: in std_logic ; Q: out std_logic_vector(regWidth-1 downto 0); end regn ;architecture arch of regn isbeginprocess(clk)beginif (clkevent and clk = 1) then if (nRst = 0) then Q 0) ; else. end if ;end if ; end process ;end arch ; 2、處理器核心電路的設計利用ModelSim完成對上述核心電路的仿真。需要仿真的功能完成如下一段功能代碼。mvi R(n), #D1mvi R(n+5), #D2mv R(n+1), R(n+5)add R(n), R(n+5)sub R(n), R(n+1)其中n為學號的最后一位數(shù)字模8后的值,(n+5)及(n+1)則分別取其模7后的值;D1為學號的高4位數(shù)字,D2為學號的低4位數(shù)字,4位數(shù)當作16進制數(shù),若學號中有非數(shù)字,則用0表示。如:學號為123407436787,則n=7,(n+5) mod 7=5, (n+1) mod 7=1, D1=0x1234, D2=0x6787library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_signed.all; entity simProc_tb isend simProc_tb ;architecture tb of simProc_tb is-define signalssignal DIn: std_logic_vector(15 downto 0) ;signal nARst: std_logic ;signal clk: std_logic ;signal Run: std_logic ;signal Done: std_logic ;signal procBus: std_logic_vector(15 downto 0) ;signal ErrorIndic: std_logic_vector(2 downto 0) ;signal opCnt: std_logic_vector(1 downto 0) ;signal simIRCnt: std_logic_vector(2 downto 0) ;-componentscomponent simProc is generic (BusWidth : integer :=16);port(DIn : in std_logic_vector(BusWidth-1 downto 0); -16-bit data input portnARst : in std_logic ; -reset signal, low activeClk : in std_logic ; -clock input, can be obta
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大班活動:我的牙齒
- 人文素養(yǎng)課件
- 痛風健康教育
- 工作溺水急救措施
- 2025年中國軟木地板行業(yè)市場調(diào)查及“十三五”投資戰(zhàn)略預測報告
- 社區(qū)衛(wèi)生健康教育基地
- DB32/T 4691-2024封閉區(qū)域智能網(wǎng)聯(lián)低速養(yǎng)護車作業(yè)安全管理規(guī)范
- 醫(yī)用智能設備項目企劃書
- 針灸科護理年終總結(jié)
- 社區(qū)精神障礙者的康復護理
- 2023年科技特長生招生考試試卷
- 超聲波清洗機日常點檢表
- 無刷雙饋電機的功率因數(shù)控制
- 公司員工借款合同
- 國家開放大學《財務管理#》章節(jié)測試參考答案
- 記賬憑證的填制方法和要求教案
- 光伏電站組件清洗方案說明
- DL-T 2226-2021 電力用閥控式鉛酸蓄電池組在線監(jiān)測系統(tǒng)技術條件
- GB/T 5650-1985擴口式管接頭空心螺栓
- GB/T 39239-2020無損檢測超聲檢測不連續(xù)的特征和定量
- GB/T 24610.1-2019滾動軸承振動測量方法第1部分:基礎
評論
0/150
提交評論