課程目標
原來是互動的過程,這一節課主要講的是仿真平台完成任務,用DVE打開打開波形文件
-
查看波形文件
-
查看log文件
最早的是VCD文件,在這基礎上推出的VCD+文件,文件比較大,讀取慢

- 在仿真代碼中,嵌入dump 波形
- 產生VCD文件
- DVE在仿真后步驟
1 DVE后處理模式
PPT1
-
仿真的速度(depend on data dump commands 各種開關)
(設計驗證的初期,需要我們把波形保持下來,這個時候bug比較多,但是到后面設計收斂,跑的比較久,這個時候就不需要dump波形)
-
信號的可見性(查看仿真工具的信息,波形和log文件)
-
問題的追蹤性(可以追蹤到問題出在哪兒)
-
是否方便使用(是否對用戶友好,user friendly)(verdi、debussy對應的fsdb文件,debug最好用的工具之一)
PPT2

項目里面通過makefile的文件,腳本(批處理)
PPT3

DVE目前只支持VCD plus文件,可以用相互的轉換工具
PPT4

關鍵是dump波形,$vcdpluson(參數),可以記錄部分的波形文件
2 VCD+的系統任務
PPT1

層次化的記錄波形(0, A)整個模塊,以A為top層的
PPT2

從memory中寫入磁盤,當有任務的時候
PPT3

PPT4 例子

不帶參數:仿真哪個module里面,以及所有的子模塊信號
$readmenb display語句
3 VCD+文件的編譯
PPT1

- files 編譯需要的文件
- vcdplus_switchs 打開vcd+系統任務
直接的就是 vcs source.v -degugg_all
編譯后打開vpd文件,dve -vpd vcdplus.vpd
PPT2

- -debug_all全部開關打開對性能影響比較大,-pp打開關鍵的開關
- +vpdfile+filename 指定生成的vpd文件
- 后面三個用的比較多
4 小技巧
PPT1

PPT2

PPT3

5. 課程實驗
Makefile的格式
givm顯示行號,命名模式下輸入 : set nu
學腳本就是一勞永逸,簡化操作
開始的幾句

- 代碼覆蓋率和設置輸出文件

- VCS的編譯命令

包括了時序檢查
- 仿真的命令(這里用SIM代替了很多復雜的命令)

- 編譯命令,開始仿真命令,清除命令

技巧:在GVIM打開新的文件,進入命令行輸入tabnew ./打開一個窗口顯示了當前文件夾下的所有文件,上下移動光標,按enter進入改文件或者文件夾

verilog文件加入命令

各種不同的vcdpluson
makefile執行
make clean執行makefile下的清除命令
make con執行編譯命令
編譯上產生的log文件和終端產生的信息是一樣的,語法錯誤會在這里記錄下來
make sim執行仿真
dve打開波形文件
dve &左上角file找到vpd+文件
選擇波形信號,然后加入到波形文件add wave view
- debug的過程,發現信號哪里錯了,鼠標移動到那,雙擊會跳到源文件中去
dve -vpd ***文件名
只記錄頂層信號
更改記錄波形的命令$vcdpluson(1, fsm_top)
重新編譯,結果只計入top層

加載數組並記錄

.txt文本記錄的數據

重新編譯終端會顯示的結果如下:

默認情況下是不會記錄的數組的,打開開關vcdolusmemon()
波形信號的顯示為:

加入display語句
第一句加在仿真文件里為:

第二句和第三句為,加在設計文件里面

開始仿真,終端打出了三個hello verilog,問題是你不知道是哪一個文件的輸入。可能是隨機執行順尋

重要的宏__file__和__line__
加入了宏,告訴額外的信息,哪一個文件的哪一行

重新執行仿真,不同的是:

