如何存儲關(guān)鍵數(shù)據(jù)的方法,屬于規(guī)模測試驗證的手段,但對于Verilog的調(diào)試過程還不夠直觀,因為無法確切地了解Verilog代碼仿真中各個關(guān)聯(lián)信號是如何作用的。Verilog的確可以像C/C++一樣啟動調(diào)試模式,針對每行代碼進行調(diào)試。但請注意,由于Verilog是并行執(zhí)行的,而仿真是采用delta時間逐步并行推進的,采用代碼調(diào)試較為困難,所以常常需要存儲全部或部分仿真數(shù)據(jù),這就是波形文件。
在進行FPGA開發(fā)的過程中,稍微大一點的項目,進行一次編譯綜合與布線是非常耗時的,所以在開發(fā)的過程中一般采取先進行功能仿真,功能仿真結(jié)果正確無誤以后再進行綜合和布局布線。一般來說,先添加好時鐘約束,進行綜合與布線時無嚴(yán)重警告,此時如果功能仿真(前仿)仍然正確,那么任務(wù)就基本完成了。但如果是一個比較完整的項目開發(fā),應(yīng)該還需要進行布線后的時延仿真(后仿)。這里,主要介紹如何將前仿和后仿的時序波形圖保存以及再次打開上一次的仿真結(jié)果。
相關(guān)文件說明
1. 波形數(shù)據(jù)庫文件(.WDB),其中包含所有的仿真數(shù)據(jù)。
2. 波形配置文件(.WCFG),其中包含于波形配置文件中的對象相關(guān)聯(lián)的順序和設(shè)置
在保存 .WCFG文件之前,對波形配置的修改(包括創(chuàng)建波形配置或添加HDL對象)不是永久性的,可以通過 File -> Save Waveform Configuration As 將波形配置保存下來。波形數(shù)據(jù)庫文件(.WDB)包含了波形配置文件中所有信號的仿真數(shù)據(jù),單個 .WDB可以對應(yīng)多個 .WCFG文件, 可以通過打開 .WDB文件查看上一次保存下來的仿真波形。
具體的保存與讀取
保存
1. 將需要觀測的信號拉倒圖形窗口界面
2. 設(shè)置仿真時間
3. 保存 .WCFG 波形配置文件到指定路徑
4. 保存 .WDB 仿真波形。為了能將波形數(shù)據(jù)保存下來,需要在測試代碼中加上如下代碼,放在最末端即可。為了下一次仿真不影響已保存的仿真波形,建議將 .WDB 文件拷貝并修改名字。
`define dump_level 10
//module dump_task;
initial begin#1; //延遲1ns記錄,方便與其他仿真動作協(xié)調(diào)
`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//工業(yè)標(biāo)準(zhǔn)VCD格式存儲
$display("Start Recording Waveform in VCD format!");
$dumpfile("dump.vcd");
$dumpvars('dump_level);
`endif
end
5. 運行仿真(前后仿的 .WDB 會自動保存到 .sim/sim_1/ 下的三個路徑之一,與仿真類型有關(guān))。
讀取
1. 點擊Vivado的菜單欄中的 Flow -> Open Static simulation,然后選中之前保存的 .WDB 文件即可。
2. 點擊Vivado的菜單欄中的 File -> Open Waveform Configuration,選擇我們之前保存的 .WCFG文件即可恢復(fù)上一次的仿真結(jié)果
總結(jié)
時序仿真波形的保存與讀取在大工程的功能仿真、時序仿真、以及問題分析中,可以為開發(fā)者節(jié)約很多時間。當(dāng)一個項目比較復(fù)雜時,跑一次仿真耗時會非常長,尤其是需要進行后仿時,耗時比綜合和布局布線更長,所以我們最好是將時序波形保存下來進行分析,可以避免浪費許多不必要的時間。
-
FPGA
+關(guān)注
關(guān)注
1630文章
21803瀏覽量
606433 -
Vivado
+關(guān)注
關(guān)注
19文章
815瀏覽量
66931 -
時序仿真
+關(guān)注
關(guān)注
0文章
14瀏覽量
7464
發(fā)布評論請先 登錄
相關(guān)推薦
ADS1263工作時序與手冊不一致怎么解決?
ADS8866按照TI的3線MODE時序讀數(shù),讀出的數(shù)據(jù)少了3位,為什么?
正點原子fpga開發(fā)指南
Vivado使用小技巧
![<b class='flag-5'>Vivado</b>使用小技巧](https://file1.elecfans.com/web2/M00/0B/08/wKgaomcZ8y6AWZ83AAAEKGeX3w0243.jpg)
LabVIEW波形圖截取局部數(shù)據(jù)
![LabVIEW<b class='flag-5'>波形圖</b>截取局部數(shù)據(jù)](https://file1.elecfans.com/web1/M00/F3/53/wKgaoWcVvROAT4iLAAC0BeB95ok306.png)
三菱PLC數(shù)據(jù)怎么讀取與保存
FPGA 高級設(shè)計:時序分析和收斂
示波器如何保存波形數(shù)據(jù)?
示波器如何直連電腦進行波形讀取
ADXL345讀取id失敗的原因?
泰克示波器保存波形csv
![泰克示波器<b class='flag-5'>保存</b><b class='flag-5'>波形</b>csv](https://file1.elecfans.com//web2/M00/DF/07/wKgaomYtweqAFS7sAAB4sNCZED013.jpeg)
深入探索Vivado非工程模式FPGA設(shè)計流程
![深入探索<b class='flag-5'>Vivado</b>非工程模式<b class='flag-5'>FPGA</b>設(shè)計流程](https://file1.elecfans.com/web2/M00/C7/AF/wKgaomYMtA6AKaIAAAAlKEjXMwk084.png)
評論