-1

我编写了一个将打包数组复制到未打包数组的代码,如下所示:

module m1;

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

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

4

2 回答 2

3

打包数组和解包数组是不同的数据结构,不能直接从其他类型赋值。

对数组使用分配模式必须基于位置或基于索引。例如,

temp1 = '{temp[2], temp[1], temp[0]};

解决方案是在作业的 LHS 处使用流式运算符。

{>>{temp1}} = temp;
于 2013-07-31T13:52:15.913 回答
0

您可能想要使用大小参数。这应该有效:

parameter MYSIZE = 3;
bit [MYSIZE-1:0] temp1;
bit temp2[0:MYSIZE-1];

{>> MYSIZE{temp2}} = temp1;

我知道这适用于 VCS。

于 2015-02-10T00:22:27.097 回答