[SystemVerilog] bind での接続

bind にて接続を記述することが出来ます。

  • サンプルコード

  • module sub_mm();
      initial begin
        #2;
        $display("%m");
      end
    endmodule
    
    module sub_m(input reg[3:0] in);
      sub_mm hogehoge();
      initial begin
        #1;
        $display("%m");
        #3;
        $display(in);
      end
    endmodule
    
    module testbench ();
    
      reg[3:0] tmp=10;
    
      // sub_m hoge(.in(tmp)),
      //       mumumu(.in(tmp));
      binding m_bind();
    
      initial begin
        #100;
        $finish(1);
      end
    
    endmodule: testbench
    
    module binding();
    
      bind testbench sub_m hoge(.in(tmp));
      bind testbench sub_m homuhomu(.in(tmp));
    
    endmodule
  • 実行結果

  • # testbench.homuhomu
    # testbench.hoge
    # testbench.homuhomu.hogehoge
    # testbench.hoge.hogehoge
    # 10
    # 10
    


説明

binding モジュールを作成して、その中で接続を記載してます。

bind testbench sub_m hoge(.in(tmp));

テストベンチと、sub_mモジュールの hoge の in信号に テストベンチの内部変数(tmp)を接続しています。


複数インスタンスしたい場合も IEEE1800-2012に記載があるのですが、 今回だとうまく記述出来なかった。。。

  • LRM p703

bind cpu: cpu1, cpu2, cpu3 fpu_props fpu_rules_1(a, b, c);

関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数