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




TOP > SystemC > ポートとイベントの定義
ポートの定義
ポートは外部入出力のピンを表すものであり、以下の4種類がある。各ポート名は、センシティビティ・リストに指定できる。すなわち、ある入力ポートINAに何かしらの情報が入力された時、プロセスメソッドが実行されるように記述することも可能。
  • sc_in<type> ポート名・・・入力専用ポート
  •   (例)sc_in<bool> INA;
  • sc_out<type> ポート名・・・出力専用ポート
  •   (例)sc_out<bool> OUTA;
  • sc_inout<type> ポート名・・・入出力専用ポート
  •   (例)sc_inout<bool> INOUTA;
  • sc_in_clk クロックポート名・・・クロック専用ポート
  •   (例)sc_in_clk CLK;

    ポートは直接演算できないので、一時的に値を別オブジェクトに格納してから演算を行う。ポートの値を読み込むにはread()メソッドを使用し、ポートに書き込む(データを送信する)時は、write()メソッドを使用する。
    (例)
      sc_uint<bool> tmp;
      tmp = INA.read();//一時的に読み込む
      OUTA.write(tmp << 1);//出力ポートに送信する

    イベントの定義
    イベントはプロセスの実行のトリガや、待ち合わせに使用する。例えば、あるプロセスAがプロセスBの終了の合図を受け取ってから実行される時は、プロセスBがイベントCを発行する。プロセスAはイベントCが引き金となり動く。
    このようなモジュールを作成する時は、モジュール内でイベントを定義してプロセスAではイベントCを通知(notify)し、プロセスBではイベントCを待つ(wait)か、センシティビティ・リストでイベントCをトリガとして起動をかける。

    イベントの宣言方法は、「sc_event イベント名」でモジュールヘッダーファイル内に宣言する
      (例)sc_event st;





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