




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、學習好資料歡迎下載第八章仿真與邏輯綜合目前流行的VHDL仿真器回顧:MentorGraphics公司Aldec公司Cadence公司Altera公司QuartusIIModelSimActive-VHDLVerilog-XLMaxplusII8.1仿真輸入端輸出端absY00000100100111010010011110101111二選一選擇器二選一選擇器VHDL描述:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux21aISPORT(a,b:INSTD_LOGIC;s:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDENTITY
2、mux21a;ARCHITECTUREoneOFmux21aISBEGINPROCESS(a,b,s)BEGINIFs='0'THENy<=a;ELSEy<=b;ENDIF;ENDPROCESS;ENDARCHITECTUREone;編輯輸入波形文件方法仿真:EDA軟件工具生產商為設計者提供了一個較為直觀地生成仿真輸入波形的工具波形編輯器。例如,Altera公司提供的MAX+plusn工具軟件就有這樣的波形編輯器一一WaveformEditor,利用它可以編輯各種各樣的輸入波形。選擇器仿真結果 。必中片3 11- 4 %I亨,J1 * tVZIiL T-cf - T
3、 trii-ATT E Lll«J JKUI白A 里U悼b= II P1L4 Edit fit* 野業 A.Extp. VtaJlitiis Optiou iniw 珈"Q|注慌目 的用二 咐卷嚏面白色四圜向盤|_4 P"德”駕距IintFi10 口UEJQ.Dui»0u«如,QueQ»ji則_nn陽LrLn.n-nnr_njwmTiinnn8.1.1仿真輸入信息的產生1 .程序直接產生方法由設計者設計一段VHDL語言程序,將它附加到仿真模塊中,并由它來產生仿真的輸入信息。例如:對例7-41帶允許端的十二進制計數器進行仿真輸入端輸出端
4、clrenclkqdqcqbqa1XX000000X不變不變不變不變01T計數值加1真值表100010011010101100000001001000110100010101100111若要產生如下所示的測試波形:100200300400ns-1IIIIHIIH11IIIIIItest-clktest-clrtest-enCONSTANTclk_cycle:TIME:=20ns;PROCESSBEGINtest_clk<='1'產生周期為20ns 的時鐘信號WAITFORclk_cycle/2;test_clk<='0'WAITFORclk_cycl
5、e/2;ENDPROCESS;PROCESSBEGINtest_clr<='0'test_en<='0'WAITFORclk_cycle/4;test_clr<='1'產生復位和允許信號WAITFORclk_cycle;test_clr<='0'WAITFORclk_cycle*10;test_en<=,0'WAITFORclk_cycle*3test_en<=,1'WAIT;ENDPROCESS;直接產生輸入測試信號的完整vhdl程序:LIBRARYIEEE;USEIEEE.S
6、TD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYtest_count12enISENDtest_count12en;ARCHITECTUREsimlOFtest_count12enISCOMPONENTcount12enPORT(clk,clr,en:INSTD_LOGIC;qa,qb,qc,qd:OUTSTD_LOGIC);ENDCOMPONENT;CONSTANTclk_cycle:TIME:=20ns;SIGNALtest_clk,test_clr,test_en:STD_LOGICSIGNALt_qa,t_qb,t_qc,t
7、_qd:STD_LOGICBEGINU0:count12enPORTMAP(clk=>test_clk,clr=>test_clr,en=>test_en,qa=>t_qa,qb=>t_qb,qc=>t_qc,qd=>t_qd);PROCESSBEGINtest_clk<='1'WAITFORclk_cycle/2;test_clk<='0'WAITFORclk_cycle/2;ENDPROCESS;PROCESSBEGINtest_clr<='0'test_en<='0&
8、#39;WAITFORclk_cycle/4;test_clr<='1'WAITFORclk_cycle;test_clr<='0'WAITFORclk_cycle*10;test_en<=,0'WAITFORclk_cycle*3test_en<=,1'WAIT;ENDPROCESS;ENDsiml2讀TEXTIO文件產生法仿真輸入數據按定時要求按行存于一個文件中Testl.inclkclren0ns1005ns11110ns01115ns01120ns11125ns10130ns00135ns00140ns101.22
9、0ns101225ns100230ns000235ns000240ns100.280ns100285ns101290ns001295ns001300ns101.FILEintest:TEXTISIN"test.in”;SIGNALtest_clk,test_clr,test_en:STD_LOGIC;CONSTANTclk_cycle:TIME:=20ns;PROCESSVARIABLEli:LINE;VARIABLEclk.clr,en:STD_LOGIC;BEGINREADLINE(intestli);READ(li,clk);READ(li,clr);READ(li,en);W
10、AITFORclk_cycle/2;IF(ENDFILE(intest)THENWAIT;ENDIF;ENDPROCESS;仿真力仿真力(即仿真中的力延時,能使那些零延時事件得到適當的排隊次序,以便在仿真過程中得到一致的結果.VHDL語言描述程序來描述系統的硬件,它所描述的僅僅是系統的行為和構造,最終表現為門電路之間的連接關系.因此,在處理中對某些部分先處理,對另外一些部分后處理并不要求有非常嚴格的順序關系.仿真A是在對VHDL模塊仿真時所采用的重要仿真機制,它能使那些零延時事件得到適當的排隊次序,以便在仿真中得到一致的結果。眾所周知,用VHDL語言程序來描述系統的硬件,它所描述的僅僅是系統的
11、行為和構造,因此,在處理中對哪些部分先處理,哪些部分后處理,在描述時并沒有非常嚴格的順序關系。例如,某一組合電路,其輸入為a和b,其輸出為q。它由一個反相器、一個與非門”和一個與門”構成,其連接關系如圖7-3所示。用VHDL語言對該電路進行描述,其程序模塊如例7-3所示。Libraryieee;Useieee.std_logic_1164.all;Entitysampleisport(a,b:instd_logic;q:outstd_logic);Endsample;Architecturebehavofsampleissignalc,d:std_logic;Beginc<=nota;d
12、<=not(bandc);q<=candd;Endbehav;在該模塊的卞造體中,3個語句都是并發信號代入語句,因此只要其敏感量有變化,各語句都有可能并發地執行。現在假設起始值b="17a="1;'接著a從“1”變成“0”。第一條代入語句的敏感量為a,故該語句將執行一次,并使信號量c由“0”變“1”。第二、第三條語句都含有敏感量c,這樣這兩條語句都要各執行一次。在仿真中,第二、第三條語句既然是并發語句,按理來說,誰先執行,誰后執行其結果應該是一樣的,但是事實并非如此。下面分析兩種不同情況。若第三條語句先執行,由于原先d=“1;現在c="1;故q
13、將由“檢為“1:接著執行第二條語句,由于b="1';c="1:故d由“1變為“0:d的這一變化又啟動第三條語句,此時,d="0;c="1;故q=a0o輸出q出現一個由“0變”1;再由“1變“0”的正跳變。若第二條語句先執行,由于b="1,"c="1”故d="0"d和c的變化使第三條語句執行,此時d="0;c="1,”故q=a0o從電路功能來看,無疑后者是正確的,即在a值由“1”變“0”的變化發生后,q值應始終維持原值“0”不變。兩種不同情況的q輸出波形如圖7-4所示。假設彳t號
14、b為1端口a的信號有個變化(10)若第三條語句先執行,q=1d=1c=1再執行第二條語句b=1c=1d(10)d=0再次執行第三條語句=>q=0d=0q=0q由0至ij1再由1至U0q出現一個正跳變若第二條語句先執行,b=1c=1再執行第三條語句d=0c=1q始終維持0由上面分析可知,在仿真過程中,仿真次序不一致就會產生不同的仿真結果,這種情況當然是不允許的。為了取得與硬件動作一致的仿真結果,必須引入一個適當的仿真同步機制,使仿真結果和處理次序的先后無關。這種仿真同步機制就是A延時同步機制或稱仿真A機制。所謂A延時同步機制,是指被敏感量激活的進程立即被執行,其執行結果在一個無限小的A延時
15、時間內保持。該執行結果有可能激發其他的進程,又會產生新的其他結果,這些結果又在后續的一個A延時時間內保持。如此重復,直至所有進程(或等價進程,如代入語句)都停止為止。最后一個A延時輸出的結果才是真正該仿真時刻的結果,其他A延時時刻的結果往往被忽略。換一句話說,一個仿真時刻點是由若干個仿真A間隔構成的,該仿真時刻的仿真結果,取自最后一個仿真A時刻的結果。這樣就解決了由于仿真時計算順序不同所帶來的不一致性。7.1.2仿真模塊的編寫在早期的EDA軟件工具中,如AccoladeVHDLSimulator,它要求輸入信號是由程序產生的。這樣,當設計者用VHDL語言設計好一個電路功能模塊以后,為了進行仿真
16、,還需編寫一個仿真模塊。當然,仿真模塊應包含產生輸入信息的程序以及描述電路的程序。一個描述十六進制計數器的仿真模塊清單如例7-2所示。【例7-2】LIBRARYIEEEUSEIEEE.STD_LOGIC_1164.AL_LENTITYT_count16IS-PORT(clk,rst,load:INSTD_ULOGIC-data:INSTD_ULOGIC_VECTOR(3DOWNTO0)-count:OUTSTD_ULOGIC_VECTOR(3DOWNTO0)ENDT_count16;ARCHITECTUREstimulusOFT_count16ISCOMPONENTcount16PORT(cl
17、k,rst,load:INSTD_ULOGICdata:INSTD_ULOGIC_VECTOR(3DOWNTO0)count:OUTSTD_ULOGIC_VECTOR(3DOWNTO0)ENDCOMPONENTSIGNALclk_s,rst_s,load_s:STD_ULOGICSIGNALdtat_s:STD_ULOGIC_VECTOR(3DOWNTO;0)SIGNALcount_s:STD_ULOGIC_VECTOR(3DOWNTQ0)BEGINu0:count16PORTMAP(clk_s,rst_s,load_s,data_s,count_s);clock:PROCESSBEGINcl
18、k_s<='1'WAITFOR25n§clk_s<='0'WAITFOR25n§ENDPROCESSstimulusl:PROCESSBEGINRst_s<='1'WAITFOR40n§Rst_s<='0'Data_s<="0100"Load_s<='1'WAITFOR50n§load<='0'WAITFOR500nsload<='1'data<="0000&q
19、uot;WAITFOR50n§load<='0'WAITFOR11000nsWAIT;ENDPROCESSSENDstimulus;由于該模塊僅僅用于仿真,所以實體中的端口描述部分是可以省略的。該仿真模塊用元件映射語句,將十六進制計數器映射到該模塊的U0元件,U0元件的輸入信號由構造體的兩個進程產生,并連接到U0元件的各輸入端,從而實現仿真的信號輸入。該模塊的仿真輸入信號波形和輸出信號波形可在仿真器的視窗中觀察到。對于使用波形編輯器產生輸入信息的仿真器,一般不需要編寫仿真模塊,只要有已編譯好的功能模塊和相對應的輸入波形文件,仿真器就能自動地根據輸入信號的定時關系進行仿真,MAX+plusn的simulator就是這樣做的。7.1.4不同級別的仿真要求1 .行為級仿真行為級仿真的目的是驗證系統的數學模型和行為是否正確,因而在對系統描述時抽象程度較高。由于有這個前提,對行為級仿真模塊的書寫沒有太多限制,凡是VHDL語言中的全部語句和數據類型都可以在程序中使用。在書寫時應盡可能使用抽象程度高的描述語句,以使程序更簡潔明了。另外,除了某些系統規定的定時關系外,一般的電路延時及傳輸延時在行為級仿真中都不予以考慮。2 .RTL級仿真通過行為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年合同終止的相關問題探討
- 2025關于企業間借款的合同范本
- 2025臨時工勞動合同范本(供用人單位與臨時工訂立使用)
- 2025標準民間借款合同范本
- 2025金融服務租賃合同模板
- 2025合同終止的法定條件
- 《校園安全風險防范手冊》課件
- 環衛保潔員合同協議
- 疫情檢測外包合同協議
- 用電線路轉讓合同協議
- 2025年03月廣東深圳市光明區科技創新局公開招聘專干5人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 內蒙古通遼市科左中旗實驗小學2025屆數學三下期末質量檢測試題含解析
- 高溫急救知識培訓
- 學前教育學 課件 第1、2章 緒論;學前教育的目標、內容的方法
- 2025北京豐臺高三一模物理試題及答案
- 江南美術遺產融入美育的數智化路徑探索
- 診所醫療質量相關管理制度
- 西雅圖駕駛證考題及答案
- 綜合執法考試試題及答案
- 軟式內鏡消毒管理與質量標準
- (高清版)DB11∕T2324-2024腳手架鋼板立網防護應用技術規程
評論
0/150
提交評論