




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1第7章調(diào)試用系統(tǒng)任務(wù)和常用編譯預(yù)處理語句27.1系統(tǒng)任務(wù)$monitor系統(tǒng)任務(wù)$monitor格式:$monitor(p1,p2,.....,pn);$monitor;$monitoron;$monitoroff;當(dāng)啟動一個帶有一個或多個參數(shù)的$monitor任務(wù)時,仿真器則建立一個處理機(jī)制,使得每當(dāng)參數(shù)列表中變量或表達(dá)式的值發(fā)生變化時,整個參數(shù)列表中變量或表達(dá)式的值都將輸出顯示。如果同一時刻,兩個或多個參數(shù)的值發(fā)生變化,則在該時刻只輸出顯示一次。37.2.1時間尺度`timescale`timescale命令用來說明跟在該命令后的模塊的時間單位和時間精度。格式如下:`timescale<時間單位>/<時間精度>在這條命令中,時間單位參量是用來定義模塊中仿真時間和延遲時間的基準(zhǔn)單位的。時間精度參量是用來聲明該模塊的仿真時間的精確程度的,該參量被用來對延遲時間值進(jìn)行取整操作(仿真前),因此該參量又可以被稱為取整精度。另外時間精度至少要和時間單位一樣精確,時間精度值不能大于時間單位值。在`timescale命令中,用于說明時間單位和時間精度參量值的數(shù)字必須是整數(shù),其有效數(shù)字為1、10、100,單位為秒(s)、毫秒(ms)、微秒(us)、納秒(ns)、皮秒(ps)、飛秒(fs)。7.2時間度量系統(tǒng)函數(shù)$time和$realtime4例7.10`timescale1ns/1ps在這個命令之后,模塊中所有的時間值都表示是1ns的整數(shù)倍。這是因?yàn)樵趖imescale命令中,定義了時間單位是1ns。模塊中的延遲時間可表達(dá)為帶三位小數(shù)的實(shí)型數(shù),因?yàn)閌timescale命令定義時間精度為1ps.例7.11`timescale10us/100ns在這個例子中,`timescale命令定義后,模塊中時間值均為10us的整數(shù)倍。因?yàn)閌timesacle命令定義的時間單位是10us。延遲時間的最小分辨度為十分之一微秒(100ns),即延遲時間可表達(dá)為帶2位小數(shù)的實(shí)型數(shù)。5`timescale10ns/1nsmoduleex7_12;regset;parameterd=1.55;initialbegin#dset=0;#dset=1;endendmodule經(jīng)過取整操作,存在參數(shù)d中的延遲時間實(shí)際上是16ns。仿真時刻16ns時,set被賦值0;仿真時刻32ns時被賦值1。6系統(tǒng)函數(shù)$time$time可以返回一個64比特的整數(shù)來表示的當(dāng)前仿真時刻值。該時刻是以模塊的仿真時間尺度為基準(zhǔn)的$realtime系統(tǒng)函數(shù)$realtime和$time的作用是一樣的,只是$realtime返回的時間數(shù)字是一個實(shí)型數(shù),該數(shù)字也是以時間尺度為基準(zhǔn)的。7`timescale10ns/1nsmoduleex7_1;regset;parameterp=1.6;initialbegin$monitor($time,,"set=",set);#pset=0;#pset=1;endendmodule運(yùn)行結(jié)果0set=x2set=03set=1仿真圖上可以看到set變?yōu)?和1的時刻分別是16ns和32ns8`timescale10ns/1nsmoduleex7_2;regset;parameterp=1.6;initialbegin$monitor($realtime,,"set=",set);#pset=0;#pset=1;endendmodule0set=x1.6set=03.2set=197.3系統(tǒng)任務(wù)$finish格式:$finish;$finish(n);系統(tǒng)任務(wù)$finish的作用是退出仿真器,返回主操作系統(tǒng),也就是結(jié)束仿真過程。任務(wù)$finish可以帶參數(shù),根據(jù)參數(shù)的值輸出不同的特征信息。如果不帶參數(shù),默認(rèn)$finish的參數(shù)值為1。0不輸出任何信息1輸出當(dāng)前仿真時刻和位置2輸出當(dāng)前仿真時刻,位置和在仿真過程中所用memory及CPU時間的統(tǒng)計107.4系統(tǒng)任務(wù)$stop格式:$stop;$stop(n);$stop任務(wù)的作用是把EDA工具(例如仿真器)置成暫停模式,在仿真環(huán)境下給出一個交互式的命令提示符,將控制權(quán)交給用戶。這個任務(wù)可以帶有參數(shù)表達(dá)式。根據(jù)參數(shù)值(0,1或2)的不同,輸出不同的信息。參數(shù)值越大,輸出的信息越多。117.5系統(tǒng)任務(wù)$readmemb和$readmemh
在VerilogHDL程序中有兩個系統(tǒng)任務(wù)$readmemb和$readmemh用來從文件中讀取數(shù)據(jù)到存貯器中。這兩個系統(tǒng)任務(wù)可以在仿真的任何時刻被執(zhí)行使用,其使用格式共有以下六種:1)$readmemb("<數(shù)據(jù)文件名>",<存貯器名>);2)$readmemb("<數(shù)據(jù)文件名>",<存貯器名>,<起始地址>);3)$readmemb("<數(shù)據(jù)文件名>",<存貯器名>,<起始地址>,<結(jié)束地址>);4)$readmemh("<數(shù)據(jù)文件名>",<存貯器名>);5)$readmemh("<數(shù)據(jù)文件名>",<存貯器名>,<起始地址>);6)$readmemh("<數(shù)據(jù)文件名>",<存貯器名>,<起始地址>,<結(jié)束地址>);12在這兩個系統(tǒng)任務(wù)中,被讀取的數(shù)據(jù)文件的內(nèi)容只能包含:空白位置(空格,換行,制表格(tab)),注釋行(//形式的和/*...*/形式的都允許),二進(jìn)制或十六進(jìn)制的數(shù)字。數(shù)字中不能包含位寬說明和格式說明,對于$readmemb系統(tǒng)任務(wù),每個數(shù)字必須是二進(jìn)制數(shù)字,對于$readmemh系統(tǒng)任務(wù),每個數(shù)字必須是十六進(jìn)制數(shù)字。數(shù)字中不定值x或X,高阻值z或Z,和下劃線_的使用方法及代表的意義與一般VerilogHDL程序中的用法及意義是一樣的。另外數(shù)字必須用空白位置或注釋行來分隔開。當(dāng)?shù)刂烦霈F(xiàn)在數(shù)據(jù)文件中,其格式為字符“@”后跟上十六進(jìn)制數(shù)。如:@hh...h13init.dat的內(nèi)容@010101010000000010101010@0061111zzzz0000111114/*因?yàn)閿?shù)據(jù)文件里的數(shù)據(jù)少,因此給出警告*/moduletest2_read;reg[7:0]memory[0:7];integeri;initialbegin$readmemb("init.dat",memory,0,7);for(i=0;i<=7;i=i+1)$display("Memory[%d]=%b",i,memory[i]);endendmodule15#**Warning:(vsim-PLI-3408)Toofewdatawordsreadatline7of"init.dat".Expected8,found6.:C:/Modeltech_6.0/examples/verilog6/ch6/test2_read.v(9)#Time:0nsIteration:0Instance:/test2_read#Memory[0]=xxxxxxxx#Memory[1]=xxxxxxxx#Memory[2]=11111111#Memory[3]=01010101#Memory[4]=00000000#Memory[5]=10101010#Memory[6]=1111zzzz#Memory[7]=0000111116/*本程序仿真時因?yàn)閿?shù)據(jù)文件中的地址在系統(tǒng)任務(wù)之地址參數(shù)說明的范圍之外,因此提示警告。*/moduletest_read;reg[7:0]memory[0:7];integeri;initialbegin$readmemb("init.dat",memory,2,5);for(i=0;i<=7;i=i+1)$display("Memory[%d]=%b",i,memory[i]);endendmodule17#**Warning:(vsim-PLI-3412)Address(6)isoutofbounds([2:5])atline6of"init.dat".:C:/Modeltech_6.0/examples/verilog6/ch6/test_read.v(8)#Time:0nsIteration:0Instance:/test_read#Memory[0]=xxxxxxxx#Memory[1]=xxxxxxxx#Memory[2]=11111111#Memory[3]=01010101#Memory[4]=00000000#Memory[5]=10101010#Memory[6]=xxxxxxxx#Memory[7]=xxxxxxxx187.6系統(tǒng)任務(wù)$random這個系統(tǒng)函數(shù)提供了一個產(chǎn)生隨機(jī)數(shù)的手段。當(dāng)函數(shù)被調(diào)用時返回一個32bit的隨機(jī)數(shù)。它是一個帶符號的整形數(shù)。$random一般的用法是:
$ramdom%b,其中b>0。它給出了一個范圍在(-b+1):(b-1)中的隨機(jī)數(shù)。下面給出一個產(chǎn)生隨機(jī)數(shù)的例子:reg[23:0]rand;rand=$random%60;上面的例子給出了一個范圍在-59到59之間的隨機(jī)數(shù)19值在0到59之間的隨機(jī)數(shù)用如下方法產(chǎn)生reg[23:0]rand;rand={$random}%60;207.7編譯預(yù)處理VerilogHDL語言和C語言一樣也提供了編譯預(yù)處理的功能?!熬幾g預(yù)處理”是VerilogHDL編譯系統(tǒng)的一個組成部分。VerilogHDL語言允許在程序中使用幾種特殊的命令(它們不是一般的語句)。VerilogHDL編譯系統(tǒng)通常先對這些特殊的命令進(jìn)行“預(yù)處理”,然后將預(yù)處理的結(jié)果和源程序一起再進(jìn)行通常的編譯處理。在VerilogHDL語言中,為了和一般的語句相區(qū)別,這些預(yù)處理命令以符號“`”開頭(注意這個符號是不同于單引號“'”)。這些預(yù)處理命令的有效作用范圍為定義命令之后到本文件結(jié)束或到其它命令定義替代該命令之處。21宏定義`define用一個指定的標(biāo)識符(即名字)來代表一個字符串,它的一般形式為:`define標(biāo)識符(宏名)字符串(宏內(nèi)容)如:`definesignalstring`defineWORDSIZE8modulereg[1:`WORDSIZE]data;//這相當(dāng)于定義reg[1:8]data;22moduletest;rega,b,c,d,e,out;`defineexpressiona+b+c+d;assignout=`expression+e;...endmodule/*經(jīng)過宏展開以后,該語句為:assignout=a+b+c+d;+e;顯然出現(xiàn)語法錯誤。*/23moduletest;rega,b,c;wireout;`defineaaa+b`defineccc+`aaassignout=`cc;endmodule//這樣經(jīng)過宏展開以后,assign語句為assignout=c+a+b;24module`definetyp_nandnand#5//defineanandwithtypicaldelay`typ_nandg121(q21,n10,n11);………endmodule//經(jīng)過宏展開以后,該語句為:nand#5g121(q21,n10,n11);257.7.2“文件包含”處理`include所謂“文件包含”處理是一個源文件可以將另外一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政管理??普Z文復(fù)習(xí)資料試題及答案
- 行政管理??瓶荚囍攸c(diǎn)內(nèi)容與試題及答案
- 2025年執(zhí)業(yè)藥師新版教材試題及答案
- 護(hù)理學(xué)與藥學(xué)協(xié)作的案例討論試題及答案
- 探索行政管理的中國文化概論考試試題及答案
- 中國非遺項目與文化傳承試題及答案
- 護(hù)理專業(yè)相關(guān)法規(guī)試題及答案深度解讀
- 2025年語文考試備考中的常見問題試題及答案
- 護(hù)士考試的職業(yè)生涯規(guī)劃與試題答案
- 前沿知識執(zhí)業(yè)藥師考試試題及答案
- 區(qū)塊鏈技術(shù)對傳統(tǒng)行業(yè)的顛覆與重塑
- 殘值車輛收購合同協(xié)議
- 2025年全國防災(zāi)減災(zāi)日主題教育班會課件
- 2025兒童服裝購銷合同模板
- 2025年全國高壓電工證(復(fù)審)理論考試試題(1000題)附答案
- 2025西安數(shù)字城市科技運(yùn)營有限公司招聘(9人)筆試參考題庫附帶答案詳解
- 2024年江蘇南京大數(shù)據(jù)集團(tuán)有限公司招聘筆試真題
- 北京2025年生態(tài)環(huán)境部衛(wèi)星環(huán)境應(yīng)用中心上半年招聘筆試歷年參考題庫附帶答案詳解
- 人教版八年級數(shù)學(xué)下冊試題第18章平行四邊形綜合測試卷(含詳解)
- 2025智慧病區(qū)建設(shè)及評價規(guī)范
- 湖南能源集團(tuán)有限公司招聘筆試題庫2025
評論
0/150
提交評論