スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

SystemC:初期化リストに記述するようにしよう

SystemC Advent Calendar2012 の 10日目の記事です。
(10日もよく続いたなと...)


前回 name()関数使ってますか? 紹介した際に、信号名の表示が Port_xになってます。
これを宣言した変数名と同じ名前にするにはどうすればいいか?
解決策としては、コンストラクタの初期化リストに記載することです。


参考:ロベールのC++教室 - 第22章 メンバ定数 -

  • サンプルコード
  •  1|#include <systemc.h>
     2|
     3|SC_MODULE (hoge) {
     4|  sc_in<bool>         clock;
     5|  sc_in<bool>         reset;
     6|  sc_in<sc_uint<8> >  indata;
     7|  sc_out<sc_uint<8> > outdata;
     8|
     9|  void process() {
    10|    outdata.write(0);
    11|    wait();
    12|
    13|    while (true) {
    14|      wait();
    15|      printf("Instance Name:%s\n", name());
    16|      printf("Port(clock  ) Name:%s\n", clock.name());
    17|      printf("Port(reset  ) Name:%s\n", reset.name());
    18|      printf("Port(indata ) Name:%s\n", indata.name());
    19|      printf("Port(outdata) Name:%s\n", outdata.name());
    20|    }
    21|  }
    22|
    23|  SC_CTOR(hoge) :
    24|    ///////////////////////////////
    25|    clock("clock")
    26|    , reset("reset")
    27|    , indata("indata")
    28|    , outdata("outdata")
    29|    ///////////////////////////////
    30|  {
    31|    SC_CTHREAD(process,clock.pos());
    32|      reset_signal_is(reset, false);
    33|  }
    34|}; 
    35|
    36|int sc_main (int argc, char* argv[]) {
    37|  sc_clock clock ("clock",1,SC_NS);
    38|  sc_signal<bool>        reset;
    39|  sc_signal<sc_uint<8> > indata;
    40|  sc_signal<sc_uint<8> > outdata;
    41|
    42|  hoge uhoge("uhoge");
    43|  uhoge.clock(clock);
    44|  uhoge.reset  (reset  );
    45|  uhoge.indata (indata );
    46|  uhoge.outdata(outdata);
    47|
    48|  reset = 1;
    49|  indata = 10;
    50|  sc_start(3SC_NS);
    51|
    52|  return 0;
    53|}
  • 実行結果
  • Instance Name:uhoge
    Port(clock  ) Name:uhoge.clock
    Port(reset  ) Name:uhoge.reset
    Port(indata ) Name:uhoge.indata
    Port(outdata) Name:uhoge.outdata
    

というように、変数名と同じ名前で表示されるようになりました。
書かなくても問題ないのですが、このように明示的になります。
これは、SystemCをサポートしているシミュレータにて波形表示される際の
表示形式にも適用されるので、積極的に書いていきましょう!

関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
04 | 2017/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。