|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.+ y! `( a/ m4 ]
constructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,+ `: R0 p8 b' F' N0 ]
然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables/ f) T: w: S' t D s
aClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等
7 G# Y- a3 |! z5 E) U內部variables link起來.
3 J! `, y4 G1 d1 y如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作$ Y y8 n/ K t% T0 C
類似的動作.例如,( i. D' i E' r* N8 x# @
SC_MODULE(AAA){1 C* g% u5 x# h0 k" w
Memory BBB;
* [$ S) q* j1 |2 h- ?Memory CCC;% @4 e4 r" K X2 V# {) z1 Z
SC_CTOR(AAA):' z! P ~7 j2 o2 N/ ]$ z1 U1 O
BBB("BBB"),-------------->> member initialized
3 I* ?8 q# U, w0 [: B$ o+ o0 _* @CCC("CCC") -------------->> member initialized
* I3 D- |2 Z' r+ c8 M{. e3 V, R. ~/ `$ l% x' K
' ^4 ^+ {; T" n- y}
L; T1 F4 L2 B6 x# f$ p};這種instantiate方式叫direct instantiation. |
|