System verilog SystemVerilog动态访问子阵列
我在编译代码行9时出错,因此我不确定如何动态访问数组。我必须从收到的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+
字节构建逻辑[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;