|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.
, l m6 Y& T. U' xconstructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,) I. |' Z4 [, E7 c) x9 C' k/ F
然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables
+ _4 v% b1 @, v4 aaClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等
' C$ B6 m3 m, B+ W/ i% w' `) E內部variables link起來.
4 v) w$ _* h/ T4 P& U% O o6 B7 T( k如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作
8 c3 u$ Z/ h: |5 k3 P5 \類似的動作.例如,
0 e/ l4 s _/ R* m8 D! m; oSC_MODULE(AAA){, d0 O& N; ?7 `" [% B
Memory BBB;
7 f/ v# @6 J$ R. w# x/ c0 l! {Memory CCC;) B! {2 f1 R" w$ Q8 J! b8 a
SC_CTOR(AAA):
' q, C8 u! ^4 U7 u& T. a) VBBB("BBB"),-------------->> member initialized2 @2 v9 c( ?4 l* k4 h5 [9 h
CCC("CCC") -------------->> member initialized 0 V& R, o% k" v2 q" p* W9 H
{& C M* N- u: r6 x2 m" S c
9 r; I0 O' }( v6 m7 R5 d
}. y" b+ ?6 ~3 y- l. C8 a. R% e
};這種instantiate方式叫direct instantiation. |
|