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