使用 Verdi 的過程中,難免會碰到表示某種變化量的多位寬數(shù)字信號,我們關(guān)心的是它的變化趨勢。今天主要聊聊數(shù)字信號的模擬化呈現(xiàn)。
數(shù)字信號的模擬化呈現(xiàn)
Verdi 提供了既簡單又直觀的操作,去繪制數(shù)字信號的模擬變化趨勢。尤其是在觀察周期性計數(shù)的數(shù)字信號時,例如調(diào)制頻率的變化,還有 FIFO 讀寫地址的變化,這種方式基本是可以做到一目了然的。
操作方式:nWave 窗口菜單 - Waveform - Analog Waveform
對于 Verdi 這個工具來說,它對于數(shù)字信號本身的含義目前還沒有智能到可以自動識別。所以我們需要指定特定數(shù)字信號的表示方式(Notation),是無符號、二補碼還是補碼等等。
操作方式:nWave 窗口菜單 - Waveform - Set Notation
模擬波形的顯示范圍
還有一個可能遇到的局限性就是,Verdi 在繪制數(shù)字信號的模擬波形時,默認會按照整個波形的動態(tài)范圍來繪圖。如果一個數(shù)字信號的初始值和工作時實際的動態(tài)范圍差別很大,那么觀察實際工作時的模擬波形時,波形變化的幅度相比整個動態(tài)范圍就會太小,無法明了的看到小動態(tài)范圍的變化趨勢。
手動調(diào)節(jié)顯示范圍
還好 Verdi 提供了手動調(diào)節(jié)顯示范圍的功能。
操作方式:nWave 窗口菜單 - Analog - Zoom Value...
根據(jù)需要調(diào)節(jié)上限和下限,調(diào)節(jié)過程中波形是實時更新的。
對比效果如下圖,第一個信號是默認范圍的,動態(tài)變化縮成一條直線了,沒有觀察價值。第二個信號是調(diào)整了范圍的,可以清楚的看到變化趨勢。第三個是原始的數(shù)字信號。
自動調(diào)節(jié):切換 FSDB 文件
還有一個比較笨的解決方法是,寫出 FSDB 文件時,根據(jù)特定信號,從數(shù)字信號開始動態(tài)變化的時候,做一個文件切換。這樣就把數(shù)字信號初始化部分的波形分離出去。當我們著重分析動態(tài)變化的部分時,就不需要加載初始化部分的波形。Verdi 在繪制模擬波形的時候,只會看到小動態(tài)范圍的數(shù)值,繪制出來的變化趨勢就足夠清楚了。
$fsdbDumpfile("tb_000.fsdb");
$fsdbDumpvars(0, tb);
@(posedge some_trigger_signal);
$fsdbSwitchDumpfile("tb_001.fsdb");
自動調(diào)節(jié):加載特定時間范圍
當然作為團隊項目的螺絲釘,有時候不方便控制 FSDB 文件的產(chǎn)生方式,那么在加載 FSDB 文件的時候,可以選擇指定一個時間范圍。感謝讀者 @Erik Li
提供的這個技巧。
操作方式:nWave窗口菜單 - Open,選擇 FSDB 文件到 Target Name 后,點擊左下方的 Options... 按鈕。
在彈出的對話框中選中 Open File By Time Range,然后點擊 OK 按鈕。
再點擊 OK 按鈕,在彈出的對話框中就可以選擇感興趣的時間起止范圍了。
如何提高螺絲釘?shù)淖晕倚摒B(yǎng)
今天就到這里。最后再分享一個最近才發(fā)現(xiàn)的 Verdi 調(diào)用參數(shù)。
verdi -preTitle "some text"
螺絲釘做久了,需要同時打開的 Verdi 窗口數(shù)量與日俱增。怎么從密密麻麻的任務(wù)欄圖標中找到要找的那個,是個麻煩但不緊急的問題。除了貫徹斷舍離、及時關(guān)閉短期內(nèi)不需要的窗口之外,用上面的選項為每一個 Verdi 窗口做個簡潔唯一的命名,也是一個不那么有效的解決之道。
-
數(shù)字信號
+關(guān)注
關(guān)注
2文章
987瀏覽量
48035 -
模擬器
+關(guān)注
關(guān)注
2文章
890瀏覽量
43854 -
FIFO存儲
+關(guān)注
關(guān)注
0文章
103瀏覽量
6116
發(fā)布評論請先 登錄
相關(guān)推薦
什么是模擬信號?什么叫數(shù)字信號?
模擬信號和數(shù)字信號有什么區(qū)別

如何區(qū)別模擬信號與數(shù)字信號
模擬信號和數(shù)字信號的差異
模擬信號和數(shù)字信號如何得到兼容
模擬信號和數(shù)字信號的定義以及差異

評論