|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.
+ ~& C* D6 }, i! x; oconstructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,
3 b! ^% a5 {; U' @9 N然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables; ]: G/ H4 g( _0 e
aClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等" @: a: z# p* d# M' E0 N0 ~# j# U
內部variables link起來.
' f3 j3 I/ P d% w+ Y4 n如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作/ ?+ M- u: [ }; j
類似的動作.例如,
1 ?9 p/ b% v ?SC_MODULE(AAA){7 T% Z2 u- E6 y |
Memory BBB;
& Q% M# r3 s; XMemory CCC;
) J( \. {$ K5 c8 O c: V& d) R Y5 {( jSC_CTOR(AAA):
3 n# \: M. H- cBBB("BBB"),-------------->> member initialized6 q; P. r7 g: n' F% Y5 L: q
CCC("CCC") -------------->> member initialized
9 y P3 K" R# A$ w& B) \{' N, f. X H a
- P- s; ~) T* Y) W) k/ i. j}
. _* |* r- B4 T$ y2 F( Z};這種instantiate方式叫direct instantiation. |
|