如何存儲關鍵數據的方法,屬于規模測試驗證的手段,但對于Verilog的調試過程還不夠直觀,因為無法確切地了解Verilog代碼仿真中各個關聯信號是如何作用的。Verilog的確可以像C/C++一樣啟動調試模式,針對每行代碼進行調試。但請注意,由于Verilog是并行執行的,而仿真是采用delta時間逐步并行推進的,采用代碼調試較為困難,所以常常需要存儲全部或部分仿真數據,這就是波形文件。
在進行FPGA開發的過程中,稍微大一點的項目,進行一次編譯綜合與布線是非常耗時的,所以在開發的過程中一般采取先進行功能仿真,功能仿真結果正確無誤以后再進行綜合和布局布線。一般來說,先添加好時鐘約束,進行綜合與布線時無嚴重警告,此時如果功能仿真(前仿)仍然正確,那么任務就基本完成了。但如果是一個比較完整的項目開發,應該還需要進行布線后的時延仿真(后仿)。這里,主要介紹如何將前仿和后仿的時序波形圖保存以及再次打開上一次的仿真結果。
相關文件說明
1. 波形數據庫文件(.WDB),其中包含所有的仿真數據。
2. 波形配置文件(.WCFG),其中包含于波形配置文件中的對象相關聯的順序和設置
在保存 .WCFG文件之前,對波形配置的修改(包括創建波形配置或添加HDL對象)不是永久性的,可以通過 File -> Save Waveform Configuration As 將波形配置保存下來。波形數據庫文件(.WDB)包含了波形配置文件中所有信號的仿真數據,單個 .WDB可以對應多個 .WCFG文件, 可以通過打開 .WDB文件查看上一次保存下來的仿真波形。
具體的保存與讀取
保存
1. 將需要觀測的信號拉倒圖形窗口界面
2. 設置仿真時間
3. 保存 .WCFG 波形配置文件到指定路徑
4. 保存 .WDB 仿真波形。為了能將波形數據保存下來,需要在測試代碼中加上如下代碼,放在最末端即可。為了下一次仿真不影響已保存的仿真波形,建議將 .WDB 文件拷貝并修改名字。
`define dump_level 10
//module dump_task;
initial begin#1; //延遲1ns記錄,方便與其他仿真動作協調
`ifdef VCS_DUMP //Synopsys VCD+格式存儲
$display("Start Recording Waveform in VPD format!");
$vcdpluson();
$vcdplustraceon;
`endif
`ifdef FSDB_DUMP //Synopsys fsdb格式存儲
$display("Start Recording Waveform in FSDB format!");
$fsdbDumpfile("dump.fsdb");
$fsdbDumpvars('dump_level);
`endif
`ifdef NC_DUMP//cadence 格式存儲
$recordsetup("dump","version=1","run=1","directory=.");
$recordvars("depth=6");
`endif
`ifdef VCD_DUMP//工業標準VCD格式存儲
$display("Start Recording Waveform in VCD format!");
$dumpfile("dump.vcd");
$dumpvars('dump_level);
`endif
end
5. 運行仿真(前后仿的 .WDB 會自動保存到 .sim/sim_1/ 下的三個路徑之一,與仿真類型有關)。
讀取
1. 點擊Vivado的菜單欄中的 Flow -> Open Static simulation,然后選中之前保存的 .WDB 文件即可。
2. 點擊Vivado的菜單欄中的 File -> Open Waveform Configuration,選擇我們之前保存的 .WCFG文件即可恢復上一次的仿真結果
總結
時序仿真波形的保存與讀取在大工程的功能仿真、時序仿真、以及問題分析中,可以為開發者節約很多時間。當一個項目比較復雜時,跑一次仿真耗時會非常長,尤其是需要進行后仿時,耗時比綜合和布局布線更長,所以我們最好是將時序波形保存下來進行分析,可以避免浪費許多不必要的時間。
-
FPGA
+關注
關注
1632文章
21814瀏覽量
606969 -
Vivado
+關注
關注
19文章
816瀏覽量
67007 -
時序仿真
+關注
關注
0文章
14瀏覽量
7466
發布評論請先 登錄
相關推薦
ADS1263工作時序與手冊不一致怎么解決?
正點原子fpga開發指南
Vivado使用小技巧

LabVIEW波形圖截取局部數據

三菱PLC數據怎么讀取與保存
FPGA 高級設計:時序分析和收斂
示波器如何保存波形數據?
示波器如何直連電腦進行波形讀取
泰克示波器保存波形csv

深入探索Vivado非工程模式FPGA設計流程

評論