|
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR 的 initialization section.
* m' i) P4 y+ S. e* k1 |constructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,; Q7 }" P' ]) g! @
然後用SC_CTOR 去assign 這些 ports 的values 到SC_MODULE 的內部private variables
" G, q8 G2 `% ~# Y9 b: Z2 {aClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR 就會把SC_MODULE 的port與aClk,bClk 等
8 ^9 i$ q9 n4 B" N X. B, v3 V內部variables link起來.: N- O8 y; m1 p" G
如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR 也是要作
6 z! n! v* q, k; ?類似的動作.例如,* }9 E* r5 H: B6 [% ^
SC_MODULE(AAA){) k, r7 J: w: a9 P* x( x" M
Memory BBB;3 \$ r8 s7 q& ^# D3 x+ [
Memory CCC;' A, A9 j- z- p$ h, K: _' O
SC_CTOR(AAA):
( z8 m' u# G5 @4 BBBB("BBB"),-------------->> member initialized
' V7 ]- v# ?" I2 Z2 ACCC("CCC") -------------->> member initialized / r! Q6 E& m" p2 w" y. q
{
5 h0 }1 `' B6 B# J m) u: ^; G
}7 t5 B6 d# h1 y. x. L! i8 c
};這種instantiate方式叫direct instantiation. |
|