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:mkGCD (5, clocked_by dClkIn) その2:mkGCD#(5) a_GCD (gcdIfc)
パラメータの指定方法が違います。また、その2ではモジュールの引数にインターフェスのインスタンスを指定しています。
クロックやリセットを明示的に指定する場合は、モジュールの引数としてインターフェスを指定する前に書く必要があります。
検証、Verification、Bluespec SystemVerilog