|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.) K0 _# @+ K: A1 v' ~5 U p
constructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,& W" ^5 _' x% {7 ~* V" C- S9 m
然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables1 D8 r6 _& H: L' w" i% b# `
aClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等
7 y1 U- \: b, I9 g; [6 y) Y4 E) S; j內部variables link起來.
6 `. O0 a" b/ {5 z7 }/ c) r( ^如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作
) N- ^/ j/ N2 Z類似的動作.例如,
6 [% S( [5 U% c6 w+ I4 _4 `SC_MODULE(AAA){; c( b! o9 b {, L
Memory BBB;* G! m: K' \& ]# {' C
Memory CCC;
7 y& T2 \" p% v& t$ K. C1 JSC_CTOR(AAA):
, B, N/ I8 }# B, V0 l! T$ O2 j8 C& Z' nBBB("BBB"),-------------->> member initialized' a- Q; D& r, W
CCC("CCC") -------------->> member initialized 5 _. r. O4 w# p) x
{
6 L$ o5 g' b) z3 h+ Q
0 H& p% \5 p% m: N3 L3 S}" C9 c0 A+ S& g, u9 |5 x
};這種instantiate方式叫direct instantiation. |
|