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

如何在SystemVerilog任务中打印作为参数传入信号的层次化名称

Verilog任务优化:自动显示信号层次化名称

优化方案

把重复代码封装为带参数的可复用任务,借助Verilog系统函数自动获取信号的完整层次化名称,彻底摆脱硬编码信号名的繁琐。

可复用任务代码

task monitor_signal;
  ref logic sig; // 以引用方式传入信号,保留层次关联
  begin
    @(sig);
    // $fullname返回信号的完整层次化路径
    $display("Signal %s changed at time %t", $fullname(sig), $time);
    failed = 1;
  end
endtask

调用方式

直接传入需要监控的目标信号即可,无需修改任务内部代码:

// 监控baud_rate_A
monitor_signal(testbench.top.baud_rate_A);
// 监控其他信号
monitor_signal(testbench.top.baud_rate_B);
monitor_signal(testbench.top.data_bus);

关键说明

  • ref类型参数:传递信号时保留其层次化信息,确保$fullname能正确获取完整路径
  • $fullname(sig):系统函数,返回传入信号的完整层次化名称(如testbench.top.baud_rate_A),替代硬编码的固定字符串
  • 复用性:无论监控多少个信号,只需调用任务并传入目标信号,自动适配打印内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 15:35:02