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