スポンサーサイト

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

[SystemC] sc_logic/sc_lv型の intialize

少し前に、 [SystemC] bit初期値(ALL'1')を書いたのですが、
今回は outputポート正確には intializeメンバ関数についてです。


きっかけはこちらです。


initialization problem with <sc_dt::sc_logic> port


  • サンプルコード
    今回は VCDファイルにダンプしたので、ちょっと独自のライブラリ使ってます。
  •  1|#include <systemc.h>
     2|#include "svm_waves.h"
     3|
     4|SC_MODULE (hoge) {
     5|  sc_out<sc_logic > out_0;
     6|  sc_out<sc_logic > out_1;
     7|  sc_out<sc_logic > out_X;
     8|  sc_out<sc_logic > out_Z;
     9|  sc_out<sc_lv<4> > out_lv4_0;
    10|  sc_out<sc_lv<4> > out_lv4_1;
    11|  sc_out<sc_lv<4> > out_lv4_X;
    12|  sc_out<sc_lv<4> > out_lv4_Z;
    13|
    14|  void process() {
    15|    wait();
    16|  }
    17|
    18|  SC_CTOR(hoge) :
    19|      out_0("out_0")
    20|    , out_1("out_1")
    21|    , out_X("out_X")
    22|    , out_Z("out_Z")
    23|    , out_lv4_0("out_lv4_0")
    24|    , out_lv4_1("out_lv4_1")
    25|    , out_lv4_X("out_lv4_X")
    26|    , out_lv4_Z("out_lv4_Z")
    27|  {
    28|    SC_THREAD(process);
    29|
    30|    out_0.initialize(SC_LOGIC_0);
    31|    out_1.initialize(SC_LOGIC_1);
    32|    out_X.initialize(SC_LOGIC_X);
    33|    out_Z.initialize(SC_LOGIC_Z);
    34|    out_lv4_0.initialize('0');
    35|    out_lv4_1.initialize('1');
    36|    out_lv4_X.initialize("00XX");
    37|    out_lv4_Z.initialize("ZZZZ");
    38|  }
    39|}; 
    40|
    41|int sc_main (int argc, char* argv[]) {
    42|  sc_signal<sc_logic > sig_0;
    43|  sc_signal<sc_logic > sig_1;
    44|  sc_signal<sc_logic > sig_X;
    45|  sc_signal<sc_logic > sig_Z;
    46|  sc_signal<sc_lv<4> > sig_lv4_0;
    47|  sc_signal<sc_lv<4> > sig_lv4_1;
    48|  sc_signal<sc_lv<4> > sig_lv4_X;
    49|  sc_signal<sc_lv<4> > sig_lv4_Z;
    50|
    51|  hoge uhoge("uhoge");
    52|  uhoge.out_0(sig_0);
    53|  uhoge.out_1(sig_1);
    54|  uhoge.out_X(sig_X);
    55|  uhoge.out_Z(sig_Z);
    56|  uhoge.out_lv4_0(sig_lv4_0);
    57|  uhoge.out_lv4_1(sig_lv4_1);
    58|  uhoge.out_lv4_X(sig_lv4_X);
    59|  uhoge.out_lv4_Z(sig_lv4_Z);
    60|
    61|  svm_waves waves("systemc", uhoge);
    62|
    63|  sc_start(10,SC_NS);
    64|
    65|  return 0;
    66|}
  • 実行結果
  • 20130721_sc_lv_sim.png

っとまぁこんな感じです。


まとめ

sc_logicの場合(1bit)は用意している

  • SC_LOGIC_0
  • SC_LOGIC_1
  • SC_LOGIC_X
  • SC_LOGIC_Z

を使いましょう。
多ビットの場合は、文字列として代入可能ということです。

関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

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

カレンダー
09 | 2017/10 | 11
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ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。