|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.) r5 d3 [$ v! _3 ~+ L
constructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,. Z7 o6 \: [# _3 R: W
然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables
, c/ b4 ?% U/ _ ]0 N" UaClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等9 @; S. _0 ~/ C* E& ^
內部variables link起來.
, F! ^) T4 B9 _: i+ m如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作
! c8 |2 K( |8 R類似的動作.例如,
/ R0 m8 D* w9 k a" _SC_MODULE(AAA){
0 ^" k. H* e* ~! CMemory BBB;3 G# C$ P9 f F1 }: w) x
Memory CCC;& |& z" V* A/ g/ |
SC_CTOR(AAA):
1 _/ \; Y) p% z; h0 Z# a) w4 aBBB("BBB"),-------------->> member initialized+ r( s/ A+ y5 Q- ?0 [: `4 y+ T8 M4 E
CCC("CCC") -------------->> member initialized
, ?1 j1 x) ?6 Q{
+ ?; X u( ]" E7 Q5 _
8 f) O. F2 O8 Y! Y}) Y1 o6 H" i' s8 f+ U: M! T6 C
};這種instantiate方式叫direct instantiation. |
|