|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.
; P; d$ g0 U1 Z/ qconstructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,
$ E) U' T7 n8 ` h$ q; m4 R q: q5 {然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables
" q5 U% j+ V7 [aClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等, k0 r3 N7 Q+ }6 k7 c
內部variables link起來.
3 }( A; h; y8 Z0 ^6 Y U& ]" D如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作
, U9 S4 E8 |# S5 ]' @% `, Y) a' n類似的動作.例如,
; d) s$ A- e' U3 z$ o1 dSC_MODULE(AAA){
/ e# e9 m0 d+ c+ V7 @Memory BBB;4 ~4 d- Z1 M' L' _/ I, o0 T D
Memory CCC;
9 k" E0 ^: Y2 lSC_CTOR(AAA):
4 K @5 G- g4 E% i, a5 EBBB("BBB"),-------------->> member initialized
/ X% b0 q! \, iCCC("CCC") -------------->> member initialized 6 K; T% F+ h4 H
{
w- c! C2 a7 W1 H
' H" c% D. a4 _}) q3 w6 g) M7 X
};這種instantiate方式叫direct instantiation. |
|