|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.
4 g9 X7 C6 [- h& F5 T' F9 Gconstructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,
2 C' |& b/ ]& ^: e& E7 X( G然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables) o" v$ d/ ?9 k$ o: F- a4 L! B& a
aClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等; A9 }. d- P1 A" q+ W
內部variables link起來.
# u/ r. Z. j; z如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作1 X7 I, [) b/ n% d
類似的動作.例如,
0 N* T; Z: Z) i* o. x7 w1 L7 oSC_MODULE(AAA){
( `! f( y- m( p N2 v2 }Memory BBB;8 i% H5 O& @" @* b+ j* y
Memory CCC;) o( S" w5 d9 T$ Y- R$ Y( }
SC_CTOR(AAA):
# R* Q( l* U8 i- V% u: FBBB("BBB"),-------------->> member initialized
2 q8 A) D2 g1 n- E( FCCC("CCC") -------------->> member initialized , v( F! M+ q U9 f
{- H9 x+ V# N9 v6 {6 D1 B0 s
) _; s) @9 G8 m [( v5 g}, u1 n2 d4 ^" x% ]; }% ]+ S
};這種instantiate方式叫direct instantiation. |
|