ためになるホームページ お問い合わせ




TOP > SystemC > SystemCファイル構成[ヘッダーファイル編]
システムファイルの記述
システムファイルでは、各モジュールのインスタンス化及び信号の接続を行う。システムファイルは、sc_mainマクロを使い(C++でいうmain)、シミュレーションを実行させる。

モジュールのインスタンス化
モジュールのインスタンス化は、C++のオブジェクトのインスタンス化方法と一緒。
尚、この時に必ずモジュール名を引数にとり初期化する事。

信号の定義
モジュールのポート接続のための信号を定義する。信号の定義には、sc_signal,sc_clkを使用する
  (例)sc_signal<bool> INPUT;

モジュールと信号の接続
モジュールと信号の接続は、モジュール内で定義したポートを全て接続する必要がある。接続する記述は以下の2種類があるが、2番をお勧めする
  • モジュール内で定義したポート順に接続する
  •   (例)(*moduleA)(INPUT);
  • 各メンバ変数にアクセスし、接続する(お勧め)
  •   (例1:ポインタの時)moduleA->INA(INPUT);
      (例2:オブジェクトの時)moduleA.INA(INPUT);

    シミュレーションの実行
    シミュレーションの実行は、sc_start()で実行させる。

    システムファイルの例
    /*!
     *******************************************************************************
     * \file system.cpp
     * \brief システムファイルの例
     *
     *******************************************************************************
     */
    
    /*!
     *******************************************************************************
     * \fn int sc_main(int argc, char* argv[])
     * \brief システムファイル
     *
     *******************************************************************************
     */
    #include "systemc.h"
    #include "module.h"
    
    int sc_main(int argc, char* argv[])
    {
      int i;
      sc_signal INA;
      sc_signal OUTB;
    
      MODULEA moduleA("module");
      moduleA.IN(INA);
      moduleA.OUT(INB);
    
      for(i = 0; i < 10; i++)
      {
        INA = i % 2;
        sc_start(50, SC_NS);
      }
      sc_start();
      return 0;
    }
    
    





    Copyright 2007 ためになるホームページ All Rights Reserved.