bambooflow Note

リセット動作

最終更新:

Bot(ページ名リンク)

- view
メンバー限定 登録/ログイン

リセット動作

SystemC v2.1では、リセット動作を記述できるプロセスは、SC_METHODとSC_CTHREADだけ。
SC_THREADでのリセット動作の実現はやってやれないこともないと思うが、現状難しいと思う。
でも、のちのちのヴァージョンではSC_CTHREADは廃止されてSC_THREADでリセット動作も可能になるかも。

SC_METHODでのリセット動作


カウンタ

クロック数をカウントする。

入力はクロック信号、リセット信号で、出力はカウンタ数である。
入力reset_xがfalseのとき、内部カウンタctrは0にクリアされる。
入力reset_xがtrueのとき、内部カウンタはクロックの立ち上がりでインクリメントされる。

#include <systemc.h>

SC_MODULE(COUNTER)
{
  sc_in_clk   clk;
  sc_in<bool> reset_x;

  sc_out<int> ctr;

  void process() {
    if (!reset_x) {
      ctr = 0;
    }
    else {
      ctr++;
    }
  }

  SC_CTOR(COUNTER) {
    SC_METHOD(process);
    sensitive << clk.pos();
  }
};
添付ファイル
記事メニュー
ウィキ募集バナー