|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.
. p9 B' F% n+ A* @3 ~constructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,9 e! w8 L6 y- U+ w3 Q$ S" f
然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables6 B" m+ }# G1 R' U$ q; {
aClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等" S/ w3 E6 _' Z# ?6 d. F
內部variables link起來.
4 j; E+ H% ` K6 y$ C; \' \如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作( j2 {: a, Y; f
類似的動作.例如,
: d1 [ q2 T2 t2 ~SC_MODULE(AAA){' b6 b& c9 p- n- {8 E
Memory BBB;
A; c0 ^3 o7 h$ O) cMemory CCC;: ~- S, ? C" g( r% F
SC_CTOR(AAA):
0 d1 Q1 K& N0 e0 [; BBBB("BBB"),-------------->> member initialized
4 A- ?3 J" G* wCCC("CCC") -------------->> member initialized 6 T, _) v1 x: b; n. m! v. b
{
( @" J# Z) x; {& j; l& s1 r) F4 Q& k9 b: r$ C! b& y/ N5 w
}
* K, e4 F8 h5 F; g0 M: p};這種instantiate方式叫direct instantiation. |
|