




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第10章Verilog行為仿真第一頁(yè),共29頁(yè)。測(cè)試程序TestBench第二頁(yè),共29頁(yè)。一個(gè)完整的簡(jiǎn)單例子testfixture被測(cè)試器件DUT是一個(gè)二選一多路器。測(cè)試程序(testfixture)提供測(cè)試激勵(lì)及驗(yàn)證機(jī)制。Testfixture使用行為級(jí)描述,DUT采用門級(jí)描述。下面將給出Testfixture的描述、DUT的描述及如何進(jìn)行混合仿真。第三頁(yè),共29頁(yè)。DUT被測(cè)器件(deviceundertest)moduleMUX2_1(outputwireout,inputwirea,b,sel);
//wiresel,a1,b1;//Thenetlist
not(sel_,sel);
and(a1,a,sel_);
and(b1,b,sel);
or(out,a1,b1);endmodule已定義的Verilog基本單元的實(shí)例a,b,sel是輸入端口,out是輸出端口。所有信號(hào)通過(guò)這些端口從模塊輸入/輸出。另一個(gè)模塊可以通過(guò)模塊名及端口說(shuō)明使用多路器。實(shí)例化多路器時(shí)不需要知道其實(shí)現(xiàn)細(xì)節(jié)。這正是自上而下設(shè)計(jì)方法的一個(gè)重要特點(diǎn)。模塊的實(shí)現(xiàn)可以是行為級(jí)也可以是門級(jí),但并不影響高層次模塊對(duì)它的使用。第四頁(yè),共29頁(yè)。TestFixturetemplatemoduletestfixture;//Datatypedeclaration//Instantiatemodules//Applystimulus//Displayresultsendmodule為什么沒(méi)有端口?由于testfixture是最頂層模塊,不會(huì)被其它模塊實(shí)例化。因此不需要有端口。第五頁(yè),共29頁(yè)。TestFixture—如何說(shuō)明實(shí)例moduletestfixture;//Datatypedeclaration//Instantiatemodules
MUX2_1
mux(o,a,b,s);//MUX2_1mux(.out(o),.a(a),.b(b),.sel(s));//Applystimulus//DisplayresultsendmodulemoduleMUX2_1(out,a,b,sel);//Portdeclarationsoutputout;inputa,b,sel;wireout,a,b,sel;wiresel_,a1,b1;//Thenetlist
not(sel_,sel);
and(a1,a,sel_);
and(b1,b,sel);
or(out,a1,b1);endmoduleMUX的實(shí)例化語(yǔ)句包括:模塊名稱:與引用模塊相同實(shí)例名稱:任意,但要符合標(biāo)記命名規(guī)則端口列表:與引用模塊的次序相同第六頁(yè),共29頁(yè)。Testfixture激勵(lì)描述moduletestfixture;//Datatypedeclaration
rega,b,s;
wireo;
//MUXinstanceMUX2_1mux(o,a,b,s);//Applystimulusinitialbegin
a=0;b=1;s=0;#5b=0;#5b=1;s=1;#5a=1;#5$finish;end//DisplayresultsendmoduleTimeValues abs0 01050001001115111例子中,a,b,s說(shuō)明為reg類數(shù)據(jù)。reg類數(shù)據(jù)是寄存器類數(shù)據(jù)信號(hào),在重新賦值前一直保持當(dāng)前數(shù)據(jù)。#5用于指示等待5個(gè)時(shí)間單位。$finish是結(jié)束仿真的系統(tǒng)任務(wù)。第七頁(yè),共29頁(yè)。完整的TestFixturemoduletestfixture;
//數(shù)據(jù)類型說(shuō)明rega,b,s;wireo;
//MUX實(shí)例化MUX2_1mux(o,a,b,s);
//施加激勵(lì)initialbegina=0;b=1;s=0;#5b=0;#5b=1;s=1;#5a=1;#5$finish;end//顯示結(jié)果initial$monitor($time,,"o=%ba=%bb=%bs=%b",o,a,b,s);endmodule0o=0a=0b=1s=05o=0a=0b=0s=010o=1a=0b=1s=115o=1a=1b=1s=1結(jié)果輸出第八頁(yè),共29頁(yè)。系統(tǒng)任務(wù)與系統(tǒng)函數(shù)
◆系統(tǒng)任務(wù)和系統(tǒng)函數(shù)一般以符號(hào)“$”開(kāi)頭。例如:$monitor,$finish等?!羰褂貌煌腣erilog仿真工具(如:VCS、Verilog-XL、ModelSim等)進(jìn)行仿真時(shí),這些系統(tǒng)任務(wù)和系統(tǒng)函數(shù)在使用方法上可能存在差異,應(yīng)根據(jù)使用手冊(cè)來(lái)使用。◆一般在intial或always過(guò)程塊中,調(diào)用系統(tǒng)任務(wù)和系統(tǒng)函數(shù)?!粲脩艨梢酝ㄟ^(guò)編程語(yǔ)言接口(PLI)將自己定義的系統(tǒng)任務(wù)和系統(tǒng)函數(shù)加到語(yǔ)言中,以進(jìn)行仿真和調(diào)試。第九頁(yè),共29頁(yè)。$display和$write是兩個(gè)系統(tǒng)任務(wù),兩者的功能相同,都用于顯示模擬結(jié)果,其區(qū)別是$display在輸出結(jié)束后能自動(dòng)換行,而$write不能。$display和$write的使用格式為:$display(“格式控制符”,輸出變量名列表);$write(“格式控制符”,輸出變量名列表);1.$display與$write第十頁(yè),共29頁(yè)。格式控制符轉(zhuǎn)義字符第十一頁(yè),共29頁(yè)。$monitor、$strobe與$display、$write一樣也是屬于輸出控制類的系統(tǒng)任務(wù),$monitor與$strobe都提供了監(jiān)控和輸出參數(shù)列表中字符或變量的值的功能,其使用格式為:$monitor(“格式控制符”,輸出變量名列表);$strobe(“格式控制符”,輸出變量名列表);這里的格式控制符、輸出變量名列表與$display和$write中定義的完全相同。2.$monitor與$strobe第十二頁(yè),共29頁(yè)。$time、$realtime是屬于顯示仿真時(shí)間標(biāo)度的系統(tǒng)函數(shù)。這兩個(gè)函數(shù)被調(diào)用時(shí),都返回當(dāng)前時(shí)刻距離仿真開(kāi)始時(shí)刻的時(shí)間量值。$time函數(shù)以64位整數(shù)值的形式返回模擬時(shí)間,$realtime函數(shù)則以實(shí)數(shù)型數(shù)據(jù)返回模擬時(shí)間。3.$time與$realtime第十三頁(yè),共29頁(yè)。系統(tǒng)任務(wù)$finish與$stop用于對(duì)仿真過(guò)程進(jìn)行控制,分別表示結(jié)束仿真和中斷仿真。$finish與$stop的使用格式如下:$stop;$stop(n);$finish;$finish(n);n是$finish和$stop的參數(shù),n可以是0、1、2等值,分別表示如下含義。0:不輸出任何信息;1:給出仿真時(shí)間和位置;2:給出仿真時(shí)間和位置,還有其他一些運(yùn)行統(tǒng)計(jì)數(shù)據(jù)。4.$finish與$stop第十四頁(yè),共29頁(yè)。$random:產(chǎn)生隨機(jī)數(shù)的系統(tǒng)函數(shù),每次調(diào)用該函數(shù)將返回一個(gè)32位的隨機(jī)數(shù),該隨機(jī)數(shù)是一個(gè)帶符號(hào)的整數(shù)。一般用法為:$random%b其中b>0,它給出了一個(gè)范圍在0~b-1之間的隨機(jī)數(shù)。$random%15,產(chǎn)生一個(gè)0~14之間的隨機(jī)數(shù)。6.$random和文件操作文件操作:與c語(yǔ)言類似,Verilog也提供了很多文件輸出類的系統(tǒng)任務(wù),可將結(jié)果輸出到文件中。這類任務(wù)有:$fopen用于打開(kāi)某個(gè)文件并準(zhǔn)備寫(xiě)操作,$fclose用于關(guān)閉文件,$fdisplay、$fwrite、$fmonitor等系統(tǒng)任務(wù)則用于把文本寫(xiě)入文件。第十五頁(yè),共29頁(yè)。用戶定義的原語(yǔ)第十六頁(yè),共29頁(yè)。用戶自定義元件
利用UDP(UserDefinedPrimitives)用戶可以自己定義基本邏輯元件的功能,用戶可以象調(diào)用基本門元件一樣來(lái)調(diào)用這些自己定義的元件。UDP關(guān)鍵詞為primitive和endprimitive。與一般的模塊相比,UDP模塊具有下面一些特點(diǎn):◆UDP的輸出端口只能有一個(gè),且必須位于端口列表的第一項(xiàng)。只有輸出端口能被定義為reg類型?!鬠DP的輸入端口可有多個(gè),一般時(shí)序電路UDP的輸入端口可多至9個(gè),組合電路UDP的輸入端口可多至10個(gè)?!羲械亩丝谧兞勘仨毷?位標(biāo)量?!粼趖able表項(xiàng)中,只能出現(xiàn)0、1、x三種狀態(tài),不能出現(xiàn)z狀態(tài)。第十七頁(yè),共29頁(yè)。primitive元件名(輸出端口,輸入端口1,輸入端口2,…)output輸出端口名;input輸入端口1,輸入端口2,…;reg輸出端口名;initialbegin輸出端口或內(nèi)部寄存器賦初值(0,1或x);endtable//輸入1輸入2……:輸出真值列表endtableendprimitive定義UDP的語(yǔ)法第十八頁(yè),共29頁(yè)。組合邏輯示例:2-1多路器舉例說(shuō)明primitivemultiplexer(o,a,b,s);outputo;inputs,a,b;table//abs:o0?1:0;1?1:1;?00:0;?10:1;00x:0;11x:1;endtableendprimitive原語(yǔ)名輸出端口必須為第一個(gè)端口第十九頁(yè),共29頁(yè)。注:在模塊外定義UDP。如果在表中沒(méi)有規(guī)定輸入組合,將輸出不確定邏輯值(x)。表的列中元素的順序應(yīng)與端口列表中的一致。表中的?的意義是:重復(fù)的輸入0,1或任意不確定邏輯值(x)。表中開(kāi)始兩行表示:當(dāng)s等于1時(shí),不管b邏輯值如何變化,輸出o將與輸入a保持一致。表中的下兩行表示:當(dāng)s等于0時(shí),不管a邏輯值如何變化,輸出o將與輸入b保持一致。表中的最后兩行使此器件的描述更加的全面、準(zhǔn)確。它們表示:當(dāng)輸入a和b的邏輯值相同時(shí),如果sel邏輯值不確定,則輸出o的值將與輸入a和b的值相同。這種行為不能使用Verilog語(yǔ)言提供的基本原語(yǔ)元件進(jìn)行建模。UDP將x作為實(shí)際的未知值,而不是Verilog語(yǔ)言邏輯值來(lái)進(jìn)行處理,因此使其比Verilog語(yǔ)言提供的基本原語(yǔ)元件更加準(zhǔn)確。舉例說(shuō)明第二十頁(yè),共29頁(yè)??梢灾皇褂脙蓚€(gè)UDP來(lái)描述全加器的邏輯功能。//全加器進(jìn)位實(shí)現(xiàn)部分primitiveU_ADDR2_C(CO,A,B,CI);outputCO;inputA,B,CI,table//ABCI:CO11?:1;1?1:1;?11:1;00?:0;0?0:0;?00:0;endtalbeendprimitive組合邏輯示例:全加器向上一級(jí)進(jìn)位下一級(jí)來(lái)的進(jìn)位第二十一頁(yè),共29頁(yè)。//全加器求和實(shí)現(xiàn)部分primitiveU_ADDR2_S(S,A,B,CI);outputS;inputA,B,CI;table//ABCI:S000:0;001:1;010:1;011:0;100:1;101:0;110:0;111:1;endtableendprimitive組合邏輯示例:全加器第二十二頁(yè),共29頁(yè)。若使用UDP設(shè)計(jì)全加器,僅需要兩個(gè)UDP;而使用Verilog原語(yǔ)元件,則需要5個(gè)Verilog語(yǔ)言提供的基本原語(yǔ)元件。當(dāng)設(shè)計(jì)需要使用大量全加器時(shí),采用UDP來(lái)表示全加器,將大大減少內(nèi)存的需要。事件的數(shù)目將大大降低。?表示邏輯值可以為0,1或x。組合邏輯示例:全加器第二十三頁(yè),共29頁(yè)。primitivelatch(q,clock,data);outputq;regq;inputclock,data;initialq=1’b1;table//clockdatacurrentnext//statestate01:?1;00:?0;1?::-;endtableendprimitive電平敏感的時(shí)序邏輯示例:鎖存器注意此寄存器的用法,此寄存器用來(lái)存儲(chǔ)。輸出初始化為1‘b1.?表示無(wú)須考慮輸入和當(dāng)前狀態(tài)的值第二十四頁(yè),共29頁(yè)。注:鎖存器的動(dòng)作行為如下:當(dāng)時(shí)鐘信號(hào)為0時(shí),輸入數(shù)據(jù)的值直接傳給輸出。當(dāng)時(shí)鐘信號(hào)為1時(shí),輸出保持當(dāng)前狀態(tài)不變。nextstate欄中的“-”表示輸出保持不變。輸出必須定義為寄存器類型,用來(lái)保存前一個(gè)狀態(tài)。init
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能農(nóng)業(yè)作物損壞賠償與病蟲(chóng)害防治服務(wù)協(xié)議
- 二零二五醫(yī)療事故賠償協(xié)議書(shū)撰寫(xiě)要點(diǎn)解析
- 2025年度智能化住宅房屋租賃定金合同模板范文
- 二零二五年度知識(shí)產(chǎn)權(quán)戰(zhàn)略布局專利代理合同
- 二零二五年度主播才藝展示及經(jīng)紀(jì)管理協(xié)議
- 二零二五年度能源合同可撤銷條款與節(jié)能減排合同
- 二零二五年度全新辦公區(qū)轉(zhuǎn)租協(xié)議合同:商務(wù)辦公空間租賃權(quán)轉(zhuǎn)讓
- 二零二五年度合同管理制及流程圖編制與執(zhí)行標(biāo)準(zhǔn)合同
- 2025年度智能醫(yī)療設(shè)備研發(fā)團(tuán)隊(duì)技術(shù)人員勞動(dòng)合同
- 二零二五年度新材料專利共享許可協(xié)議
- 《動(dòng)物細(xì)胞工程制藥》課件
- 本校教材選用組織機(jī)構(gòu)及職責(zé)-選用程序及要求
- 材料供應(yīng)履約信用證明:免修版模板范本
- 2023南方國(guó)家電網(wǎng)招聘筆試參考題庫(kù)(共500題)答案詳解版
- 門式起重機(jī)、架橋機(jī)作業(yè)前安全隱患排查表
- 不合格品處置記錄表(標(biāo)準(zhǔn)版)
- 德語(yǔ)現(xiàn)代主義文學(xué)-浙江大學(xué)中國(guó)大學(xué)mooc課后章節(jié)答案期末考試題庫(kù)2023年
- 機(jī)床數(shù)控技術(shù)PPT完整全套教學(xué)課件
- 店面租賃合同店面租賃合同店面租賃合同書(shū)
- lm3s8962開(kāi)發(fā)板用戶手冊(cè)
- 《小學(xué)教師職業(yè)道德》課程標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論