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

入力はクロック信号、リセット信号で、出力はカウンタ数である。
入力reset_xがfalseのとき、内部カウンタctrは0にクリアされる。
入力reset_xがtrueのとき、内部カウンタはクロックの立ち上がりでインクリメントされる。
入力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(); } };
添付ファイル