-2
我寫了代碼複製堆積陣列爲低於解壓數組:複製打包數組解壓縮陣列
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;
您可能需要使用size參數。這應該工作:
parameter MYSIZE = 3;
bit [MYSIZE-1:0] temp1;
bit temp2[0:MYSIZE-1];
{>> MYSIZE{temp2}} = temp1;
我知道這適用於VCS。
{>> {temp1}} = temp; 這不起作用。 而對於上面的那個,我們可以直接用「'」運算符或者轉換賦值。 ,如temp1 = {temp [2],temp [1],temp [0]}; 但我需要另一個直接分配值。 – Thunderstromz
請評論你正在使用的模擬器。 LHS上的流式運算符可能無效或在某些模擬器或合成器中實現。 – jclin