带有define宏的verilog循环

带有define宏的verilog循环,verilog,Verilog,我正在编写我的第一个Verilog代码:我定义了一些define宏ADDR1,ADDR2,`ADDR3。。。对于每个项目,这些定义宏的数量是不同的。在我的代码中,我编写了一个循环: for (i=0; i<num_of_macros;i++) begin `ADDR1 = 0; `ADDR2 = 0; ... (according to the macros number) end 对于(i=0;i否,您不能存储宏运行时的值,但对于您的固定需求,我们可以按如下方式进行存

我正在编写我的第一个Verilog代码:我定义了一些define宏
ADDR1,
ADDR2,`ADDR3。。。对于每个项目,这些定义宏的数量是不同的。在我的代码中,我编写了一个循环:

for (i=0; i<num_of_macros;i++) begin
   `ADDR1 = 0;
   `ADDR2 = 0;
   ... (according to the macros number)
end

对于(i=0;i否,您不能存储宏运行时的值,但对于您的固定需求,我们可以按如下方式进行存储

`define ADDR(i) i

module tb;

integer j;
initial
begin
  for (j=0;j<10;j=j+1)
  begin
    $display("%d", `ADDR(j));
  end
end
endmodule


Result:

# Loading work.tb(fast)
# run -all
#           0
#           1
#           2
#           3
#           4
#           5
#           6
#           7
#           8
#           9
#  quit -f
`define ADDR(i)i
模块tb;
整数j;
最初的
开始
对于(j=0;j