|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.
* N3 R! G7 G9 E2 C7 {) ?% Nconstructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,
- U1 y1 c8 A) m( R4 b- I9 z2 x/ ?8 X然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables
2 |. O( t( u- I6 `& g. uaClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等. n) W+ l8 u, ?' l! @) T
內部variables link起來.! t# G( f, n- M
如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作4 C; [ [8 q8 r
類似的動作.例如,
7 O- i% N# I0 i, Y0 d1 R' oSC_MODULE(AAA){
9 w" W$ k& J- P. s0 c5 n; zMemory BBB;" n2 a9 R5 }+ ~7 W/ f2 [
Memory CCC;
' [$ ?, t, T/ e4 I5 M( gSC_CTOR(AAA):; f2 J" W+ p- H# l, @
BBB("BBB"),-------------->> member initialized# P$ K: W+ y4 I% d3 L) K) x
CCC("CCC") -------------->> member initialized " ?. `( _% K9 s8 e: Y2 T
{; d' N, O( }3 d! a: F+ W
7 ?3 g$ `4 B+ }2 |" ]7 b
}, v5 O) u5 q: B* F
};這種instantiate方式叫direct instantiation. |
|