スポンサーサイト

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

デバッグ出力のコードの作り方

SystemC Advent Calendar2012 の 8日目の記事です。


SystemCにおいて デバッグ用に表示を拡張させたい時に
以下のように #defineマクロを作成して作ることができます。
今回は、シミュレーション時間と呼ばられた際のコード行を
一緒に出力するものをサンプルとしてあげています。

  • サンプルコード(SystemC-2.3版)
     1|#include <systemc.h>
     2|
     3|#define DEBUG_INFO  \
     4|        cout << "[Simulation @ " << sc_time_stamp() \
     5|             << ", l="    << __LINE__ << "]";       \
     6|{                                                   \
     7|  sc_simcontext* simc = sc_get_curr_simcontext();   \
     8|  if((simc != 0) && sc_is_running()) {              \
     9|    sc_process_b* p =                               \
    10|       simc->get_curr_proc_info()->process_handle;  \
    11|    if(p != 0) cout << p->name();                   \
    12|  }                                                 \
    13|}                                                   \
    14|cout << " : "
    15|
    16|int sc_main(int argc, char* argv[])
    17|{
    18|  sc_signalsc_uint<32> > data;
    19|
    20|  data = 0;
    21|  DEBUG_INFO << "Data = "<< data << endl ;
    22|
    23|  data = 30;
    24|  sc_start(100SC_NS);
    25|  DEBUG_INFO << "Data = "<< data << endl ;
    26|
    27|  data = 1100;
    28|  sc_start(50SC_NS);
    29|  DEBUG_INFO << "Data = "<< data << endl ;
    30|
    31|  sc_start(50SC_NS);
    32|
    33|  return 0;
    34|}
  • 実行結果
  • $> ./main 
    
                 SystemC 2.3.0-ASI --- Jul 13 2012 06:33:43
            Copyright (c) 1996-2012 by all Contributors,
            ALL RIGHTS RESERVED
    
    [Simulation @ 0 s, l=22] : Data = 0
    [Simulation @ 100 ns, l=26] : Data = 30
    [Simulation @ 150 ns, l=30] : Data = 1100
    
関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

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

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