Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

Bluespec SystemVerilog : モジュール引数のアトリビュート

Verification Engineerの戯言

Bluespec SystemVerilogでは、モジュール引数には次のようなアトリビュートを持っている。

    ・ osc=
    ・ gate=
    ・ gate_inhigh=
    ・ gate_unused=
    ・ reset=
    ・ clocked_by=
    ・ reset_by=
    ・ port=

リファレンス・ガイドの13.6.1 Argument-level clock and reset naming attributesの例を見てみると、

    (* synthesize *)
    module mkMod((* osc="ACLK", gate="AGATE" *) Clock clk,
                 (* reset="RESET" *)            Reset rst,
                                                ModIfc ifc);

のように各引数の前にアトリビュートを付けることができるようです。
(* osc="ACLK", gate="AGATE *)はClockインターフェース、
(* reset="RESET" *)は、Resetインターフェースのアトリビュートになります。

この記述から次のようなVerilog HDLコードに変換されます。

    module mkMod(CLK, RST_N, ACLK, AGATE, RESET, ...

アトリビュートに対応したポートが生成されます。


検証、Verification、Bluespec SystemVerilog