|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.
8 q" N# R) N# |3 `! m7 ~constructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,. V' D" }) ^# B# Y5 \6 x% i4 y
然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables
# ?1 H$ C6 c/ t# C7 j* {aClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等
) j) J" M! H* j. }內部variables link起來.9 ?, }% U! Z% B8 G# Q X) m
如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作% o7 k" v7 C# k* l: H
類似的動作.例如,9 b7 _2 R7 i( }; s! x
SC_MODULE(AAA){
9 p" q% |8 N& ?Memory BBB;
- [- ?% R, G7 N" zMemory CCC;
- F$ q; q, `1 ?/ t9 ZSC_CTOR(AAA):
2 X l2 n4 G1 y" ~8 HBBB("BBB"),-------------->> member initialized
' y2 ^7 m; g9 s$ H* QCCC("CCC") -------------->> member initialized
\ {8 Q+ O: ^9 }8 h, Q3 g3 [{5 x% W* Q/ I* Z0 E( r" X
0 P" w- O/ C5 E2 ]" j% o
}
! C, \" F( c# G9 N! M6 g};這種instantiate方式叫direct instantiation. |
|