|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.4 ?. r! I, T0 |
constructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,' B9 C! k6 ?( s2 d; ~
然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables% |: S" m5 M# [$ v! _& k& @
aClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等
, _/ n! m; D; R0 y) M內部variables link起來.
) c& k3 l& b% M. |, p( x T如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作
5 q3 R/ ^" W# Z3 n6 C$ e: j9 H類似的動作.例如,! D- e. j8 J) G8 c+ ]) J$ J8 S
SC_MODULE(AAA){
5 t3 C: k6 }( n- {; NMemory BBB;
; w% e2 j* X- T4 |Memory CCC;
# n. t7 u2 P# m( \2 y/ oSC_CTOR(AAA):
- I3 H! x7 W: Y. I O) N: F' h- N0 a3 R& VBBB("BBB"),-------------->> member initialized
2 ^8 z5 i7 ` F$ I! l3 ]+ L# DCCC("CCC") -------------->> member initialized
$ P m% o* i3 ]1 e{
; b$ }; E2 a( f3 |3 T2 |
- P) V8 o' Z) d! @: Y6 a$ Z* @$ ^}
& k9 b M9 `. v* }; c};這種instantiate方式叫direct instantiation. |
|