Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[SystemC] systemC的SC_CTOR語法

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2008-7-9 14:31:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近被迫看一些systemC的原碼,有一些問題想問人一下:: f3 j  h- e5 w: ~8 Z
一般書籍都說SC_CTOR(module name)後就接左大括號{,可是我看的例子不是,如下:7 I' Q- I( G7 n* c& m: g
SC_MODULE(aaa)+ U3 W* y! ^! g$ B8 a+ \  O) c
{' j: O) P, I2 v5 R2 j
        sc_in<sc_logic > aClk;8 W& L# J8 l& c0 D, E9 B
        sc_in<sc_logic > bClk;4 l4 z0 v3 g  L1 y& _8 ]
             .6 ?- u7 b8 Q4 n$ [: j' Y
             .
6 ?; u' Q  i3 Q" ?( s             .
7 q1 f6 E: l( K0 {; E        SC_CTOR(aaa) :8 I! r9 w$ `4 q3 B* l  {- R& G
                aClk("aClk"),) j3 ?* C. u& w+ _$ x
                bClk("bClk"),
4 y, W$ B6 I% n! |% W* [. Y             .
/ S* I& B/ P$ H1 _; c' S             .3 s' D1 H) ?" Q% o
             .
6 x2 y0 s7 s5 s0 b        {
7 z- ]( n# ^/ m% {4 b5 @) n8 I6 J) }             .) ~+ o3 Z& O  M, e* j+ P
             .8 r7 U& S( W; h+ W
             .
$ o' b) I3 F% W) w        }
+ F" w6 r% t! i9 J        ~aaa()
5 S9 i& y1 o* T" v, s; K        {' _8 p5 E+ e9 q! R) Q
        }
5 I4 `! x- }0 Q9 a) S};
/ u# t+ e: _" F% F. N4 e% B7 H8 RSC_CTOR(aaa)後接的是:,aClk("aClk")與bClk("bClk"),請問是甚麼意思?
6 }: S" X' J" O. w又這樣的寫法是systemC還是C++定義的?/ C# n' D( {; [0 y4 M' ]
謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂2 踩 分享分享
2#
發表於 2008-7-10 17:14:00 | 只看該作者
那應該是做port initializations.
! J# b0 s! [% EC++ 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.5 E) |3 I% J( U5 p
constructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,
- L8 ^0 w; d: G* u+ R- Y* k然後用SC_CTOR  去assign 這些 ports 的values 到SC_MODULE 的內部private variables
$ y3 P7 r( ?; h: v# ~% o6 S! SaClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR  就會把SC_MODULE 的port與aClk,bClk 等
' o: A" x6 S" A) D! D4 V* R內部variables link起來.
) n" ^! L* |5 h4 [; O5 v如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR  也是要作
6 ]- k, E1 V" K2 H7 v' ~2 ?4 I類似的動作.例如,8 e6 e! ^) f  ?6 @
SC_MODULE(AAA){' m+ o) O" E; g+ g( g4 \
Memory BBB;
' S# r9 c9 e# }$ {+ SMemory CCC;
$ T1 _2 n0 X/ U% i6 ISC_CTOR(AAA):
$ A! t9 U6 X# \2 c* c1 c  c/ MBBB("BBB"),-------------->> member initialized
* P" S1 S( h+ H3 A% U4 |( U: S  MCCC("CCC") -------------->> member initialized
# {6 B% J6 B) `8 `& X- K- H0 S{5 Z3 i( P" z* R4 S. _2 ]2 C: P$ {
) J( F# Z0 _1 I- d, X4 `
}
5 R' P/ P, Q6 s# K! }; p- d};這種instantiate方式叫direct instantiation.
5#
 樓主| 發表於 2008-7-18 10:02:45 | 只看該作者
謝謝kevin的回答,好多年沒看程式書籍了,一時之間要搞懂,真不容易。: k2 Q) t2 j% G; [5 ^
不過您的解釋是否是定義在system C 2.0裡?
) V% j9 y' d  B$ O+ {$ r5 M1 x, l
[ 本帖最後由 jerryyao 於 2008-7-18 10:05 AM 編輯 ]
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-2-24 04:55 AM , Processed in 0.168009 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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