生成FSDB波形

本文档详细介绍了在Synopsys VCS、Cadence irun和Modelsim中如何启用FSDB波形记录功能,包括添加系统函数、设置编译选项、PLI库路径配置及示例脚本的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3.3.1 生成FSDB波形

  • 在testbench中添加FSDB系统函数
`timescale 1ns/1ns
module test; 
initial 
begin 
$fsdbDumpfile("test.fsdb"); 
$fsdbDumpvars(0,test); 
end
...
endmodule
  • 在TCL文件中调用FSDB系统函数
%> irun top.v -access +r +tcl+cmd.tcl
call fsdbDumpfile "my.fsdb"
call fsdbDumpvars top
run 10000ns
exit
% simv -ucli -i cmd.tcl
fsdbDumpfile test.fsdb
fsdbDumpvars 0 test
run 1000ns
quit

3.3.2 Synopsys中使能FSDB dump

  • 使用以下编译选项使能FSDB dump功能:
    -debug_access+pp
    -fsdb
    -P $VERDI_LIB/novas.tab $VERDI_LIB/pli.a

Note: Usage of -fsdb is needed/recommended only when you use old -debug_pp, -debug, or -debug_all.
举例如下:

%> vcs -debug_access [comp_options]
%&g
### 如何在 Verilog 中生成 FSDB 文件进行波形查看 为了在 Verilog 仿真过程中生成 FSDB 波形文件,可以采用多种方式来实现这一目标。以下是几种常用的方法: #### 方法一:通过 DO 文件控制 VCS 仿真的 FSDB 输出 创建一个 `.do` 脚本文件,在其中指定要保存的 FSDB 文件路径以及变量范围等内容。例如: ```tcl fsdbDumpfile "output.fsdb" fsdbDumpvars 0 TOP "+all" fsdbDumpon run fsdbDumpoff quit ``` 这种方式的优势在于无需修改原始 RTL 或 TB 代码,只需调整外部脚本即可改变调试行为[^1]。 #### 方法二:利用 `$fsdbDump*` 系统任务嵌入 Testbench 另一种常见做法是在测试平台 (Testbench) 的 `initial` 块内调用特定于工具链提供的系统任务来进行数据记录操作。对于支持 FSDB 格式的 EDA 工具而言,通常会有如下形式的任务可供选用: - `$fsdbDumpfile`: 设置输出文件名称; - `$fsdbDumpvars`: 定义需跟踪信号层次结构及其细节程度; 下面给出了一段简单的示例代码片段展示如何应用这些指令: ```verilog // 测试模块定义 module tb_example(); // ...其他声明... initial begin : dump_control $fsdbDumpfile("example_tb_output.fsdb"); $fsdbDumpvars(0, "tb_example", "+mda"); // 记录多维数组信息 end // ...其余逻辑... endmodule ``` 这种方法的优点是可以更精确地控制哪些部分的数据会被捕获下来,并且能够方便地与其他仿真设置集成在一起[^3]。 #### 方法三:借助命令行选项传递给编译器/解释器 某些情况下也可以直接向运行时环境传参的方式来简化流程。比如当使用 Cadence Xcelium 进行模拟时,则可以在启动 irun/xrun 实例之前附加相应的开关以指示期望的行为模式: ```bash irun -f my_simulation.f +define+FSDB_DUMP=ON \ +fsdb_filename="${SIM_CASE_NAME}.fsdb" ... ``` 这里 `${SIM_CASE_NAME}` 是预先设定好的 shell 变量,用来动态决定最终产生的日志文档的名字。这样做不仅有助于保持源码整洁度,同时也便于后续自动化构建系统的维护工作[^4]。 无论采取哪种途径,一旦完成了上述任一步骤之后,便可以通过配套的应用程序(如 Novas Debugger)加载对应的 .fsdb 文件进而直观观察电路内部状态变化情况了[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值