|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.2 j+ o8 }- L% s4 \7 a; f
constructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,
) N# E& U+ W! ]0 Q% w然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables( q7 H- d( f; p: I
aClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等
1 W- w" [" U5 e/ ]+ r2 y' K內部variables link起來.
# A& `+ h @! r9 l1 t如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作
3 `7 a; i4 ?" T: b6 g5 j; ]+ ~5 Z類似的動作.例如,
/ B- l9 N8 X8 ?! FSC_MODULE(AAA){ j# a# X$ c; `# ^* k; _+ q
Memory BBB;
* `9 y3 K. x5 o( B3 P* YMemory CCC;; E# V% A3 {0 [" e- P9 P
SC_CTOR(AAA):
" G) c; k+ Y+ ?/ l) ]' C9 m# EBBB("BBB"),-------------->> member initialized2 M' K& x* \) [7 S5 g# _9 X3 ]% {
CCC("CCC") -------------->> member initialized ) H. [. S- |1 Z+ m/ z( N
{8 y2 y6 v: ~- B+ F# I( e0 h# F
3 I+ h; V: a5 p- n" U4 P1 x6 t}5 \+ T9 Y* J& ? H/ G# v: e
};這種instantiate方式叫direct instantiation. |
|