我正在使用定义宏来设置模块的路径,即`define DUT_PATH(CH) dut_top.u_channel_```CH``_mode
并在我们传递通道号的模块中使用这个定义宏,
模块 channel_oper # (int channel_num = 0) ( 输入逻辑 addr_base; ) ;
分配 addr_base = `DUT_PATH(channel_num).addr_base ;
端模块
在顶部文件中,我们将模块称为
通道操作(3);//channel_oper(channel_num)
我希望 addr_base 的输出为 dut_top.u_channel_3_mode.addr_base,但我得到的值分配为 dut_top.u_channel_channel_num _mode.addr_base和交叉取消引用错误。
您能否为此提供一个解决方案或任何建议,以使用定义宏的参数化变量。
在这种情况下,无法使用 genvar 或 generate 块,因为它不用于任何操作。这用于访问不同通道号的不同路径,我们从顶部模块传递通道号。模块通道操作从参数中获取通道号,然后转到该特定通道路径并获取变量。