|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.
5 ~+ z# W% z% R. y! J9 Q3 I& Pconstructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,
2 `$ q( _/ j/ Y6 X4 r7 @$ m# M/ O然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables* M8 u4 T' ~; v3 h( w' E
aClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等5 t1 w$ o# J5 w$ ?/ T& K
內部variables link起來.
* M0 {9 W' t+ o3 D如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作, C: Q' u( C y" ^- c9 J: |" u! T
類似的動作.例如,7 S' g3 k: U M( B* H; Y
SC_MODULE(AAA){
% v" e+ x- {' k$ h5 d6 LMemory BBB;- k. C8 w. k# E: l. d
Memory CCC; ^9 l7 k) D) C: ?) E
SC_CTOR(AAA):" q+ t' n: H1 b0 o2 _ n
BBB("BBB"),-------------->> member initialized: \+ _! V9 v# h
CCC("CCC") -------------->> member initialized . J8 n* H8 w9 k$ S# h* @, Y
{
0 ^6 d& j+ L( D0 `& g$ G
" U. Z1 j6 C9 t1 `* s}
8 m$ Y' @5 D% { o/ F};這種instantiate方式叫direct instantiation. |
|