ご覧のとおり、下のコードでは、多次元の配列を使ってデータを格納しています。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
に値を割り当てられる最後の代入文で何が起こるか分かりません。 ex_mem
に関連付けられている括弧(wptr[ASIZE-1:0]
)の部分は、ex_mem
のどの場所に返され、wdata
に格納されますか?
私はあなたが理解していないことはよく分かりません。 'wptr [ASIZE-1:0]'は 'wptr'の' ASIZE'の下位ビットを評価し、 'ex_mem'の位置として解釈すると、' wdata'はその位置に格納されます。 – mkrieger1