|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.5 E) |3 I% J( U5 p
constructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,
- L8 ^0 w; d: G* u+ R- Y* k然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables
$ y3 P7 r( ?; h: v# ~% o6 S! SaClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等
' o: A" x6 S" A) D! D4 V* R內部variables link起來.
) n" ^! L* |5 h4 [; O5 v如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作
6 ]- k, E1 V" K2 H7 v' ~2 ?4 I類似的動作.例如,8 e6 e! ^) f ?6 @
SC_MODULE(AAA){' m+ o) O" E; g+ g( g4 \
Memory BBB;
' S# r9 c9 e# }$ {+ SMemory CCC;
$ T1 _2 n0 X/ U% i6 ISC_CTOR(AAA):
$ A! t9 U6 X# \2 c* c1 c c/ MBBB("BBB"),-------------->> member initialized
* P" S1 S( h+ H3 A% U4 |( U: S MCCC("CCC") -------------->> member initialized
# {6 B% J6 B) `8 `& X- K- H0 S{5 Z3 i( P" z* R4 S. _2 ]2 C: P$ {
) J( F# Z0 _1 I- d, X4 `
}
5 R' P/ P, Q6 s# K! }; p- d};這種instantiate方式叫direct instantiation. |
|