• 正文
    • 自動(dòng)拆分成多個(gè)文件
    • 回歸時(shí)硬盤放不下波形?
    • 產(chǎn)生20個(gè)波形文件之后停止dump波形
    • 只dump一層信號(hào),不進(jìn)入子模塊
    • 只dump io端口
    • 只dump指定的信號(hào)
    • 從指定時(shí)間或指定事件之后開(kāi)始dump
    • 不同的信號(hào)dump到不同的文件
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

fsdb波形太大,打開(kāi)速度慢,甚至打不開(kāi),怎么辦

2024/09/10
3382
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

太大,那就少dump點(diǎn)唄。下面介紹幾個(gè)技巧。

自動(dòng)拆分成多個(gè)文件

// 拆分成4GB一個(gè)文件
$fsdbAutoSwitchDumpfile(4000, "myprj.fsdb");

回歸時(shí)硬盤放不下波形?

// 限制拆分文件的個(gè)數(shù),比如最多生成20個(gè)4GB文件,之后會(huì)重頭開(kāi)始覆蓋最早的波形文件
$fsdbAutoSwitchDumpfile(4000, "myprj.fsdb", 20);

產(chǎn)生20個(gè)波形文件之后停止dump波形

// 設(shè)為不覆蓋,工具停止dump
$fsdbAutoSwitchDumpfile(4000, "myprj.fsdb", 20, "+fsdb+no_overwrite");

只dump一層信號(hào),不進(jìn)入子模塊

$fsdbDumpvars(1, tb.dut.u_isp);

只dump io端口

// 只dump dut的頂層端口
$fsdbDumpvars(0, tb.dut, "+IO_Only");

只dump指定的信號(hào)

$fsdbDumpvars(tb.dut.u_isp_0.signal_a);
$fsdbDumpvars(tb.dut.u_isp_1.signal_b);

從指定時(shí)間或指定事件之后開(kāi)始dump

initial begin
  $fsdbDumpfile("myprj.fsdb");
  $fsdbDumpvars(0, tb);
  // 停止dump
  $fsdbDumpoff;
  
  #10ms;
  // 10ms后開(kāi)始dump
  $fsdbDumpon;
end
initial begin
  $fsdbDumpfile("myprj.fsdb");
  $fsdbDumpvars(0, tb);
  // 停止dump
  $fsdbDumpoff;
  
  @(posedge tb.dut.trigger);
  // 等到一個(gè)信號(hào)觸發(fā)后開(kāi)始dump
  $fsdbDumpon;
end

不同的信號(hào)dump到不同的文件

// 兩個(gè)模塊分別dump到兩個(gè)不同的文件(不需要加.fsdb后綴)
$fsdbDumpvars(0, tb.dut.u_a, "+fsdbfile+a");
$fsdbDumpvars(0, tb.dut.u_b, "+fsdbfile+b");

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

公眾號(hào)ExASIC號(hào)主,從事數(shù)字IC設(shè)計(jì)10余年,主要分享日常工作中的經(jīng)驗(yàn)和技巧,分享讓工作更輕松。