スコープ内変数へのアクセス
generate for (w=0; w<WAY; w=w+1) begin: way reg [N_LINE-1:0] valid; reg [N_LINE-1:0] dirty; end endgenerate always @(posedge CLK or negedge RST_X) begin if(!RST_X) begin for(i=0; i<WAY; i=i+1) begin way[i].valid <= 0; way[i].dirty <= 0; end end else begin end end
generate forのスコープ内で定義したreg変数の初期化や読み出しの記述をスコープの外で行いたいのだが,Icarus Verilogを通すと
error: Scope index expression is not constant: i
となって出来ない.どうやらスコープの指定は定数でないといけないらしい.面倒だなぁ.