Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[SystemC] systemC的SC_CTOR語法

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2008-7-9 14:31:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近被迫看一些systemC的原碼,有一些問題想問人一下:& x4 S7 X" M% D  w# I6 o  Q# m4 G6 Z
一般書籍都說SC_CTOR(module name)後就接左大括號{,可是我看的例子不是,如下:
' P2 u2 x$ K3 ?SC_MODULE(aaa)
# w& r/ u! X* Y{/ v0 R9 ^+ O3 i* w
        sc_in<sc_logic > aClk;
$ e  z1 b% }, m        sc_in<sc_logic > bClk;% P- A0 S  N3 o8 N# J3 D! a
             .
( J% O/ e* f# F/ U$ z             .
* }9 @2 R2 q7 X0 P6 n6 y$ x             .! @$ h9 y% a9 n' N+ o
        SC_CTOR(aaa) :
! y! l. Y7 [8 b6 T  _) [                aClk("aClk"),
+ M$ m; @* n( r                bClk("bClk"),. j" g# V8 \1 W
             .
' n# g$ y4 u* ]: G2 @             .; `! ]. P) A: h9 _+ P
             .7 `3 g" Y  u2 q) x. z5 J$ L
        {: v3 t, c- P* ~% t+ w
             .
7 h1 G9 c6 g+ }4 F( \             .
9 g3 d5 R! X8 |' N/ v. v1 L             .0 s3 J+ D( ]/ }) n
        }
5 A: k" X8 g& i; h5 ^" n4 Y' W4 I8 W) J        ~aaa()" K+ R, j5 e3 U. k; _
        {
. c8 w5 Z& v, r# A        }& t9 O2 J  }" Z% \4 O# j
};
  {2 A, c. M6 v- K/ ]SC_CTOR(aaa)後接的是:,aClk("aClk")與bClk("bClk"),請問是甚麼意思?/ ?" O$ `' Z* l3 }1 {1 s
又這樣的寫法是systemC還是C++定義的?' X# x" V* y& @1 Y1 P4 P8 X
謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂2 踩 分享分享
2#
發表於 2008-7-10 17:14:00 | 只看該作者
那應該是做port initializations.
  \% P. m* c3 LC++ 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.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.
5#
 樓主| 發表於 2008-7-18 10:02:45 | 只看該作者
謝謝kevin的回答,好多年沒看程式書籍了,一時之間要搞懂,真不容易。+ T) r/ U! O" w% q6 y' p* P5 u
不過您的解釋是否是定義在system C 2.0裡?$ Y( Y* J3 z9 g2 m0 \

  s' X7 a1 w0 ^+ U- p7 Q# j7 a4 G[ 本帖最後由 jerryyao 於 2008-7-18 10:05 AM 編輯 ]
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-7 07:30 AM , Processed in 0.101006 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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