AVM TLM
3章は読むだけ。
4章でついにTLMへ。
systemc メモ
error: multiple types in one declaration
エラーが出た上のファイルでclass宣言が;で終わっていない。
#include を展開した後、
class a
{
}
class b
{
};
class aの後に;が無いと、class bの所でこのエラーになる。
エラーを見ても、落ち着いて処理できるようなった今日この頃。
sc_exportなるキーワードを発見、もやもやしているsc_interfaceの理解につながりそうだ。sc_exportは、System Design with SystemCには載っていなくて、Ground upの方に載っている。読んでみよう。
The comments to this entry are closed.
Comments
> sc_exportなるキーワードを発見
自慢じゃないけど理解しとらんです。
readme を読むと、
sc_export を、他の sc_export に接続する場合、
parent_exp を child_exp に接続しなければならない。
つまり、"parent_exp(child_exp)" のようになる。
ports では、これが逆で、child_port(parent_port) のようになるが、
sc_exports でこれやるのは間違いで、エラボレート時にエラーを発生する。
大雑把に言えば、"further(closer)" のように接続し、
further の port/export は、チャネルからより遠い。
この further(closer) 則は、export だけでなく port の場合も同様である。
階層の port では、最上位のモジュールの port にチャネルを接続する。
つまり、parent_port==closer なので、child_port(parent_port) となる。
sc_export では、チャネルはインスタンスの内側に埋め込まれている。
つまり、child_exp==closer なので、parent_exp(child_exp) となる。
なんだって...
Posted by: noboshemon | 2007.03.07 10:54 AM
sc_exportは、SystemC 2.1で導入されたものです。
ですから、、System Design with SystemCには載っていなくて、Ground upに載っています。
Ground upはSystemC 2.1対応ですから、
AVMはsc_interfaceとsc_exportを多用していますので、
実践的な例題としては非常にいいと思います。
Posted by: 原山みや | 2007.03.10 09:09 AM
>>noboshemonさん
むむむ、portの親子関係ですか・・・
これってsystemc moduleの話では無いですよね。
C++のレベルで、関数を呼び出す側が親で、呼び出される側
(実装が書いてある方)が子という認識かな。
>>原山みやさん
情報ありがとうございます。
AVMはシンプルな記述が多いので、わかりやすいですね。
もう少し進めてみます。
Posted by: なつたん | 2007.03.12 12:22 PM