|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.
2 X% H! ?1 I% M+ econstructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,: H% y D2 S, e+ Y9 |6 v- {2 l) F
然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables
3 e& b4 _2 S$ uaClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等# d. l% i# M2 M0 X
內部variables link起來.* R- }# {" k8 x/ F$ H8 t1 }* u
如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作
$ t. \+ r" j! m/ y, t' x3 `' w+ n類似的動作.例如,
: u! b% H& _% g! {" iSC_MODULE(AAA){2 p% [ {4 K) ~/ J' @/ d
Memory BBB;
6 K! N+ Q8 y+ |2 K$ F: r3 } dMemory CCC;
8 g4 i7 A6 B4 W( HSC_CTOR(AAA):3 I" w% l5 f1 Z. G1 a9 O6 R9 g
BBB("BBB"),-------------->> member initialized
: C: w& F4 g+ J2 K7 D1 d! GCCC("CCC") -------------->> member initialized
+ Y N! ]% q, B% a8 x5 K# w{' J& N- w% P4 j6 q
5 f8 n5 n/ V' {- O}
$ g: W/ ]" n8 c) s s# T};這種instantiate方式叫direct instantiation. |
|