スポンサーサイト

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

[SystemC] reset/kill event

SystemC 2.3では、Process Controlはかなり拡張されています。
reset/kill 発生時のイベントを利用してプロセスを動作させることも出来ます。

  • サンプルコード

  •  1|#include <stdio.h>
     2|#include <systemc.h>
     3|
     4|SC_MODULE( hoge ){
     5|
     6|  sc_event          ev;
     7|  sc_process_handle t;
     8|  int               q;
     9|
    10|  SC_CTOR( hoge )
    11|  {
    12|    SC_THREAD( calling );
    13|    SC_THREAD( target );
    14|      t = sc_get_current_process_handle();
    15|    SC_METHOD( reset_handler );
    16|      dont_initialize();
    17|      sensitive << t.reset_event() ;
    18|    SC_METHOD( kill_handler );
    19|      dont_initialize();
    20|      sensitive << t.terminated_event() ;
    21|  }
    22|
    23|  void calling(){
    24|    wait(10SC_NS);
    25|    ev.notify();
    26|
    27|    wait(10SC_NS);
    28|    t.reset();
    29|
    30|    wait(10SC_NS);
    31|    ev.notify();
    32|
    33|    wait(10SC_NS);
    34|    t.kill();
    35|    assert( t.terminated() );
    36|
    37|    wait(10SC_NS);
    38|    ev.notify();
    39|  }
    40|
    41|  void target(){
    42|    q = 0;
    43|    while (1) {
    44|      wait(ev);
    45|      ++q;
    46|      cout << sc_time_stamp();
    47|      cout << " q = " << q << endl;
    48|    }
    49|  }
    50|
    51|  void reset_handler(){
    52|    cout << sc_time_stamp();
    53|    cout << " : target was reset" << endl;
    54|  }
    55|
    56|  void kill_handler(){
    57|    cout << sc_time_stamp();
    58|    cout << " : target was killed" << endl;
    59|  }
    60|};
    61|
    62|int sc_main(int argc, char *argv[]) {
    63|
    64|  hoge mhoge("hoge");
    65|  sc_start(500sc_core::SC_NS);
    66|
    67|  return 0;
    68|}
  • 実行結果

  • $> ./main 
    
                 SystemC 2.3.0-ASI --- Feb 16 2013 23:56:43
            Copyright (c) 1996-2012 by all Contributors,
            ALL RIGHTS RESERVED
    
    10 ns q = 1
    20 ns : target was reset
    30 ns q = 1
    40 ns : target was killed
    
関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

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

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