You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在iverilog仿真的GTKWave中显示parameters与localparameters值?

GTKWave显示Verilog Parameters/LocalParameters的实用方案
  • 将参数映射为调试信号输出
    GTKWave仅能追踪仿真过程中实际存在的硬件信号,而parameter/localparameter属于编译期常量,不会默认出现在波形文件中。最可靠的方式是在代码里把参数赋值给一个wire/reg并引出到顶层端口:

    module demo_module #(
        parameter DATA_WIDTH = 16,
        localparam ADDR_WIDTH = DATA_WIDTH >> 1
    )(
        output wire [31:0] dbg_DATA_WIDTH,
        output wire [31:0] dbg_ADDR_WIDTH
    );
        assign dbg_DATA_WIDTH = DATA_WIDTH;
        assign dbg_ADDR_WIDTH = ADDR_WIDTH;
        // 模块核心逻辑...
    endmodule
    

    重新编译仿真后,就能在GTKWave的信号列表里找到这些调试信号,它们的值就是对应参数的固定值。

  • 用系统函数打印参数值(辅助验证)
    如果不想修改代码添加调试端口,可以在仿真代码里加入$display直接在终端打印参数值:

    initial begin
        $display("DATA_WIDTH = %0d, ADDR_WIDTH = %0d", DATA_WIDTH, ADDR_WIDTH);
    end
    

    编译时记得加上iverilog -g2012参数以确保支持Verilog-2012标准的参数引用,运行仿真后终端会直接输出参数的编译值。

  • 尝试GTKWave的手动搜索添加
    部分场景下,iverilog会把参数信息写入VCD文件但默认隐藏。可以在GTKWave中点击Edit -> Insert -> Add Items by Name,在搜索框输入参数名称(比如DATA_WIDTH),如果能匹配到结果,直接添加到波形窗口即可。不过这个方法的兼容性取决于编译选项和代码结构,不一定每次都有效。

内容的提问来源于stack exchange,提问作者AZ123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 20:27:18