|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.9 K( W+ c8 b2 M7 `* u$ E: z
constructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,, A& {1 a8 F# i5 n" ^
然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables7 W8 L7 \. a6 A8 _+ [
aClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等% u H$ S+ O C3 n3 M7 }% P
內部variables link起來.
1 }: R- ^7 {/ H3 Z7 L/ n3 n3 w如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作) K, F0 [1 ^4 V3 G0 B
類似的動作.例如,
0 ]. R: ]. c8 ?4 xSC_MODULE(AAA){1 E! c3 Q/ H$ Y9 n
Memory BBB;
6 {: v* F& }* j5 G# N- DMemory CCC;
, s) u$ Z, g! {6 a2 oSC_CTOR(AAA):
1 Q; f7 l# ?/ n; h6 ^ HBBB("BBB"),-------------->> member initialized. O6 L/ l r: ?2 U. M4 _# ?
CCC("CCC") -------------->> member initialized
; E O, z" X% {{
- u/ e S) B7 n0 d H6 S8 h
+ u+ m. ~* z; r% T" `4 u}& Q: B1 a3 c E. U4 L
};這種instantiate方式叫direct instantiation. |
|