【发布时间】:2019-09-03 09:25:10
【问题描述】:
确实,我有一个读取寄存器的任务:
task read_reg(bit[31:0] reg_addr,bit [0:31] rd_beat...);
如您所见,第一个输入参数是 32 位寄存器的地址。寄存器地址通过参数定义:
parameter int REG_0 = 32'h80440050; //R
所以当你调用任务读取寄存器时,可以将参数传递给任务:
read_reg(REG_0,….);
阅读例如REG_0。
现在,这是我想要更多参数化的任务调用,所以我不想将参数名称 REG_0 硬编码到其中,但我想部分通过另一个变量来处理它:
bit [1:0] num=0;
然后在调用任务时,我想使用变量“num”而不是硬编码 REG_0,所以类似于:
read_reg(REG_$num$,...)
只是我不知道如何将 num 的值(在上面的示例中为 0)处理到任务调用中。
我希望我现在能够给出更清晰的描述,并且希望有人知道如何做到这一点。
【问题讨论】:
-
嗨,欢迎来到 StackOverflow!很难理解你的问题。您能否尝试更清楚地编写问题并突出显示您的代码,以便人们可以更好地帮助您。
-
好的,抱歉我的解释不够清楚。
标签: system-verilog