VCD(ValueChange Dump) 是用ASCII記錄了被選擇信號(hào)在仿真過程中的變化情況,同時(shí)還記錄了一些測試向量生成時(shí)的仿真信息,例如仿真時(shí)間精度等.目前常用的VCD主要有兩種格式:
四值格式:記錄了信號(hào)的數(shù)值變化情況,這里的數(shù)值僅包含0,1,x,z,不包含相關(guān)信號(hào)強(qiáng)度的信息;
擴(kuò)展格式:記錄了信號(hào)數(shù)值變化的所有情況;
本文僅以四值格式VCD為例進(jìn)行詳述.
1 VCD生成常用的系統(tǒng)任務(wù)
在Verilog中嘗試用以下的系統(tǒng)任務(wù)保存測試向量VCD.
1.1 $dumpfile
該任務(wù)主要用來指定要生成的VCD文件名.
【示例】
1.2 $dumpvars
該任務(wù)主要用來指定將那些變量的信息保存到$dumpfile指定的VCD文件中,其格式主要有兩種:一種是有參數(shù)的,一種是沒有參數(shù)的.
無參數(shù):
該任務(wù)執(zhí)行后將會(huì)將所有的變量變化情況都記錄到VCD文件中.
有參數(shù):
該任務(wù)的第一個(gè)參數(shù)用來指定從當(dāng)前層開始向下記錄多少層的模塊的信號(hào)變化情況,第二個(gè)參數(shù)指定記錄信號(hào)開始的模塊(例化名).當(dāng)?shù)谝粋€(gè)參數(shù)設(shè)置為0時(shí)將會(huì)將指定的層以下的所有層次的信號(hào)變化情況都記錄下來,這里需要注意,此時(shí)的參數(shù)0-只是對后續(xù)模塊參數(shù)有效,對于變量參數(shù)不影響.
【示例】僅記錄top層下的所有信號(hào)的變化情況,但是不記錄例化在top層下的所有信號(hào)的變化情況.
【示例】記錄從top層開始的所有模塊中信號(hào)的變化情況.
【示例】記錄特定模塊以下所有層信號(hào)變化情況和其他模塊變量的變化情況
記錄了top.mod1及其所有層次的信號(hào)的變化情況,同時(shí)也記錄了top.mod2.net1的變化情況,但是這里需要注意的是,第一個(gè)參數(shù)的作用對象為模塊mod1,不是mod2.net1.
1.3 dumpoff和dumpon
dumpvars調(diào)用后在調(diào)用的時(shí)間槽的最后開始記錄信號(hào)的變化情況,當(dāng)時(shí)用dumpoff時(shí)記錄掛起,此時(shí)將會(huì)產(chǎn)生一個(gè)記錄檢查點(diǎn),檢查點(diǎn)中記錄的所有被選擇的變量值為x,當(dāng)再次使用dumpon后,掛起的記錄將會(huì)繼續(xù)進(jìn)行,而在dumpoff和$dumpon之間的變化將不會(huì)進(jìn)行記錄,而是以x作為記錄.
【示例】
1.4 $dumpall
該任務(wù)會(huì)在VCD文件中創(chuàng)建一個(gè)檢查點(diǎn),其中記錄了當(dāng)前時(shí)刻所要記錄的信號(hào)的值,這里需要注意,VCD記錄功能使能后,VCD僅記錄隨著時(shí)間遞增有變化的信號(hào),如果相關(guān)的信號(hào)沒有發(fā)生變化,那么將不會(huì)在對應(yīng)時(shí)段進(jìn)行記錄,但是如果使用dumpall那么不管當(dāng)前時(shí)刻前后相關(guān)信號(hào)是否發(fā)生變化,所有要被記錄的信號(hào)都會(huì)記錄到VCD中.當(dāng)該命令緊跟著dumpvars時(shí),將不會(huì)在VCD記錄中出現(xiàn),因?yàn)榇藭r(shí)該命令的功能與$dumpvars一致,即記錄所有要被記錄的變量信號(hào)的值.
1.5 $dumplimit
該任務(wù)可以限定VCD文件的大小,其中參數(shù)的單位為字節(jié),當(dāng)記錄的VCD文件大小達(dá)到限制,將會(huì)在文件的末尾插入如下語句表示VCD文件記錄的大小已經(jīng)達(dá)到設(shè)定值:
1.6 $dumpflush
該任務(wù)主要用來清理VCD文件占用的系統(tǒng)緩存,當(dāng)然在清理之前會(huì)將緩存中的數(shù)據(jù)保存到VCD文件中,一般情況下只有仿真結(jié)束了才能對VCD文件進(jìn)行操作,在代碼中增加該任務(wù),可以在放真的過程中對VCD文件進(jìn)行操作,因?yàn)樵撊蝿?wù)在仿真過程中將緩存中的數(shù)據(jù)更新到VCD中,所以不用等到仿真結(jié)束即可查看VCD文件.
2 VCD文件格式
VCD文件通常由三部分組成:頭信息區(qū)(HeaderInformation),節(jié)點(diǎn)信息區(qū)(Node Information),數(shù)值變化區(qū)(Value Change).VCD文件的開始部分為頭信息區(qū),其中包括VCD產(chǎn)生日期、仿真器版本以及仿真時(shí)間精度等信息.節(jié)點(diǎn)信息區(qū)主要記錄了哪些變量信號(hào)將被記錄在VCD中以及在VCD中對應(yīng)這些變量信號(hào)的標(biāo)識(shí)符(ASCII,字符的范圍從!到~,在碼表中對應(yīng)的十進(jìn)制數(shù)為33到126).數(shù)值變化區(qū)主要記錄了那些隨著仿真時(shí)間推移發(fā)生變化的變量信號(hào).
注意事項(xiàng):
- VCD中記錄的數(shù)據(jù)是區(qū)分大小寫的;
- VCD不會(huì)僅記錄一個(gè)矢量的一部分,也不會(huì)記錄表達(dá)式;
記錄信號(hào)的數(shù)據(jù)格式
VCD中記錄的變量一般主要包括標(biāo)量和矢量,每種類型的信號(hào)被記錄在VCD中的方式也略有差異.
- 標(biāo)量變量一般記錄時(shí),標(biāo)識(shí)符與具體對應(yīng)數(shù)值之間沒有空格;
- 矢量變量記錄時(shí),需要分兩種情況:
- 矢量變量每一位對應(yīng)一個(gè)標(biāo)識(shí)符,此時(shí)記錄的每一位與記錄標(biāo)量變量一樣;
- 矢量變量整體對應(yīng)一個(gè)標(biāo)識(shí)符時(shí),此時(shí)標(biāo)識(shí)符與對應(yīng)記錄的數(shù)值之間有一個(gè)空格,記錄數(shù)值的格式為:<進(jìn)制><數(shù)字>;
一般矢量數(shù)字的格式為右對齊,可能記錄數(shù)據(jù)本身的位數(shù)與矢量定義不一致,此時(shí)會(huì)對數(shù)據(jù)的高位進(jìn)行填充處理,一般遵循的高位補(bǔ)充規(guī)則如下表所示:
【示例】
從向量中可以看到,信號(hào)RIO2_REFCLK_M[3:0]在時(shí)刻#5000000、#6500000、#12000000分別為4'b1111,4'b0000,4'b1111.這里大家需要注意矢量變量在VCD中記錄的格式.
2.2 VCD中常見的關(guān)鍵字
在VCD文件中,常見關(guān)鍵字命令如下表所示:
2.2.1 $comment
主要是在VCD中插入一些注釋提示信息等.
2.2.2 $date
主要記錄了VCD是生成的時(shí)間.
2.2.3 $enddefinitions
標(biāo)識(shí)頭信息區(qū)和節(jié)點(diǎn)信息區(qū)的結(jié)束.
2.2.4 $scope
主要指示被記錄變量的作用范圍,一般對于以下模塊關(guān)鍵字進(jìn)行范圍標(biāo)志:module,task,function,begin(具有l(wèi)abel),fork(具有l(wèi)abel).
2.2.5 $timescale
指示VCD生成時(shí)使用的時(shí)間精度.
2.2.6 $upscope
指示設(shè)計(jì)層次結(jié)構(gòu)的變化,主要是從當(dāng)前層跳轉(zhuǎn)到比當(dāng)前層更高一級的層次時(shí)使用,即表示當(dāng)前層相關(guān)描述已經(jīng)結(jié)束.
2.2.7 $version
指示產(chǎn)生VCD的仿真器的名字和版本等信息.
2.2.8 $var
指示當(dāng)前標(biāo)識(shí)符和信息名對應(yīng)關(guān)系.
2.2.9 $dumpall
指示當(dāng)前為一個(gè)檢查點(diǎn),記錄了所有要被記錄的信號(hào)的值,而不管該信號(hào)是否發(fā)生變換.
2.2.10 $dumpoff
該命令后所有被記錄的信號(hào)的值為x,直到遇到$dumpon;
2.2.11 $dumpon
表示再次使能了記錄變量有效變化到VCD.
2.2.10 $dumpvars
其后緊跟著所有要被記錄的變量信號(hào)的初始值.
【示例】注意示例中各關(guān)鍵字說明
-
VCD
+關(guān)注
關(guān)注
0文章
37瀏覽量
35125 -
仿真器
+關(guān)注
關(guān)注
14文章
1035瀏覽量
85228 -
十進(jìn)制
+關(guān)注
關(guān)注
0文章
67瀏覽量
13523 -
信號(hào)仿真
+關(guān)注
關(guān)注
0文章
12瀏覽量
8725
發(fā)布評論請先 登錄
海信TC25VCD01彩電電路圖

海信TC25VCD01彩電電路圖

評論