|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.
0 h! W' \! w; @3 H. ]constructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,6 _% g$ ?) l+ U+ d4 u
然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables) M: C* q* |( {% t
aClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等
& u2 h1 z% [% t& I3 Z內部variables link起來.; }9 C; n% F1 Y. w0 P/ A% v
如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作4 L# `" ?% ^, z& h" F& }6 L2 [9 H
類似的動作.例如,' m" w$ N1 l' F' T, J6 R7 g4 `
SC_MODULE(AAA){
! X! o! s& g7 ]* ZMemory BBB;8 d: P' y: X! ~2 J% Q/ g
Memory CCC;
8 a/ [: O) k1 GSC_CTOR(AAA):
$ H3 X: d- T, N4 }7 G2 C' _! Y, h$ x0 LBBB("BBB"),-------------->> member initialized/ D0 H0 r5 i/ ^% y3 R/ H
CCC("CCC") -------------->> member initialized 5 ^7 S/ z. P' t& t/ C
{2 S4 j' _$ i6 K' b3 Q' j" \
, |/ H& u! g# Z: `% q5 `
}" ^1 L' w2 T) g" U/ o
};這種instantiate方式叫direct instantiation. |
|