将打包数组复制到解压缩数组

时间:2013-07-31 13:29:45

标签: system-verilog

我编写了一个代码,用于将压缩数组复制到解压缩数组中,如下所示:

module m1;

bit [2:0] temp;
bit temp1[2:0];
initial
begin
temp=3'b011;
temp1='{temp};
end 
endmodule

但它显示错误:“给定分配的分配模式项太少”
解决方案请。

2 个答案:

答案 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。