eda設(shè)計(jì)與應(yīng)用ppt第11章_第1頁(yè)
eda設(shè)計(jì)與應(yīng)用ppt第11章_第2頁(yè)
eda設(shè)計(jì)與應(yīng)用ppt第11章_第3頁(yè)
eda設(shè)計(jì)與應(yīng)用ppt第11章_第4頁(yè)
eda設(shè)計(jì)與應(yīng)用ppt第11章_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第11章章 Verilog仿真與驗(yàn)證仿真與驗(yàn)證11.1 系統(tǒng)任務(wù)與系統(tǒng)函數(shù)系統(tǒng)任務(wù)與系統(tǒng)函數(shù)11.2 用戶自定義元件(用戶自定義元件(UDP)11.3 延時(shí)模型的表示延時(shí)模型的表示11.4 測(cè)試平臺(tái)測(cè)試平臺(tái) 11.5 ModelSim仿真實(shí)例仿真實(shí)例 11.6 數(shù)字電路的仿真數(shù)字電路的仿真第第1111章章 VerilogVerilog仿真與驗(yàn)證仿真與驗(yàn)證11.1 系統(tǒng)任務(wù)與系統(tǒng)函數(shù)系統(tǒng)任務(wù)與系統(tǒng)函數(shù) 系統(tǒng)任務(wù)和系統(tǒng)函數(shù)一般以符號(hào)系統(tǒng)任務(wù)和系統(tǒng)函數(shù)一般以符號(hào)“$”開(kāi)頭。例如:開(kāi)頭。例如:$monitor,$readmemh等。等。 使用不同的使用不同的Verilog仿真工具(如:仿真工具(如:

2、VCS、Verilog-XL、ModelSim等)進(jìn)行仿真時(shí),這些系統(tǒng)任務(wù)和系統(tǒng)函數(shù)在使等)進(jìn)行仿真時(shí),這些系統(tǒng)任務(wù)和系統(tǒng)函數(shù)在使用方法上可能存在差異,應(yīng)根據(jù)使用手冊(cè)來(lái)使用。用方法上可能存在差異,應(yīng)根據(jù)使用手冊(cè)來(lái)使用。 一般在一般在intial或或always過(guò)程塊中,調(diào)用系統(tǒng)任務(wù)和系統(tǒng)過(guò)程塊中,調(diào)用系統(tǒng)任務(wù)和系統(tǒng)函數(shù)。函數(shù)。 用戶可以通過(guò)編程語(yǔ)言接口(用戶可以通過(guò)編程語(yǔ)言接口(PLI)將自己定義的系統(tǒng))將自己定義的系統(tǒng)任務(wù)和系統(tǒng)函數(shù)加到語(yǔ)言中,以進(jìn)行仿真和調(diào)試。任務(wù)和系統(tǒng)函數(shù)加到語(yǔ)言中,以進(jìn)行仿真和調(diào)試。$display和和$write是兩個(gè)系統(tǒng)任務(wù),兩者的功能相同,是兩個(gè)系統(tǒng)任務(wù),兩者的功

3、能相同,都用于顯示模擬結(jié)果,其區(qū)別是都用于顯示模擬結(jié)果,其區(qū)別是$display在輸出結(jié)束后在輸出結(jié)束后能自動(dòng)換行,而能自動(dòng)換行,而$write不能。不能。$display和和$write的使用格式為:的使用格式為:$display(“格式控制符格式控制符”,輸出變量名列表);,輸出變量名列表);$write(“格式控制符格式控制符”,輸出變量名列表);,輸出變量名列表);1$display與與$write格式控制符格式控制符說(shuō)明說(shuō)明%h或或%H以以16進(jìn)制形式顯示進(jìn)制形式顯示%d或或%D以以10進(jìn)制形式顯示進(jìn)制形式顯示%o或或%O以以8進(jìn)制形式顯示進(jìn)制形式顯示%b或或%B以以2進(jìn)制形式顯示進(jìn)

4、制形式顯示%c或或%C以以ASCII字符形式顯示字符形式顯示%v或或%V顯示顯示net型數(shù)據(jù)的驅(qū)動(dòng)強(qiáng)度型數(shù)據(jù)的驅(qū)動(dòng)強(qiáng)度%m或或%M顯示層次名顯示層次名%s或或%S以字符串形式輸出以字符串形式輸出%t或或%T以當(dāng)前的時(shí)間格式顯示以當(dāng)前的時(shí)間格式顯示轉(zhuǎn)義字符轉(zhuǎn)義字符說(shuō)明說(shuō)明 n換行換行 tTAB鍵鍵符號(hào)符號(hào)“符號(hào)符號(hào)“ ddd 八進(jìn)制數(shù)八進(jìn)制數(shù)ddd對(duì)應(yīng)的對(duì)應(yīng)的ASCII字符字符%符號(hào)符號(hào)%格式控制符格式控制符轉(zhuǎn)義字符轉(zhuǎn)義字符$monitor、$strobe與與$display、$write一樣也是屬一樣也是屬于輸出控制類的系統(tǒng)任務(wù),于輸出控制類的系統(tǒng)任務(wù),$monitor與與$strobe都提供

5、都提供了監(jiān)控和輸出參數(shù)列表中字符或變量的值的功能,其使了監(jiān)控和輸出參數(shù)列表中字符或變量的值的功能,其使用格式為:用格式為:$monitor(“格式控制符格式控制符”,輸出變量名列表,輸出變量名列表);$strobe(“格式控制符格式控制符”,輸出變量名列表,輸出變量名列表);這里的格式控制符、輸出變量名列表與這里的格式控制符、輸出變量名列表與$display和和$write中定義的完全相同。中定義的完全相同。2$monitor與與$strobe$time、$realtime是屬于顯示仿真時(shí)間標(biāo)度的系統(tǒng)函是屬于顯示仿真時(shí)間標(biāo)度的系統(tǒng)函數(shù)。這兩個(gè)函數(shù)被調(diào)用時(shí),都返回當(dāng)前時(shí)刻距離仿真開(kāi)數(shù)。這兩個(gè)函數(shù)

6、被調(diào)用時(shí),都返回當(dāng)前時(shí)刻距離仿真開(kāi)始時(shí)刻的時(shí)間量值,所不同的是,始時(shí)刻的時(shí)間量值,所不同的是,$time 函數(shù)以函數(shù)以64位整位整數(shù)值的形式返回模擬時(shí)間,數(shù)值的形式返回模擬時(shí)間,$realtime 函數(shù)則以實(shí)數(shù)型函數(shù)則以實(shí)數(shù)型數(shù)據(jù)返回模擬時(shí)間。數(shù)據(jù)返回模擬時(shí)間。 3$time與與$realtime系統(tǒng)任務(wù)系統(tǒng)任務(wù)$finish與與$stop用于對(duì)仿真過(guò)程進(jìn)行控制,分用于對(duì)仿真過(guò)程進(jìn)行控制,分別表示結(jié)束仿真和中斷仿真。別表示結(jié)束仿真和中斷仿真。$finish與與$stop 的使用格式如下:的使用格式如下:$stop;$stop(n);$finish;$finish(n);n是是$finish和和

7、$stop的參數(shù),的參數(shù),n 可以是可以是0、1、2等值,分等值,分別表示如下含義。別表示如下含義。0:不輸出任何信息;:不輸出任何信息;1:給出仿真時(shí)間和位置;:給出仿真時(shí)間和位置;2:給出仿真時(shí)間和位置,還有其他一些運(yùn)行統(tǒng)計(jì)數(shù)據(jù)。:給出仿真時(shí)間和位置,還有其他一些運(yùn)行統(tǒng)計(jì)數(shù)據(jù)。4$finish與與$stop$readmemh與與$readmemb是屬于文件讀寫(xiě)控制的系統(tǒng)是屬于文件讀寫(xiě)控制的系統(tǒng)任務(wù),其作用都是從外部文件中讀取數(shù)據(jù)并放入存儲(chǔ)器中。任務(wù),其作用都是從外部文件中讀取數(shù)據(jù)并放入存儲(chǔ)器中。兩者的區(qū)別在于讀取數(shù)據(jù)的格式不同,兩者的區(qū)別在于讀取數(shù)據(jù)的格式不同,$readmemh為讀為讀取

8、十六進(jìn)制數(shù)據(jù),而取十六進(jìn)制數(shù)據(jù),而$readmemb為讀取二進(jìn)制數(shù)據(jù)。為讀取二進(jìn)制數(shù)據(jù)。$readmemh與與$readmemb的使用格式為:的使用格式為:$readmemh(數(shù)據(jù)文件名數(shù)據(jù)文件名,存儲(chǔ)器名,起始地址,結(jié),存儲(chǔ)器名,起始地址,結(jié)束地址);束地址);$readmemb(數(shù)據(jù)文件名數(shù)據(jù)文件名,存儲(chǔ)器名,起始地址,結(jié),存儲(chǔ)器名,起始地址,結(jié)束地址);束地址);其中,起始地址和結(jié)束地址均可以缺省,如果缺省起始地其中,起始地址和結(jié)束地址均可以缺省,如果缺省起始地址,表示從存儲(chǔ)器的首地址開(kāi)始存儲(chǔ);如果缺省結(jié)束地址,址,表示從存儲(chǔ)器的首地址開(kāi)始存儲(chǔ);如果缺省結(jié)束地址,表示一直存儲(chǔ)到存儲(chǔ)器的結(jié)

9、束地址。表示一直存儲(chǔ)到存儲(chǔ)器的結(jié)束地址。5$readmemh與與$readmemb$random是產(chǎn)生隨機(jī)數(shù)的系統(tǒng)函數(shù),每次調(diào)用該函數(shù)將是產(chǎn)生隨機(jī)數(shù)的系統(tǒng)函數(shù),每次調(diào)用該函數(shù)將返回一個(gè)返回一個(gè)32位的隨機(jī)數(shù),該隨機(jī)數(shù)是一個(gè)帶符號(hào)的整數(shù)。位的隨機(jī)數(shù),該隨機(jī)數(shù)是一個(gè)帶符號(hào)的整數(shù)。6$random與與c 語(yǔ)言類似,語(yǔ)言類似,Verilog也提供了很多文件輸出類的系統(tǒng)也提供了很多文件輸出類的系統(tǒng)任務(wù),可將結(jié)果輸出到文件中。這類任務(wù)有:任務(wù),可將結(jié)果輸出到文件中。這類任務(wù)有:$fdisplay、$fwrite、$fmonitor、$fstrobe、$fopen和和$fclose等。等。$fopen用于打

10、開(kāi)某個(gè)文件并準(zhǔn)備寫(xiě)操作,用于打開(kāi)某個(gè)文件并準(zhǔn)備寫(xiě)操作,$fclose用于用于關(guān)閉文件,而關(guān)閉文件,而$fdisplay、$fwrite、$fmonitor等系統(tǒng)等系統(tǒng)任務(wù)則用于把文本寫(xiě)入文件。任務(wù)則用于把文本寫(xiě)入文件。7文件輸出文件輸出11.2 用戶自定義元件用戶自定義元件(UDP) 利用利用UDP(User Defined Primitives)用戶可以自己)用戶可以自己定義基本邏輯元件的功能,用戶可以象調(diào)用基本門(mén)元件一樣定義基本邏輯元件的功能,用戶可以象調(diào)用基本門(mén)元件一樣來(lái)調(diào)用這些自己定義的元件。來(lái)調(diào)用這些自己定義的元件。 UDP關(guān)鍵詞為關(guān)鍵詞為primitive和和endprimitiv

11、e。與一般的模。與一般的模塊相比,塊相比,UDP模塊具有下面一些特點(diǎn):模塊具有下面一些特點(diǎn): UDP的輸出端口只能有一個(gè),且必須位于端口列表的的輸出端口只能有一個(gè),且必須位于端口列表的第一項(xiàng)。只有輸出端口能被定義為第一項(xiàng)。只有輸出端口能被定義為reg類型。類型。 UDP的輸入端口可有多個(gè),一般時(shí)序電路的輸入端口可有多個(gè),一般時(shí)序電路UDP的輸入的輸入端口可多至端口可多至9個(gè),組合電路個(gè),組合電路UDP的輸入端口可多至的輸入端口可多至10個(gè)。個(gè)。 所有的端口變量必須是所有的端口變量必須是1位標(biāo)量。位標(biāo)量。 在在table表項(xiàng)中,只能出現(xiàn)表項(xiàng)中,只能出現(xiàn)0、1、x三種狀態(tài),不能出三種狀態(tài),不能出現(xiàn)

12、現(xiàn)z狀態(tài)。狀態(tài)。primitive 元件名(輸出端口,輸入端口元件名(輸出端口,輸入端口1,輸入端口,輸入端口2,)output 輸出端口名;輸出端口名;input 輸入端口輸入端口1,輸入端口,輸入端口2,;reg輸出端口名;輸出端口名;initial begin 輸出端口或內(nèi)部寄存器賦初值(輸出端口或內(nèi)部寄存器賦初值(0,1或或x);); endtable /輸入輸入1 輸入輸入2 :輸出:輸出 真值列表真值列表endtableendprimitive定義定義UDP的語(yǔ)法的語(yǔ)法1、組合電路、組合電路UDP元件元件 primitive carry_udp(cout,cin,a,b);inpu

13、t cin,a,b; output cout;table/cin a b : cout /真值表真值表0 0 0 : 0;0 1 0 : 0;0 0 1 : 0;0 1 1 : 1;1 0 0 : 0;1 0 1 : 1;1 1 0 : 1;1 1 1 : 1;endtableendprimitivep 【例【例11.3】 1位全加器進(jìn)位輸出位全加器進(jìn)位輸出UDP元件元件1、組合電路、組合電路UDP元件元件 primitive carry_udpx(cout,cin,a,b);input cin,a,b;output cout;table/cin a b : cout /真值表真值表0 0 0

14、 : 0;0 1 0 : 0;0 0 1 : 0;0 1 1 : 1;1 0 0 : 0;1 0 1 : 1;1 1 0 : 1;1 1 1 : 1;0 0 x : 0; 0 x 0 : 0;x 0 0 : 0;1 1 x : 1; 1 x 1 : 1;x 1 1 : 1;endtableendprimitivep 【例【例11.4】包含】包含x態(tài)輸入的態(tài)輸入的1位全加器進(jìn)位輸位全加器進(jìn)位輸出出UDP元件元件primitive carry_udpx(cout,cin,a,b);input cin,a,b;output cout;table/cin a b : cout /真值表真值表? 0 0

15、 : 0;/只要有兩個(gè)輸入為只要有兩個(gè)輸入為0,則進(jìn)位輸出肯定為,則進(jìn)位輸出肯定為00 ? 0 : 0;0 0 ? : 0;? 1 1 : 1;/只要有兩個(gè)輸入為只要有兩個(gè)輸入為1,則進(jìn)位輸出肯定為,則進(jìn)位輸出肯定為11 ? 1 : 1;1 1 ? : 1;endtableendprimitive【例【例11.5】用簡(jiǎn)縮符】用簡(jiǎn)縮符“?”表述的表述的1位全加器進(jìn)位輸出位全加器進(jìn)位輸出UDP元件元件1、組合電路、組合電路UDP元件元件 2、時(shí)序邏輯、時(shí)序邏輯UDP元件元件 primitive latch(Q,clk,reset,D);input clk,reset,D;output Q;reg

16、Q;initial Q=1b1; /初始化初始化table/clk reset D:state:Q? 1 ? : ? : 0; 0 0 0 : ? : 0; 0 0 1 : ? : 1;1 0 ? : ? : -; endtableendprimitivep【例【例11.7】 電平敏感的電平敏感的1位數(shù)據(jù)鎖存器位數(shù)據(jù)鎖存器UDP元件元件primitive DFF(Q,D,clk);input D,clk; output Q;reg Q;table/clk D : state : Q(01) 0 : ? : 0; /上升沿到來(lái),輸出上升沿到來(lái),輸出Q=D(01) 1 : ? : 1;(0 x)

17、1 : 1 : 1;(0 x) 0 : 0 : 0;(?0) ? : ? : -; /沒(méi)有上升沿到來(lái),輸出沒(méi)有上升沿到來(lái),輸出Q保持原值保持原值? (?) : ? : -; /時(shí)鐘不變,輸出也不變時(shí)鐘不變,輸出也不變endtableendprimitive【例【例11.8】 上升沿觸發(fā)的上升沿觸發(fā)的D觸發(fā)器觸發(fā)器UDP元件元件2、時(shí)序邏輯、時(shí)序邏輯UDP元件元件 縮記符縮記符含義含義說(shuō)明說(shuō)明x不定態(tài)不定態(tài)?0、1或或x只能表示輸入只能表示輸入b0或或1只能表示輸入只能表示輸入-保持不變保持不變只用于時(shí)序元件的輸出只用于時(shí)序元件的輸出(vy)代表代表(01), (10), (0 x), (1x)

18、, (x1), (x0), (?1)等等從邏輯從邏輯v到邏輯到邏輯y的轉(zhuǎn)變的轉(zhuǎn)變*同同(?)表示輸入端有任何變化表示輸入端有任何變化R或或r同同(01)表示上升沿表示上升沿F或或f同同(10)表示下降沿表示下降沿P或或p(01), (0 x)或或(x1)包含包含x態(tài)的上升沿跳變態(tài)的上升沿跳變N或或n(10),(1x)或或(x0)包含包含x態(tài)的下降沿跳變態(tài)的下降沿跳變UDP中的縮記符中的縮記符11.3 延時(shí)模型的表示延時(shí)模型的表示 延時(shí)包括門(mén)延時(shí)、延時(shí)包括門(mén)延時(shí)、assign賦值延時(shí)和連線延時(shí)等。賦值延時(shí)和連線延時(shí)等。u 門(mén)延時(shí)是從門(mén)輸入端發(fā)生變化到輸出端發(fā)生變化的延門(mén)延時(shí)是從門(mén)輸入端發(fā)生變化到

19、輸出端發(fā)生變化的延遲時(shí)間;遲時(shí)間;u assign賦值延時(shí)指等號(hào)右端某個(gè)值發(fā)生變化到等號(hào)左賦值延時(shí)指等號(hào)右端某個(gè)值發(fā)生變化到等號(hào)左端發(fā)生相應(yīng)變化的延遲時(shí)間;端發(fā)生相應(yīng)變化的延遲時(shí)間;u 連線延時(shí)則體現(xiàn)了信號(hào)在連線上的傳輸延時(shí)。連線延時(shí)則體現(xiàn)了信號(hào)在連線上的傳輸延時(shí)。u 如果沒(méi)有定義時(shí)延值,缺省時(shí)延為如果沒(méi)有定義時(shí)延值,缺省時(shí)延為0。1、時(shí)間標(biāo)尺定義、時(shí)間標(biāo)尺定義timescale timescale語(yǔ)句用于定義模塊的時(shí)間單位和時(shí)間精度,語(yǔ)句用于定義模塊的時(shí)間單位和時(shí)間精度,其使用格式如下:其使用格式如下:timescale /timescale /其中用來(lái)表示時(shí)間度量的符號(hào)有:其中用來(lái)表示時(shí)間

20、度量的符號(hào)有:s、ms、us、ns、ps和和fs。例如:例如:timescale 1ns/100ps上面的語(yǔ)句表示時(shí)延單位為上面的語(yǔ)句表示時(shí)延單位為1ns,時(shí)延精度為,時(shí)延精度為100ps(即精確到(即精確到0.1ns)。)。timescale編譯器指令在模塊說(shuō)編譯器指令在模塊說(shuō)明外部出現(xiàn),并且影響后面所有的時(shí)延值。明外部出現(xiàn),并且影響后面所有的時(shí)延值。2、延時(shí)的表示與延時(shí)說(shuō)明塊、延時(shí)的表示與延時(shí)說(shuō)明塊 1延時(shí)的表示方法延時(shí)的表示方法延時(shí)的表示方法有下面幾種:延時(shí)的表示方法有下面幾種:# delaytime# (d1,d2)# (d1,d2,d3)# delaytime表示延遲時(shí)間為表示延遲時(shí)

21、間為delaytime,d1表示上升表示上升延遲,延遲,d2表示下降延遲,表示下降延遲,d3則表示轉(zhuǎn)換到高阻態(tài)則表示轉(zhuǎn)換到高阻態(tài)z的延遲,的延遲,這些延遲的具體時(shí)間由時(shí)間定義語(yǔ)句這些延遲的具體時(shí)間由時(shí)間定義語(yǔ)句timescale確定。確定。時(shí)延定義了右邊表達(dá)式操作數(shù)變化與賦值給左邊表達(dá)式之時(shí)延定義了右邊表達(dá)式操作數(shù)變化與賦值給左邊表達(dá)式之間的持續(xù)時(shí)間。如果沒(méi)有定義時(shí)延值,缺省時(shí)延為間的持續(xù)時(shí)間。如果沒(méi)有定義時(shí)延值,缺省時(shí)延為0。 Verilog可對(duì)模塊中某一指定的路徑進(jìn)行延遲定義,這一可對(duì)模塊中某一指定的路徑進(jìn)行延遲定義,這一路徑連接模塊的輸入端口(或路徑連接模塊的輸入端口(或inout端口)

22、與輸出端口端口)與輸出端口(或(或inout端口),利用延遲定義塊在一個(gè)獨(dú)立的塊結(jié)構(gòu)端口),利用延遲定義塊在一個(gè)獨(dú)立的塊結(jié)構(gòu)中定義模塊的延時(shí)。在延遲定義塊中要描述模塊中的不中定義模塊的延時(shí)。在延遲定義塊中要描述模塊中的不同路徑并給這些路徑賦值。同路徑并給這些路徑賦值。延遲定義塊的內(nèi)容應(yīng)放在關(guān)鍵字延遲定義塊的內(nèi)容應(yīng)放在關(guān)鍵字specify與與endspecify之間,且必須放在一個(gè)模塊中,還可以使用之間,且必須放在一個(gè)模塊中,還可以使用specparam關(guān)鍵字定義參數(shù)關(guān)鍵字定義參數(shù) 3延時(shí)說(shuō)明塊(延時(shí)說(shuō)明塊(specify塊)塊)11.4 測(cè)試平臺(tái)測(cè)試平臺(tái) 測(cè)試平臺(tái)(測(cè)試平臺(tái)(Test Banc

23、h) 測(cè)試模塊只有模塊名字,沒(méi)有端口列表;測(cè)試模塊只有模塊名字,沒(méi)有端口列表;輸入信號(hào)(激勵(lì)信號(hào))必須定義為輸入信號(hào)(激勵(lì)信號(hào))必須定義為reg型,以保持信號(hào)值;型,以保持信號(hào)值;輸出信號(hào)(顯示信號(hào))必須定義為輸出信號(hào)(顯示信號(hào))必須定義為wire型;型;在測(cè)試模塊中調(diào)用被測(cè)試模塊,在調(diào)用時(shí),應(yīng)注意端口在測(cè)試模塊中調(diào)用被測(cè)試模塊,在調(diào)用時(shí),應(yīng)注意端口排列的順序與模塊定義時(shí)一致;排列的順序與模塊定義時(shí)一致;一般用一般用initial、always過(guò)程塊來(lái)定義激勵(lì)信號(hào)波形;使過(guò)程塊來(lái)定義激勵(lì)信號(hào)波形;使用系統(tǒng)任務(wù)和系統(tǒng)函數(shù)來(lái)定義輸出顯示格式;用系統(tǒng)任務(wù)和系統(tǒng)函數(shù)來(lái)定義輸出顯示格式;在激勵(lì)信號(hào)的定義

24、中,可使用如下一些控制語(yǔ)句:在激勵(lì)信號(hào)的定義中,可使用如下一些控制語(yǔ)句:if-else,for,forever,case,while,begin-end,fork-join等,這些控制語(yǔ)句一般只用在等,這些控制語(yǔ)句一般只用在always、initial、function、task等過(guò)程塊中。等過(guò)程塊中。 【例11.13】 激勵(lì)波形的描述timescale 1ns/1nsmodule test1;reg a,b,c;initialbegin a=0;b=1;c=0; #100 c=1; #100 a=1;b=0; #100 a=0; #100 c=0;#100 $stop;endinitial

25、$monitor($time,a=%d b=%d c=%d,a,b,c); /顯示endmodule11.4 測(cè)試平臺(tái)測(cè)試平臺(tái) 【例11.14】 always語(yǔ)句用于時(shí)鐘波形的描述timescale 1ns/1nsreg clk;parameter CYCLE=100;/一個(gè)時(shí)鐘周期100nsalways #(CYCLE/2) clk=clk; /always語(yǔ)句產(chǎn)生時(shí)鐘波形intial clk=1;11.4 測(cè)試平臺(tái)測(cè)試平臺(tái) 11.5 ModelSim仿真實(shí)例仿真實(shí)例 加法器仿真的示意圖加法器仿真的示意圖 o ModelSim工作界面 新建工程項(xiàng)目新建工程項(xiàng)目 填加仿真文件填加仿真文件 o

26、新建仿真文件 o 輸入仿真文件代碼并編譯 o 編譯文件到編譯文件到work工作庫(kù)并加載工作庫(kù)并加載 o 編譯文件到編譯文件到work工作庫(kù)并加載工作庫(kù)并加載 輸出波形顯示和命令行窗口結(jié)果顯示 timescale 10ns/1nsmodule mult8_tp; /測(cè)試模塊的名字測(cè)試模塊的名字reg7:0 a,b; /測(cè)試輸入信號(hào)定義為測(cè)試輸入信號(hào)定義為reg型型wire15:0 out; /測(cè)試輸出信號(hào)定義為測(cè)試輸出信號(hào)定義為wire型型integer i,j;mult8 m1(out,a,b);/調(diào)用測(cè)試對(duì)象調(diào)用測(cè)試對(duì)象initial /激勵(lì)波形設(shè)定激勵(lì)波形設(shè)定begin a=0;b=0;f

27、or(i=1;i255;i=i+1) #10 a=i; endinitial beginfor(j=1;j255;j=j+1) #10 b=j;end11.6 數(shù)字電路的仿真數(shù)字電路的仿真 8位乘法器的仿真位乘法器的仿真initial begin/定義結(jié)果顯示格式定義結(jié)果顯示格式$monitor($time,%d*%d=%d,a,b,out);#2560 $finish;endendmodulemodule mult8(out,a,b);/8位乘法器源代碼位乘法器源代碼parameter size=8;inputsize:1 a,b; /兩個(gè)操作數(shù)兩個(gè)操作數(shù)output2*size:1 out;/結(jié)果結(jié)果assign out=a*b; /乘法運(yùn)算符乘法運(yùn)算符endmodule8位乘法器的仿真位乘法器的仿真8位乘法器的功能仿真波形圖(位乘法器的功能仿真波形圖(ModelSim) 仿真結(jié)果仿真結(jié)果11.4.3 時(shí)序電路的仿真時(shí)序電路的仿真 timescale 10ns/1nsmodule count8_tp;reg cl

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論