« SystemC メモ | Main | 今日の読書 »

2006.09.24

SC_MODULE

Systemc: from the Ground Upから

どうもSC_MODULEの書き方が気持ち悪かったのが解決。(p59)
SC_MODULE module_a; ならわかる。もしくは、SC_MODULE("module_a")でしょ。
なんで、SC_MODULE(module_a)なんだとずっと気になっていました。

SC_MODULEはsc_module.hでこう定義されていました。

#define SC_MODULE(user_module_name)                                           \
    struct user_module_name : sc_module

なので、SC_MODULE(module_a)というのは、

struct module_a : sc_module

に「マクロで」展開されます。要するにsc_moduleを継承したstructを定義している。なんか微妙。
(p70を見るとEDAツールの都合もあるみたい)


続いて、p64には、コンストラクタで引数を与えたい場合は、SC_CTORマクロを使わずに
書く方法が乗っている。

ちなみにSC_CTORの定義も、sc_module.hの中に。


#define SC_CTOR(user_module_name) \
typedef user_module_name SC_CURRENT_USER_MODULE; \
user_module_name( sc_module_name )

そのときは、SC_HAS_PROCESSを使うと。

|

« SystemC メモ | Main | 今日の読書 »

Comments

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/18154/12020581

Listed below are links to weblogs that reference SC_MODULE:

« SystemC メモ | Main | 今日の読書 »