Vengineerの妄想(準備期間)

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

Bluespec SystemVerilog : モジュールのインスタンス化(その2)

Verification Engineerの戯言


基本的には、(その1)と同じですが、ちょっと違います。

リファレンス・ガイトの5.4.2 Long form instantiationnの例を見ていきます。

    module mkTest (); //declares a module mkTest
      ... //
      ArithIO#(bit [31:0]) gcdIfc(); //declares the interface instance
      mkGCD#(5) a_GCD (gcdIfc); //instantiates module mkGCD
      ... //sets N=5, names module instance a_GCD
    endmodule: mkTest //and interface instance gcdIfc

最初の行でインターフェースをインスタンス化し、次の行でモジュールをインスタンス化します。
モジュールをインスタンス化する部分が(その1)とはちょっと違います。

  その1:mkGCD (5, clocked_by dClkIn)
  その2:mkGCD#(5) a_GCD (gcdIfc)

パラメータの指定方法が違います。また、その2ではモジュールの引数にインターフェスのインスタンスを指定しています。

クロックやリセットを明示的に指定する場合は、モジュールの引数としてインターフェスを指定する前に書く必要があります。

検証、Verification、Bluespec SystemVerilog