# nWave nWave - 用來觀察訊號的工具,可以觀察每一條訊號在每個時間點的對應輸出,方便於debug。 ## 產生出 Waveform 的前置作業 1. 在testbench中的initial block中,加入以下程式碼: ```verilog= initial begin $fsdbDumpfile("TBT.fsdb"); $fsdbDumpvars; end ``` 模擬驗證後,產生出一個 TBT.fsdb 檔。接著我們就可以用 nWave 這個工具將 fsdb 檔案打開,觀察模擬時的訊號變化。 2. 在使用ncverilog模擬驗證時,加上「+access+r」參數。例如: ``` ncverilog TBT.v TBT_tb.v +access+r ``` Note:如何將「+access+r」加到 makefile 中,請參考 [makefile](https://hackmd.io/s/B1HF7jRtG) 教學。 ncverilog中指令加的 " +access+r ",會產生出 fsdb 檔案可以讓我們在 Waveform 中看到我們給予信號線的變換,在往後 Debug 程式會滿常用到的! ## nWave >步驟: ( 1 ) 在模擬驗證程式碼時加上 " +access+r " 例如: ``` ncverilog TBT.v TBT_tb.v +access+r ``` >或是,如果你要使用makefile來執行指令,則加入一個+access+r的替代變數,如下: >![](https://i.imgur.com/gbW6jIa.png) >( 2 ) 登入機器後,輸入 nWave 指令,開啟Waveform。(記得登入時,ssh一定要有-X參數) > >![](https://i.imgur.com/mRhBxA1.png) >( 3 ) 開啟後的視窗: >![](https://i.imgur.com/q1XalmQ.png) >( 4 ) 開啟fsdb file (File -> Open): >![](https://i.imgur.com/DNfINRs.png) >( 5 ) 選擇要開的fsdb file後,按下ok! >![](https://i.imgur.com/xaEUcgi.png) >( 6 ) 就可以選想要觀察的信號 (點選 Signal -> Get Siginals): >![](https://i.imgur.com/2NuFi9D.png) * 以下的圖若用 PTM.v 的波型圖,怕會洩漏 Lab3 答案,所以用去年的圖片。 >( 7 ) 開啟後就可以選要觀察之信號 >![](https://i.imgur.com/qoWbxJh.png) >( 8 ) Waveform 圖示,裡面的值預設是 16 進位表示法,左邊順序可以按下滑鼠滾輪做更改! >![](https://i.imgur.com/nznWENN.png) >( 9 ) 更改進位表示法 ( Waveform -> Signal Value Radix -> Decimal ( 十進位 ) ): >![](https://i.imgur.com/RYtmB4Y.png) 就會顯示下圖 ![](https://i.imgur.com/RumVzZt.png) ## [:maple_leaf:Homepage:maple_leaf:](https://hackmd.io/s/BkbSKFMuM)