shtaxxx日記

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

generateなしでforとスコープが使えるだと・・・

ふとtwitterでgenerateなしのfor文を利用している例があることを知り,試してみました.

generateなしでforをべた書き,スコープを定義

module testtest;
    wire [3:0]  OUT0, OUT1;
    test uut (OUT0, OUT1);
    initial begin
        $dumpfile("uut.vcd");
        $dumpvars(0, uut);
    end
    initial begin
        #10;
        $finish;
    end
endmodule
  
module test(OUT0, OUT1);
    output [3:0] OUT0, OUT1;
    genvar i;
    for(i=0; i<8; i=i+1) begin: scope
        function [3:0] func;
            input [3:0] in;
            func = in + i;
        endfunction
        wire [3:0] tmp;
        assign tmp = func(4'h1);
    end
    assign OUT0 = scope[0].tmp;
    assign OUT1 = scope[1].tmp;
endmodule

Icarus Verilogでのシミュレーション結果