[SystemC] disable and enable

SystemC 2.3では、Process Controlはかなり拡張されています。
今回は、「disable & enable」についてです。

  • サンプルコード

  •  1|#include <stdio.h>
     2|#include <systemc.h>
     3|
     4|SC_MODULE( hoge ){
     5|
     6|  sc_in<bool>       clock;
     7|  sc_process_handle t;
     8|
     9|  SC_CTOR( hoge )
    10|  {
    11|    SC_THREAD( calling );
    12|    SC_THREAD( target );
    13|      sensitive << clock.pos();
    14|      t = sc_get_current_process_handle();
    15|  }
    16|
    17|  void calling(){
    18|    wait(20SC_NS);
    19|    t.disable();      // @time 20ns
    20|    wait(20SC_NS);
    21|    t.enable();       // @time 40ns
    22|
    23|    wait(110SC_NS);
    24|    t.disable();      // @time 150ns
    25|    wait(200SC_NS);
    26|    t.enable();       // @time 350ns
    27|  }
    28|
    29|  void target(){
    30|     while (1) {
    31|       wait();
    32|       cout << sc_time_stamp() << endl;
    33|     }
    34|  }
    35|
    36|};
    37|
    38|int sc_main(int argc, char *argv[]) {
    39|
    40|  sc_clock clock( "clock"100SC_NS);
    41|
    42|  hoge mhoge("hoge");
    43|  mhoge.clock(clock);
    44|
    45|  sc_start(500sc_core::SC_NS);
    46|
    47|  return 0;
    48|}
  • 実行結果

  • $> ./main
    
                 SystemC 2.3.0-ASI --- Dec 14 2012 21:01:01
            Copyright (c) 1996-2012 by all Contributors,
            ALL RIGHTS RESERVED
    
    0 s
    100 ns
    400 ns

「disable & enable」の場合は、前回の「suspend & resume」と異なり
シミュレーション時間が変わることはありません。
その時刻に「ただ動作しない」だけになります。

関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

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

カレンダー
05 | 2017/06 | 07
- - - - 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 -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数