如何存儲關(guān)鍵數(shù)據(jù)的方法,屬于規(guī)模測試驗(yàn)證的手段,但對于Verilog的調(diào)試過程還不夠直觀,因?yàn)闊o法確切地了解Verilog代碼仿真中各個(gè)關(guān)聯(lián)信號是如何作用的。Verilog的確可以像C/C++一樣啟動(dòng)調(diào)試模式,針對每行代碼進(jìn)行調(diào)試。但請注意,由于Verilog是并行執(zhí)行的,而仿真是采用delta時(shí)間逐步并行推進(jìn)的,采用代碼調(diào)試較為困難,所以常常需要存儲全部或部分仿真數(shù)據(jù),這就是波形文件。
在進(jìn)行FPGA開發(fā)的過程中,稍微大一點(diǎn)的項(xiàng)目,進(jìn)行一次編譯綜合與布線是非常耗時(shí)的,所以在開發(fā)的過程中一般采取先進(jìn)行功能仿真,功能仿真結(jié)果正確無誤以后再進(jìn)行綜合和布局布線。一般來說,先添加好時(shí)鐘約束,進(jìn)行綜合與布線時(shí)無嚴(yán)重警告,此時(shí)如果功能仿真(前仿)仍然正確,那么任務(wù)就基本完成了。但如果是一個(gè)比較完整的項(xiàng)目開發(fā),應(yīng)該還需要進(jìn)行布線后的時(shí)延仿真(后仿)。這里,主要介紹如何將前仿和后仿的時(shí)序波形圖保存以及再次打開上一次的仿真結(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ù),單個(gè) .WDB可以對應(yīng)多個(gè) .WCFG文件, 可以通過打開 .WDB文件查看上一次保存下來的仿真波形。
具體的保存與讀取
保存
1. 將需要觀測的信號拉倒圖形窗口界面
2. 設(shè)置仿真時(shí)間
3. 保存 .WCFG 波形配置文件到指定路徑
4. 保存 .WDB 仿真波形。為了能將波形數(shù)據(jù)保存下來,需要在測試代碼中加上如下代碼,放在最末端即可。為了下一次仿真不影響已保存的仿真波形,建議將 .WDB 文件拷貝并修改名字。
`define dump_level 10
//module dump_task;
initial begin#1; //延遲1ns記錄,方便與其他仿真動(dòng)作協(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. 運(yùn)行仿真(前后仿的 .WDB 會自動(dòng)保存到 .sim/sim_1/ 下的三個(gè)路徑之一,與仿真類型有關(guān))。
讀取
1. 點(diǎn)擊Vivado的菜單欄中的 Flow -> Open Static simulation,然后選中之前保存的 .WDB 文件即可。
2. 點(diǎn)擊Vivado的菜單欄中的 File -> Open Waveform Configuration,選擇我們之前保存的 .WCFG文件即可恢復(fù)上一次的仿真結(jié)果
總結(jié)
時(shí)序仿真波形的保存與讀取在大工程的功能仿真、時(shí)序仿真、以及問題分析中,可以為開發(fā)者節(jié)約很多時(shí)間。當(dāng)一個(gè)項(xiàng)目比較復(fù)雜時(shí),跑一次仿真耗時(shí)會非常長,尤其是需要進(jìn)行后仿時(shí),耗時(shí)比綜合和布局布線更長,所以我們最好是將時(shí)序波形保存下來進(jìn)行分析,可以避免浪費(fèi)許多不必要的時(shí)間。
-
FPGA
+關(guān)注
關(guān)注
1650文章
22203瀏覽量
626644 -
Vivado
+關(guān)注
關(guān)注
19文章
844瀏覽量
70038 -
時(shí)序仿真
+關(guān)注
關(guān)注
0文章
14瀏覽量
7558
發(fā)布評論請先 登錄
vivado仿真時(shí)GSR信號的影響

使用C#實(shí)現(xiàn)西門子PLC數(shù)據(jù)定時(shí)讀取保存

Vivado無法選中開發(fā)板的常見原因及解決方法

求助,做一個(gè)波形圖顯示控件,要求調(diào)用excel表里面存的時(shí)間作為波形圖的x值。
基于 FPGA 的任意波形發(fā)生器+低通濾波器系統(tǒng)設(shè)計(jì)
適用于Versal的AMD Vivado 加快FPGA開發(fā)完成Versal自適應(yīng)SoC設(shè)計(jì)

FPGA時(shí)序約束之設(shè)置時(shí)鐘組

各位大佬好 請問如何能將DAQ采集程序內(nèi)部波形圖的數(shù)連續(xù)送給DAQ輸出程序?
一文詳解Vivado時(shí)序約束

ADS1263工作時(shí)序與手冊不一致怎么解決?
ADS8866按照TI的3線MODE時(shí)序讀數(shù),讀出的數(shù)據(jù)少了3位,為什么?
正點(diǎn)原子fpga開發(fā)指南
Vivado使用小技巧

LabVIEW波形圖截取局部數(shù)據(jù)

評論