Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[SystemC] systemC的SC_CTOR語法

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2008-7-9 14:31:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近被迫看一些systemC的原碼,有一些問題想問人一下:
- E7 G' Z% G" x7 B" ?/ z一般書籍都說SC_CTOR(module name)後就接左大括號{,可是我看的例子不是,如下:
' k$ x( r& o. E2 ]% @SC_MODULE(aaa)3 }, j2 U$ }6 d1 T, J
{& E. W/ C  f7 C, c" m; d& d- ^
        sc_in<sc_logic > aClk;
; v. _' r1 H* v3 f+ b4 ^4 J0 e. d' t        sc_in<sc_logic > bClk;* p% |( l: b) p' o
             .5 M; m  ^2 o, x4 j1 m  N
             .
" s5 M) o4 g# o) E             .
# c. C5 p9 J- a' |) }) r        SC_CTOR(aaa) :
$ d6 Q/ R% }, T, f* B7 ?& y                aClk("aClk"),/ M3 M; H! o$ H- A  X. l  r* q
                bClk("bClk"),0 J  _/ x) ^6 c% U2 h4 H
             .
" Y  H- o2 C7 X; n             .
0 D, H. O- V' d8 f             .6 E1 o+ u4 x) w3 `6 ~4 ?8 [
        {" j$ _9 W- i! _1 c- x& [( O
             .( [6 b7 Y" N) E1 W; N* ^/ n/ g
             .
, R+ U. ^) W6 X9 H* \             .& W1 J+ |: o8 _  ?! f; s
        }
4 J: S) d, q# u/ O: j4 ]        ~aaa(). M4 Y* I! u0 n7 Y
        {/ B5 k5 I0 D1 D6 a# g
        }# c+ [( o! E/ S/ f1 A2 G
};
5 f& A$ j: k* E1 S( ^. Q: ESC_CTOR(aaa)後接的是:,aClk("aClk")與bClk("bClk"),請問是甚麼意思?6 }) D3 i6 O% |1 J, h
又這樣的寫法是systemC還是C++定義的?5 e# o5 @% K, P! O. }
謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂2 踩 分享分享
2#
發表於 2008-7-10 17:14:00 | 只看該作者
那應該是做port initializations.
; \# s! ~4 {$ SC++ 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.) K0 _# @+ K: A1 v' ~5 U  p
constructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,& W" ^5 _' x% {7 ~* V" C- S9 m
然後用SC_CTOR  去assign 這些 ports 的values 到SC_MODULE 的內部private variables1 D8 r6 _& H: L' w" i% b# `
aClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR  就會把SC_MODULE 的port與aClk,bClk 等
7 y1 U- \: b, I9 g; [6 y) Y4 E) S; j內部variables link起來.
6 `. O0 a" b/ {5 z7 }/ c) r( ^如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR  也是要作
) N- ^/ j/ N2 Z類似的動作.例如,
6 [% S( [5 U% c6 w+ I4 _4 `SC_MODULE(AAA){; c( b! o9 b  {, L
Memory BBB;* G! m: K' \& ]# {' C
Memory CCC;
7 y& T2 \" p% v& t$ K. C1 JSC_CTOR(AAA):
, B, N/ I8 }# B, V0 l! T$ O2 j8 C& Z' nBBB("BBB"),-------------->> member initialized' a- Q; D& r, W
CCC("CCC") -------------->> member initialized 5 _. r. O4 w# p) x
{
6 L$ o5 g' b) z3 h+ Q
0 H& p% \5 p% m: N3 L3 S}" C9 c0 A+ S& g, u9 |5 x
};這種instantiate方式叫direct instantiation.
5#
 樓主| 發表於 2008-7-18 10:02:45 | 只看該作者
謝謝kevin的回答,好多年沒看程式書籍了,一時之間要搞懂,真不容易。
6 |5 t" F! j; C$ W% P% W9 @' w不過您的解釋是否是定義在system C 2.0裡?' }' l6 t* `0 x
! F! j) `7 c# ^5 N( K/ [
[ 本帖最後由 jerryyao 於 2008-7-18 10:05 AM 編輯 ]
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-9 11:48 AM , Processed in 0.123016 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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