|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section. J2 m9 j& p# [* g9 I6 v
constructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,6 z+ N: l# Z9 l# u, u
然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables
9 k& p9 d3 ]% |/ |: FaClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等4 K: R- D1 R7 [! v
內部variables link起來.
# l- m3 N; P* e: H, U: K$ P如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作
* \8 o' I1 p# {類似的動作.例如,
1 n" B. w/ _8 V5 D' [0 [SC_MODULE(AAA){$ A5 N6 D! b. b/ u0 {8 a
Memory BBB;/ @: P. y& `9 [! \$ j5 y. R
Memory CCC;9 y/ X2 H- G9 J; ?; O5 n
SC_CTOR(AAA):
; \: G$ z8 g" |' MBBB("BBB"),-------------->> member initialized1 m) ]3 S; T, o; s9 |( x# x7 U) ^. ^2 x
CCC("CCC") -------------->> member initialized
) `( n$ |* N$ R- B% r{
: h R! D) t6 R- v6 n* U9 e
2 |" o7 L6 o+ s- O" a0 L* y}! G$ f9 x! }; z& h) d2 w+ {
};這種instantiate方式叫direct instantiation. |
|