加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內容快速變現
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 自動拆分成多個文件
    • 回歸時硬盤放不下波形?
    • 產生20個波形文件之后停止dump波形
    • 只dump一層信號,不進入子模塊
    • 只dump io端口
    • 只dump指定的信號
    • 從指定時間或指定事件之后開始dump
    • 不同的信號dump到不同的文件
  • 相關推薦
  • 電子產業(yè)圖譜
申請入駐 產業(yè)圖譜

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

09/10 15:45
2129
閱讀需 3 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

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

自動拆分成多個文件

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

回歸時硬盤放不下波形?

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

產生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");

相關推薦

電子產業(yè)圖譜

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