shtaxxx日記

コンピュータアーキテクチャについて研究している研究者の日記や技術紹介

スコープ内変数へのアクセス

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

となって出来ない.どうやらスコープの指定は定数でないといけないらしい.面倒だなぁ.