bambooflow Note

インターフェースとポートとチャネル

最終更新:

bambooflow

- view
メンバー限定 登録/ログイン
SystemCのモデリングでは、モジュール間の通信にインターフェース、ポートおよびチャネルを使用する。
これは、従来のハードウェア記述よりも抽象度をあげるためである。


インターフェースとポートとチャネル

インターフェース

インターフェースはvirtual=0のメソッドのみで構成された抽象クラス(インターフェース・クラス)。
インターフェース・クラスはsc_interfaceを継承する。

インターフェースはポートとチャネルの基底クラスとなる。
ポートとチャネルが共通のインターフェースを持つことで接続が可能となる。
インターフェースは通常入力と出力の2つのインターフェースを準備する。


ポート

モジュールが外部との通信を行うための口。

template<class IF, int N=1>
class sc_port : ...
{
public:
    IF* operator->();
};
 
sc_portのテンプレートクラスは2つの引数をとる。
sc_portの<>には第一引数は、インターフェースを書く。
第二引数は、ポート数を書く。Nを1より大きくすることで多重ポートが実現可能。
するとsc_portはインターフェースを継承し、インターフェースのメソッドが使用できるようになる。ただし、シミュレーション実行前にチャネルとの接続が必要。
ポートのインターフェースメソッド呼出しは->を使用する。これは、operator->()により実現している。


チャネル

記事メニュー
目安箱バナー