Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[SystemC] systemC的SC_CTOR語法

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2008-7-9 14:31:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近被迫看一些systemC的原碼,有一些問題想問人一下:2 a) J+ A4 N! v  b6 K2 v6 X# b' [
一般書籍都說SC_CTOR(module name)後就接左大括號{,可是我看的例子不是,如下:
  L$ Z7 e! a7 r  ^2 G4 X) b! ?SC_MODULE(aaa)5 y" y: o; e* P; U, s9 M  U
{8 z# R: W  V! {- ~( D4 O
        sc_in<sc_logic > aClk;: J3 c! P/ J3 K8 E$ i8 ?4 s
        sc_in<sc_logic > bClk;/ d# d5 d* e9 q8 y
             .$ [" l  V0 k* o2 v$ {
             .
4 W; a+ R& Z5 c/ ?             .3 K% F) {; Y  X
        SC_CTOR(aaa) :* M$ x) Q/ i2 s, A
                aClk("aClk"),  |* t1 {% P# V$ R) s8 ^" c
                bClk("bClk"),$ s" s3 K2 O% s! ]2 ~! c6 n
             .
- F, j, A$ ^0 S3 j             ./ }1 R" p; w. f  o
             .
: X+ Z- g  K9 E) ]5 G        {1 Y  V( w! \/ p% L; A( M4 p4 s9 G0 |1 l
             .  t( ]) k% A1 \$ z6 |& z
             .5 X% q9 u) x0 u+ K+ X
             .; S4 z+ ]. r- X/ g& H
        }
. a0 J: q! \/ B. H: ^: G        ~aaa()- O  a% `( D- w% j2 N8 ^) B
        {6 r8 N/ ~4 G) c) n! q  A
        }
. f) z- U( T7 m, v- k0 K) b};# W0 i. z2 T* w5 x; ]
SC_CTOR(aaa)後接的是:,aClk("aClk")與bClk("bClk"),請問是甚麼意思?
  i- o+ p; G" l& G4 `又這樣的寫法是systemC還是C++定義的?3 I0 B' Y3 \- E* j& Q
謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂2 踩 分享分享
2#
發表於 2008-7-10 17:14:00 | 只看該作者
那應該是做port initializations.
. j- e' K8 K/ t  L2 |( E) @. G+ 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.
, l  m6 Y& T. U' xconstructor的定義跟C++ member function 的定義類似,SC_MODULE port 宣告是parameter,) I. |' Z4 [, E7 c) x9 C' k/ F
然後用SC_CTOR  去assign 這些 ports 的values 到SC_MODULE 的內部private variables
+ _4 v% b1 @, v4 aaClk,bClk 等.當每次SC_MODULE 被called,SC_CTOR  就會把SC_MODULE 的port與aClk,bClk 等
' C$ B6 m3 m, B+ W/ i% w' `) E內部variables link起來.
4 v) w$ _* h/ T4 P& U% O  o6 B7 T( k如果SC_MODULE 有宣告member module instance,即sub-design 的話,在SC_CTOR  也是要作
8 c3 u$ Z/ h: |5 k3 P5 \類似的動作.例如,
0 e/ l4 s  _/ R* m8 D! m; oSC_MODULE(AAA){, d0 O& N; ?7 `" [% B
Memory BBB;
7 f/ v# @6 J$ R. w# x/ c0 l! {Memory CCC;) B! {2 f1 R" w$ Q8 J! b8 a
SC_CTOR(AAA):
' q, C8 u! ^4 U7 u& T. a) VBBB("BBB"),-------------->> member initialized2 @2 v9 c( ?4 l* k4 h5 [9 h
CCC("CCC") -------------->> member initialized 0 V& R, o% k" v2 q" p* W9 H
{& C  M* N- u: r6 x2 m" S  c
9 r; I0 O' }( v6 m7 R5 d
}. y" b+ ?6 ~3 y- l. C8 a. R% e
};這種instantiate方式叫direct instantiation.
5#
 樓主| 發表於 2008-7-18 10:02:45 | 只看該作者
謝謝kevin的回答,好多年沒看程式書籍了,一時之間要搞懂,真不容易。
" w4 Q7 D% A2 U0 r9 }+ V不過您的解釋是否是定義在system C 2.0裡?
. c: y/ Q& w' J# ]9 r
* b7 f* O& B/ g! s2 v& w. P[ 本帖最後由 jerryyao 於 2008-7-18 10:05 AM 編輯 ]
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-6 01:05 PM , Processed in 0.101006 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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