Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 10523|回復: 4
打印 上一主題 下一主題

[SystemC] systemC的SC_CTOR語法

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2008-7-9 14:31:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近被迫看一些systemC的原碼,有一些問題想問人一下:
) |5 N) t4 a: O一般書籍都說SC_CTOR(module name)後就接左大括號{,可是我看的例子不是,如下:
7 p- v* Z" `) C* B  d% RSC_MODULE(aaa)5 |4 d+ p, ?" f* _) v
{) K5 A% y' M; d7 V
        sc_in<sc_logic > aClk;4 `, v. W* A% X9 u
        sc_in<sc_logic > bClk;0 w: ^1 a4 ]$ ?) H* H# Y' d1 O
             .
. M1 q7 q3 x. c( i; g+ L             .
9 [2 r1 p: \3 J7 U) F0 d0 O: n- d             .
6 K9 |% d+ g3 R# X( ~3 S        SC_CTOR(aaa) :1 v5 \) |5 Q6 J2 h
                aClk("aClk"),
# p0 t  Z- `0 ?2 i1 a, [                bClk("bClk"),
; l3 s) y) T2 D- y             .
) I/ z2 F9 c3 W& X4 V9 K/ B! z9 O             .
1 `- ^) y: M6 \+ J' y             .
  V3 O% Q' E: Z& r/ P/ j1 O* L- j! {" e0 }* r        {
$ |3 `! S7 f5 T0 f/ D2 D( Y             .3 t2 [: F) v7 ^$ ?, M
             .
2 ]: L) P- c# J* Q" g; w  r             .
3 {  `" l0 [( ?# C4 Q        }. W( Z5 y/ J$ e- y
        ~aaa(); Y4 d6 o: l' d  c
        {( z3 ]& d, l/ r& B4 o. X
        }  J/ t* b  \. w- r. e8 d: Y! q! U
};
) \1 `* j4 d$ dSC_CTOR(aaa)後接的是:,aClk("aClk")與bClk("bClk"),請問是甚麼意思?
. h6 v3 u7 f) t又這樣的寫法是systemC還是C++定義的?
- P! _$ U2 `: T1 Y# l. N謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂2 踩 分享分享
2#
發表於 2008-7-10 17:14:00 | 只看該作者
那應該是做port initializations.
1 G/ {, c6 x! E9 \. [+ v( yC++ semantics require use of an initializer list for "direct"(not indirect) approach.
3#
 樓主| 發表於 2008-7-14 16:07:03 | 只看該作者
謝謝您的回覆,不過我不是很懂您的意思,您提到port initializations,感覺是設定port的初值,可是他不是1,0,x,z等值,而是與自己相同名稱aClk("aClk"),能否請您再說明一下,謝謝。
4#
發表於 2008-7-16 13:08:41 | 只看該作者
SC_CTOR 從冒號:到大括號 { 之間 是 constructor SC_CTOR  的 initialization section.
+ ~& C* D6 }, i! x; oconstructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,
3 b! ^% a5 {; U' @9 N然後用SC_CTOR  去assign 這些 ports 的values 到SC_MODULE 的內部private variables; ]: G/ H4 g( _0 e
aClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR  就會把SC_MODULE 的port與aClk,bClk 等" @: a: z# p* d# M' E0 N0 ~# j# U
內部variables link起來.
' f3 j3 I/ P  d% w+ Y4 n如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR  也是要作/ ?+ M- u: [  }; j
類似的動作.例如,
1 ?9 p/ b% v  ?SC_MODULE(AAA){7 T% Z2 u- E6 y  |
Memory BBB;
& Q% M# r3 s; XMemory CCC;
) J( \. {$ K5 c8 O  c: V& d) R  Y5 {( jSC_CTOR(AAA):
3 n# \: M. H- cBBB("BBB"),-------------->> member initialized6 q; P. r7 g: n' F% Y5 L: q
CCC("CCC") -------------->> member initialized
9 y  P3 K" R# A$ w& B) \{' N, f. X  H  a

- P- s; ~) T* Y) W) k/ i. j}
. _* |* r- B4 T$ y2 F( Z};這種instantiate方式叫direct instantiation.
5#
 樓主| 發表於 2008-7-18 10:02:45 | 只看該作者
謝謝kevin的回答,好多年沒看程式書籍了,一時之間要搞懂,真不容易。/ [- y, f: Y8 K5 p2 K: t0 L# n
不過您的解釋是否是定義在system C 2.0裡?
9 P7 d# z7 ?  K* i, Q" h9 m
3 W5 }7 G) f( G! ]* q& U& N- i3 t% d1 R[ 本帖最後由 jerryyao 於 2008-7-18 10:05 AM 編輯 ]
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2025-2-23 09:11 PM , Processed in 0.161009 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表