VCS與Verdi工具初體驗

黄春生 2024-09-07 12:22 7次浏览 0 条评论 taohigo.com

咱言歸正傳,開始說說 EDA 工具(synopsys)。”小勇“是用的虛擬機,在虛擬機下初步利用 VCS Verdi 工具進行波形仿真。當然安裝虛擬機以及配置環境的過程對於一個剛剛接觸 Linux 系統的人來說是十分痛苦的(我太菜瞭)不過好在有各大論壇和微信”好兄弟“的存在幫忙解決瞭這個問題

利用 VCS 等工具進行仿真首先需要準備 4 個文件,或者是 3 個文件。可以參考圖1

  1. 你所寫的RTL文件(.v) // 比如圖1中的 adder.v 文件
  2. 仿真時鐘精度文件(.v) // 比如圖1中的 timescale.v 文件
  3. 用於仿真的測試激勵文件(.v) // 比如圖1中的 main.v文件
  4. 統籌前三個文件的統領文件(.f) // 比如圖1中的 flist.f 文件

圖1

  • 對於RTL文件,顯然就是你的代碼設計瞭,這個就不多說瞭。
  • 對於仿真時鐘精度文件,一般隻有一行代碼:`timescale 1ns/1ps 。用來給所有的RTL文件配置精度。這個就和 vivado 中,每次新建一個 .v 的時候,在文件的最上方會自動幫你創建。
  • 對於用於仿真的測試激勵文件,這個就是一個testbench。不過有一點和 vivado 不同的地方在於,需要額外建立一個 initial 塊,用於調用產生有關 fsdb 格式的波形文件。調用 fsdbDumpfile 函數,產生一個叫 adder_tb.fsdb 的波形文件(這個文件是自己定義的),然後調用 fsdbDumpvars 函數,聲明需要保存那些信號的波形,括號內不加任何參數,則默認全部保存。具體的可以查看一些這個函數的具體用法。這裡說一個小插曲,如果之前環境配置不成功,會顯示調用這兩個函數不成功(悲傷那麼大 )。圖2給出瞭本次仿真測試的示意圖。
  • 對於統領文件(自己起的一個代號 ),這就是一個工具人。裡面保存的是與本次仿真有關的文件(正常包括 RTL設計,testbench)。參考圖3。這個文件存放的內容為地址。比如adder.v文件的地址目錄是哪裡。如果與 filst.f 在相同的目錄下,則相對目錄即可。如果不在相同的目錄下,需要使用絕對地址。這個文件可有可無,隻是為瞭使用方便。

圖2 測試激勵文件圖3

以上便是正式開始前的準備工作。下面“好戲”正式登場。

  1. 在命令行運行:vcs -R -full64 -fsdb -f flist.f
  • -fsdb : 仿真過程同時生成 fsdb格式的波形
  • -full64 : 匹配64位服務器系統
  • -f : 讀取仿真文件
  • -R : 編譯後自動運行

2. 運行成過後,再在命令行運行: verdi -f flist.f 將文件導入verdi。

這個界面和 modelsim 基本類似。在左右可以看到你的仿真文件和工程文件。右側是對應的verilog 代碼。然後鼠標點擊圖4中紅色圓圈標記加載波形窗口。圖5中下半步黑色的便是打開的波形窗口,下面我們開始添加波形文件。如圖5所示,首先點擊那個文件,則會打開 Open Dump File 窗口,我們選中我們之前在main.v 中所生成的 adder_tb.fsdb 文件,然後點擊Add 按鈕,完成添加的過程,然後點擊OK退出,不過我們會發現此時波形窗口仍然沒有任何信號波形。不急,我們還有下面的操作。

圖4圖5

在波形窗口界面中,如圖6所示,點擊那個波形按鈕。則會彈出 Get Signals 任務框。裡面會有每層 .v相關的信號,可以用鼠標點擊一個一個的添加。也可也ctrl A全選一並添加。添加成過後則會發現相關的信號出現在波形窗口啦。

圖6

此外,可以直接在命令行直接運行: verdi -f flist.f -ssf waveform.fsdb

  • -ssf : 表示讀取波形文件
  • waveform.fsdb : 就是相應的波形文件,比如adder_tb.fsdb

這個會節省上述的一些步驟。此外如果發現有需要修改的代碼,verdi工具可以不用關閉。修改完設計後,重新運行 vcs -R -full64 -fsdb -f flist.f 。在 verdi 界面快捷鍵 shift L 進行刷新一下即可。有點 modelsim 中 do 文件的意思。

今天到這裡就先結束瞭,希望有大佬可以不吝賜教。