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

fsdb波形太大,打開速度慢,甚至打不開,怎么辦

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

太大,那就少dump點唄。下面介紹幾個技巧。

自動拆分成多個文件

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

回歸時硬盤放不下波形?

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

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

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

只dump一層信號,不進入子模塊

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

只dump io端口

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

只dump指定的信號

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

從指定時間或指定事件之后開始dump

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

不同的信號dump到不同的文件

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

相關推薦

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

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