|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.8 G& s% L3 K# A; F! V v
constructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,! X0 L8 b' R, F
然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables
+ E. i9 K5 [! S! F% A6 QaClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等* _$ {$ y; O- X
內部variables link起來.
) v6 w0 W6 A3 l& M如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作4 I8 \! G6 u" ]2 A$ ]! r
類似的動作.例如,
; r' J; J2 _, |SC_MODULE(AAA){
8 S( U8 V l# ~$ d$ l" `Memory BBB;
, }; a c' W3 W# @$ L) LMemory CCC;/ d/ t R8 ~# A
SC_CTOR(AAA):( r+ d1 t! S. `. F
BBB("BBB"),-------------->> member initialized% w, z6 B7 F3 P4 |" [( g3 U5 n+ V
CCC("CCC") -------------->> member initialized " R8 k! \- Q1 `# O4 O3 m
{
' [. P, i& E# Y0 M8 l
. S; T9 X; s1 K3 }* @- Q2 c5 G}
0 C' f, T, y1 P};這種instantiate方式叫direct instantiation. |
|