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