Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[SystemC] systemC的SC_CTOR語法

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2008-7-9 14:31:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近被迫看一些systemC的原碼,有一些問題想問人一下:
+ u3 ?/ i9 {0 A, J一般書籍都說SC_CTOR(module name)後就接左大括號{,可是我看的例子不是,如下:
: A& ^9 X& X! d' eSC_MODULE(aaa)3 R# c+ w; [6 ~( b
{
7 |. p: I" k+ W, J! l        sc_in<sc_logic > aClk;
; z" Q: l. ~% D# U' t8 n2 N        sc_in<sc_logic > bClk;
6 h; i. v; p( a# f9 k; S# l             .9 Z: }  Y: ~: j
             .
: C) q3 O9 t- k/ ~7 h8 J$ H6 a             .. ?# f0 W; `! h, d% h# O% }; I8 E
        SC_CTOR(aaa) :
$ v% p& J  q! c7 \9 M! {                aClk("aClk"),
% R$ M3 J* ]  s                bClk("bClk"),
- \5 C2 i4 }6 }             .
" D, O# u* [  t7 x0 `6 Y             .
* c( s8 j, l+ c+ c' X7 n. y             .+ p) p8 W3 [" a4 N* ?. ~
        {
. X7 ^  O4 o# U& y# G4 @# k' ^             .
2 K) |2 R6 x. l3 D& k) g' c             .
1 t6 e. u8 I$ |* f* z5 R             .6 t6 K. @# ?1 I' ?9 D
        }
/ r, ?" [4 U/ l& v+ |        ~aaa()
2 u& b# r( B, I! O) O& j2 m        {
. ~0 x" @$ `5 B# \; v        }
- _* Y0 q/ l5 D" M4 ^+ e};
# S6 u" x9 A0 FSC_CTOR(aaa)後接的是:,aClk("aClk")與bClk("bClk"),請問是甚麼意思?2 V8 M; P' p) G5 \5 m
又這樣的寫法是systemC還是C++定義的?
3 n- @( Q' i6 D  j& r, S) V. O% y  o謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂2 踩 分享分享
2#
發表於 2008-7-10 17:14:00 | 只看該作者
那應該是做port initializations.
8 `/ E; l! v8 \8 iC++ 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.
* 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.
5#
 樓主| 發表於 2008-7-18 10:02:45 | 只看該作者
謝謝kevin的回答,好多年沒看程式書籍了,一時之間要搞懂,真不容易。/ O1 g2 ]- l8 A& x
不過您的解釋是否是定義在system C 2.0裡?
" C5 y' f4 t7 k6 }# b
1 k- F& U" j- C( t- c$ X[ 本帖最後由 jerryyao 於 2008-7-18 10:05 AM 編輯 ]
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-11-16 08:09 AM , Processed in 0.161009 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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