リセット動作
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();
}
};
添付ファイル
