我编写了一个将打包数组复制到未打包数组的代码,如下所示:
module m1;
bit [2:0] temp;
bit temp1[2:0];
initial
begin
temp=3'b011;
temp1='{temp};
end
endmodule
但它显示一个错误:“给定分配的分配模式项目太少”
请解决。
我编写了一个将打包数组复制到未打包数组的代码,如下所示:
module m1;
bit [2:0] temp;
bit temp1[2:0];
initial
begin
temp=3'b011;
temp1='{temp};
end
endmodule
但它显示一个错误:“给定分配的分配模式项目太少”
请解决。
打包数组和解包数组是不同的数据结构,不能直接从其他类型赋值。
对数组使用分配模式必须基于位置或基于索引。例如,
temp1 = '{temp[2], temp[1], temp[0]};
解决方案是在作业的 LHS 处使用流式运算符。
{>>{temp1}} = temp;
您可能想要使用大小参数。这应该有效:
parameter MYSIZE = 3;
bit [MYSIZE-1:0] temp1;
bit temp2[0:MYSIZE-1];
{>> MYSIZE{temp2}} = temp1;
我知道这适用于 VCS。