Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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
System verilog SystemVerilog动态访问子阵列_System Verilog - Fatal编程技术网

System verilog SystemVerilog动态访问子阵列

System verilog SystemVerilog动态访问子阵列,system-verilog,System Verilog,我在编译代码行9时出错,因此我不确定如何动态访问数组。我必须从收到的字节构建逻辑[255:0]。 (看起来我必须检查SystemVerilog:()的数据类型。 提前谢谢 module test; task test_array (logic [7:0] B); static logic [255:0] l_ar_B; l_ar_B[7:0] = B; for(int i=0; i<32; i++) l_ar_B[(i*8+

我在编译代码行9时出错,因此我不确定如何动态访问数组。我必须从收到的
字节构建
逻辑[255:0]
。 (看起来我必须检查SystemVerilog:()的数据类型。 提前谢谢

module test;

    task test_array (logic [7:0] B);
      static logic [255:0] l_ar_B;

      l_ar_B[7:0] = B;

      for(int i=0; i<32; i++)
        l_ar_B[(i*8+7) : (i*8)] = B; // Error-[IRIPS] Illegal range in part select
      $stop();

    endtask

    initial begin
      $display("Start");
      test_array(8'h11);
    end

endmodule
模块测试;
任务测试_阵列(逻辑[7:0]B);
静态逻辑[255:0]l_\u B;
l_ar_B[7:0]=B;

对于(int i=0;i当将范围选择与
[M:N]
语法一起使用时,
M
N
必须是常量。应使用语法为
[s+:W]的部分选择寻址
,其中
W
是宽度的常数,
s
可以是指示起始位位置的变量。
+:
自IEEE Std 1364-2001(Verilog 2001)以来一直存在。请参阅


for(int i=0;i当将范围选择与
[M:N]
语法一起使用时,
M
N
必须是常量。应使用语法为
[s+:W]的部分选择寻址
,其中
W
是宽度的常数,
s
可以是指示起始位位置的变量。
+:
自IEEE Std 1364-2001(Verilog 2001)以来一直存在。请参阅


for(int i=0;iThanks.非常有用,没有找到任何地方。@albertwaissman,在这个网站上,“谢谢”最好放弃投票并勾选接受答案图标(如果答案满足您的问题并且是最佳答案)。这有助于其他人知道你没有在寻找更多答案,并有助于那些与你有相同问题的人。谢谢。非常有用,没有找到任何地方。@albertwaissman,在这个网站上,“谢谢”最好是放弃投票并勾选“接受答案”图标(如果答案满足你的问题并且是最佳答案)。这有助于其他人知道你没有寻找更多答案,并帮助那些与你有相同问题的人。
for(int i=0; i<32; i++)
  l_ar_B[(i*8) +: 8] = B;