Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 在Verilog中可以多次使用循环变量吗?_Loops_Verilog_Variable Names - Fatal编程技术网

Loops 在Verilog中可以多次使用循环变量吗?

Loops 在Verilog中可以多次使用循环变量吗?,loops,verilog,variable-names,Loops,Verilog,Variable Names,我有两个如下所示的阵列: reg [3:0] foo [31:0]; reg [7:0] bar [63:0]; 它们需要在始终块中初始化,如下所示: integer i; integer j; always @(posedge clk) begin if(reset) begin for(i=0; i<32; i=i+1) foo[i] <= 4'h0; for(j=0; j<64; j=j+1) bar[j] <= 8'h0; end end

我有两个如下所示的阵列:

reg [3:0] foo [31:0];
reg [7:0] bar [63:0];
它们需要在
始终
块中初始化,如下所示:

integer i;
integer j;
always @(posedge clk) begin
  if(reset) begin
    for(i=0; i<32; i=i+1) foo[i] <= 4'h0;
    for(j=0; j<64; j=j+1) bar[j] <= 8'h0;
  end
end
同样,对于
genvar
变量,答案也是正确的吗

这个问题是关于Verilog的,不是关于SystemVerilog的


提前谢谢

对于循环,此问题不特定于
。在任何程序代码块中,如果在读取变量之前先写入变量,并且在程序块之外不使用它,则会将其合成为临时变量。你可以写,然后一遍又一遍地读。每对都会被分开处理


当使用
for
循环时,这基本上就是for循环展开时发生的情况。它会被分配一个常量值,然后再分配另一个。

是的,它是有效的,并且会执行您认为它可以执行的操作。不幸的是,我无法尝试合成它,因为我目前缺少必要的工具。
integer k;
always @(posedge clk) begin
  if(reset) begin
    for(k=0; k<32; k=k+1) foo[k] <= 4'h0;
    for(k=0; k<64; k=k+1) bar[k] <= 8'h0;
  end
end