的模塊2D數組我創建二維數組「數據」,我想將其用作內存/存儲。 在STRCNVTDATA中,我將它分配給我有的輸入(正弦波)。 在SHWAMPLPLUDE中,我想顯示LED上數據的振幅。在HEADMODULE中傳遞
我的問題是數據無法傳遞。
ERROR:HDLCompiler:661 'shwamplitude.v' Non-net port data cannot be of mode input
HEADMODULE
module SPI_Lab (...);
...
wire [7:0] data [99999999:0];
...
strcnvtdata M8 (CCLK, transfer, tmpdata, storagecount, data);
shwamplitude M6 (CCLK, storagecount, data, mled);
endmodule
STRCNVTDATA
module strcnvtdata(input clk, transfer, [7:0] tmpdata, output reg storagecount, output reg [7:0] data [99999999:0]);
always @(posedge clk)
begin
if (transfer==1)
data[storagecount] = tmpdata;
storagecount = storagecount + 1'b1;
if (storagecount == 99999999)
storagecount = 0;
end
endmodule
SHWAMPLITUDE
module shwamplitude(input clk, input storagecount, input reg [7:0]data[99999999:0] , output reg [7:0] mled);
reg [7:0] amplitude;
always @(posedge clk)
begin
if (data[storagecount] > data[storagecount-1])
amplitude = data[storagecount];
mled = amplitude;
end
endmodule
出於好奇,爲什麼vhdl標籤?你可以通過2D數組作爲VHDL中的端口信號嗎?是的你可以。你應該傳遞1億個成員數組嗎?工具通常不能處理大的堆棧存儲,並且模擬吞吐率會很糟糕。你能避免傳遞數組嗎?你可以在VHDL中,在同一個作用域(一個內存'模塊')中創建兩個'模塊'進程語句,儘管這無助於用一個大型的數組來描述一個模型。內存可以被抽象爲創建一個外部模型或爲了模擬目的而縮小尺寸。 – user1155120