下面的Verilog代碼使用多維寄存器陣列來存儲數據。verilog中多維數組值的分配
parameter DSIZE = 8;
parameter ASIZE = 4;
input [DSIZE-1:0] wdata;
input wclk,wen;
reg [ASIZE:0] wptr;
parameter MEMDEPTH = 1<<ASIZE;
reg [DSIZE-1:0] ex_mem [0:MEMDEPTH-1];
always @(posedge wclk)
if (wen)
ex_mem[wptr[ASIZE-1:0]] <= wdata;
我沒有正確理解在其中ex_mem
在wdata
分配值的最後一個賦值語句會發生什麼。括號內的部分(wptr[ASIZE-1:0]
)與ex_mem
關聯的部分返回並將ex_mem
的哪個位置返回wdata
得到存儲?
我不太清楚你不瞭解什麼。 'wptr [ASIZE-1:0]'計算爲'wptr'的'ASIZE'最低位,當解釋爲'ex_mem'中的位置時,'wdata'被存儲到該位置。 – mkrieger1