|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.4 T0 W9 }7 K9 ?( Y. I7 O
constructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,
( b8 \. [ j8 ?& t然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables
& A, V& Y- P, C$ {( S) {3 [: waClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等
6 S& U3 L$ W# b& y內部variables link起來.. u' }) L2 k! [6 M& v3 Q
如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作
- ]% X- R7 s! k# @2 D1 l0 U: k類似的動作.例如,
& o3 w, s6 R( C* I* Q* f8 {SC_MODULE(AAA){
* \" p2 ^7 Z1 k- {7 {; EMemory BBB;9 z0 Z7 Z: C: y0 D
Memory CCC;- g4 e* J. t' c% K3 v0 R, g( U
SC_CTOR(AAA):- [ ?' ]0 c1 C* D
BBB("BBB"),-------------->> member initialized
7 p8 K! q+ r4 p% ?! i9 \CCC("CCC") -------------->> member initialized
+ h( G/ F E; o, t{) y% e% `6 B- B& _
. k+ X' f" U2 c+ x}0 Z/ @: w' n# r, W( ?
};這種instantiate方式叫direct instantiation. |
|