bambooflow Note

検証環境モデル構成

最終更新:

bambooflow

- view
メンバー限定 登録/ログイン

SystemCの検証環境モデル構成



おそらく3.のモデル構成が多くに記述する形になる。


1.小規模なモデルテスト

比較的小さなモデルの検証をしたいときのモデル構成。

#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (verif_model_s.png)

sc_mainのところで、
  • 検証モデルのオブジェクトを実体化
  • クロック信号を生成、接続
  • 入出力信号の接続
  • テストパタン用意
  • シミュレーション時間の更新
  • 必要があれば、テストパタン用意、時間更新を繰り返す。
をする。

メインとモデルの2ファイルで済む。
しかし、シミュレーションがしにくかったり拡張しにくかったりする。


サンプルプログラム

template_s.tgz
  • 階層構造
sc_main
 |==> myModel(MyModel)

  • MyModel機能
    • クロックなし
    • 4つの値を入力(in_a, in_b, in_c, in_d)
    • 合計出力(out_total)
    • 平均出力(out_ave)
    • 最小値出力(out_min)
    • 最大値出力(out_max)



2.中規模なモデルテスト

モデルが複雑になり、テストパタンが大きくなったとき、
別にテストベンチを用意して検証を実施するようなモデル構成。

#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (verif_model_m.png)

sc_mainでは、
  • モデルの実体化
  • テストベンチの実体化
  • クロック信号生成、接続
  • モデル間信号接続
  • シミュレーション開始sc_start()
をする。

シミュレーションの終了は、テストベンチのプロセス内にsc_stop()を入れて、必要なタイミングで終了するようにする。
テストモデルとテストベンチとメインで構成する。
メインプログラムに接続等を記述するので、環境を移動させるのが難がある。


サンプルプログラム

template_clk_m.tgz
  • 階層構造
sc_main
   |==> myModel(MyModel)
   |==> testBench(TestBench)

  • MyModel機能
    • クロック動作
    • 4つの値を入力(in_a, in_b, in_c, in_d)
    • 合計出力(out_total)
    • 平均出力(out_ave)
    • 最小値出力(out_min)
    • 最大値出力(out_max)



3.大規模なモデルテスト

検証環境が複雑になったときのモデル構成。
テストベンチとモデルの上にトップモジュールをおく。

#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (verif_model_l.png)

sc_mainでは、
  • TOPモジュールの実体化
  • シミュレーション開始sc_start()

TOPモジュールでは、
  • モデルの実体化
  • テストベンチの実体化
  • クロック信号生成、接続
  • モデル間信号接続
をする。

ファイルが多くなって複雑にみえるかもしれないが、一度覚えてしまえばモデル追加や検証するのが容易。
この形は、sc_mainで1つのオブジェクト(TOPモジュール)を実体化するだけで済むので、規模の小さいモデル構成でもはじめからこの形にしたほうがよい。

サンプルプログラム

template_clk_l.tgz
  • 階層構造
sc_main
 |==> syscTop(SyscTop)
      |==> myModel(MyModel)
      |==> testBench(TestBench)

  • MyModel機能
    • クロック動作
    • 4つの値を入力(in_a, in_b, in_c, in_d)
    • 合計出力(out_total)
    • 平均出力(out_ave)
    • 最小値出力(out_min)
    • 最大値出力(out_max)

タグ:

SystemC サンプル
記事メニュー
ウィキ募集バナー