5. 5. 1 sc_interface
SystemC の場合、 インタフェースは直接・間接に sc_interface を継承して作ります。
例えば、CPU1 で見たように、次のように書きます。
#include <systemc.h>
class mem_if : virtual public sc_interface
{
public:
virtual void writeDirect(int&, int *) = 0;
virtual void readDirect(int&, int *) = 0;
};
これは mem_if というインタフェースのクラスを定義している例です。 この定義によると、mem_if という インタフェースを使うなら
- writeDirectとreadDirectという二つの関数を用意して下さい、
- それらの関数の引数の型はこれこれですよ
という ような意味になります。
sc_interface についての、 DoxyGen で生成した情報は次のところにあります。 http://www.iro.umontreal.ca/~chareslu/systemc-2.0.1/classsc__interface.html
sc_interface の継承関係の図は次のようになっていますが、
横に長いので、左右二つに分けて示します。


しかしこれを見ると primitive channel と sc_clock のインタフェース が sc_interface を継承して いるということが示されているだけです。 sc_interface で大切なことは、次のメンバ関数です。
