|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.
9 E5 `0 _: k8 j3 V; Jconstructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,& \0 z P4 x+ C! P# t4 ^
然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables7 E, |% H7 U* W3 T! t
aClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等
; I/ n8 v: o6 H. Y內部variables link起來.
6 C+ m: B7 N/ U/ }# c; ~- b如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作9 [9 _4 [& `% I8 j* L0 Y
類似的動作.例如,
1 A" \ F \6 PSC_MODULE(AAA){: g; Y- c. F3 s( j; Y* Y7 @
Memory BBB;+ l. p0 |" j2 f$ ?8 ^7 t" s
Memory CCC;
- K! R+ Y/ q1 r/ _3 o8 LSC_CTOR(AAA):9 V0 V! Y, h3 @, W1 J: g+ z
BBB("BBB"),-------------->> member initialized
6 R* r5 L( k1 ^2 c1 V$ jCCC("CCC") -------------->> member initialized " p9 v) T9 _2 b# p& V5 z5 L
{
& H$ u+ j9 s+ G Z9 i: S& [% \9 }$ J) ~
}+ l0 X3 h/ E5 ?' b# z
};這種instantiate方式叫direct instantiation. |
|