|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.. @: d- o2 q1 W# n" v U
constructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,7 O1 I, b9 @( B* Q, ~4 v; i/ C
然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables" j7 g Y# h" d j- O9 I) \
aClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等8 [% n0 ^2 ~, @2 L' F; C" S
內部variables link起來.
7 g' o. e! B' w* R' A1 @" a如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作" K+ M. W" V- _8 B- A7 Z9 N% h5 m
類似的動作.例如,) M* N7 x7 R/ o5 z2 a
SC_MODULE(AAA){$ X& X& Z: E0 w$ I" G& Z
Memory BBB;
3 R; }/ T( Q" T1 X1 aMemory CCC;6 b3 U8 l( |( r/ y: e8 x
SC_CTOR(AAA):8 B/ Y* Y2 b9 }8 X# I% r$ s
BBB("BBB"),-------------->> member initialized1 p* L4 c5 A# P0 \8 ]* O( e1 c
CCC("CCC") -------------->> member initialized $ p$ w$ K$ B% U& ^
{
9 w2 A% i7 [ ~0 D* a z- G
$ J! o H% y9 T/ {" X}( L9 V6 v) j7 t- v7 B
};這種instantiate方式叫direct instantiation. |
|