如何修复此foreach循环变量语法错误?

How do I fix this foreach loop variable syntax error?

提问人:Ankit Kaushik 提问时间:11/12/2023 最后编辑:toolicAnkit Kaushik 更新时间:11/13/2023 访问量:42

问:

我正在尝试在SystemVerilog中使用。我在这里做错了什么?foreach

`define size 3:0 //variable

module tb;
  reg [7:0] temp;
  initial begin
    temp=8'd25;
    $display("%d",temp[`size]);
    foreach((temp[`size])[i])
      $display("%d",temp[i]);
    (temp[`size])[i]=1'b0;
  end
endmodule
foreach 系统-verilog

评论


答:

0赞 toolic 11/12/2023 #1

该语法对于 不正确。你只想使用 .foreach[i]

`define size 3:0 //variable

module tb;
  reg [7:0] temp;
  initial begin
    temp=8'd25;
    $display("%d",temp[`size]);
    foreach(temp[i])
      $display("%d",temp[i]);
  end
endmodule

输出:

 9
0
0
0
1
1
0
0
1

评论

0赞 Ankit Kaushik 11/12/2023
我只想循环 temp['size] 而不是整个 temp 总线
2赞 dave_59 11/12/2023 #2

你希望可以在 foreach 循环中放置一个条件

foreach(temp[i])
       if (i inside {[`size]})
          $display("%d",temp[i]);