Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[SystemC] systemC的SC_CTOR語法

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2008-7-9 14:31:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近被迫看一些systemC的原碼,有一些問題想問人一下:: q  V- x# e# |3 F4 D
一般書籍都說SC_CTOR(module name)後就接左大括號{,可是我看的例子不是,如下:2 k4 L; s2 R8 V( y+ N5 t+ w2 i; S
SC_MODULE(aaa)
9 q+ v8 ^. y3 ]3 M* B3 U3 t{
4 @5 p, U4 A9 c8 x5 e; Z) P( e* n3 A        sc_in<sc_logic > aClk;
* p  c1 b! n2 h& F# g! V        sc_in<sc_logic > bClk;$ _! _- g) S6 R7 m8 l2 C6 d
             .
$ f  L  M' Z% y  z  J2 V2 x             .- Y, {) O% d2 X+ s0 I
             .& ~" C* a- W/ j  l# V" ^  R
        SC_CTOR(aaa) :+ ~6 m- u; ]) |: L5 @" @8 u7 L8 h
                aClk("aClk"),
) [8 v# R+ T- X                bClk("bClk"),
; W% {. v' g8 f) j6 S6 H             .
* c" ~" r1 [2 s; U5 H5 T             .
/ f- P$ t/ \  @2 W: D             .7 P6 v/ X- U  B5 G* t1 H
        {1 D* B* R( b+ D1 a: F( [( ]
             ./ {1 T$ z( i3 F- E5 a" T$ \8 Z. L8 W
             .5 j" @; E  B4 O
             .6 v9 J% ^, X4 P; D) C& N$ p
        }) k' q! [. c4 y8 M
        ~aaa()
* l7 H+ y4 N- ]6 X: O  l( M1 P" Q        {% {. f; C$ N# _8 R
        }9 Z/ @# [$ N$ }- w' I
};
2 _. O  g& l# B! G- I% [% hSC_CTOR(aaa)後接的是:,aClk("aClk")與bClk("bClk"),請問是甚麼意思?. ?- Y- E3 S7 B" L) _" h& w
又這樣的寫法是systemC還是C++定義的?
, }5 n; e/ M+ n% c4 w7 I( N4 Q謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂2 踩 分享分享
2#
發表於 2008-7-10 17:14:00 | 只看該作者
那應該是做port initializations.7 L3 O2 V3 c/ E  }% P( |; x
C++ 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.
9 E5 `0 _: k8 j3 V; Jconstructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,& \0 z  P4 x+ C! P# t4 ^
然後用SC_CTOR  去assign 這些 ports 的values 到SC_MODULE 的內部private variables7 E, |% H7 U* W3 T! t
aClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR  就會把SC_MODULE 的port與aClk,bClk 等
; I/ n8 v: o6 H. Y內部variables link起來.
6 C+ m: B7 N/ U/ }# c; ~- b如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR  也是要作9 [9 _4 [& `% I8 j* L0 Y
類似的動作.例如,
1 A" \  F  \6 PSC_MODULE(AAA){: g; Y- c. F3 s( j; Y* Y7 @
Memory BBB;+ l. p0 |" j2 f$ ?8 ^7 t" s
Memory CCC;
- K! R+ Y/ q1 r/ _3 o8 LSC_CTOR(AAA):9 V0 V! Y, h3 @, W1 J: g+ z
BBB("BBB"),-------------->> member initialized
6 R* r5 L( k1 ^2 c1 V$ jCCC("CCC") -------------->> member initialized " p9 v) T9 _2 b# p& V5 z5 L
{
& H$ u+ j9 s+ G  Z9 i: S& [% \9 }$ J) ~
}+ l0 X3 h/ E5 ?' b# z
};這種instantiate方式叫direct instantiation.
5#
 樓主| 發表於 2008-7-18 10:02:45 | 只看該作者
謝謝kevin的回答,好多年沒看程式書籍了,一時之間要搞懂,真不容易。2 [. v. F' F8 {2 l+ [& u/ N" f
不過您的解釋是否是定義在system C 2.0裡?) Q/ [/ [) s, m2 E
. Z0 Q1 ]: G- h) r. A
[ 本帖最後由 jerryyao 於 2008-7-18 10:05 AM 編輯 ]
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-7 08:24 AM , Processed in 0.106006 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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