#include
SC_MODULE (counter) {
sc_in
sc_in
sc_out
sc_unit<4> cout;
void counter_in(){
if (reset)
cout = 0;
else
cout ++;
out_value.write(cout);
}
SC_CTOR(counter) {
SC_MODULE(counter_in);
sensitive << clock.pos();
sensitive << reset;
}
};
SC_MODULE (power_on) {
sc_signal
void por() {
wait (3, SC_NS);
reset = sc_bit('1');
wait (5, SC_NS);
reset = sc_bit('0');
}
SC_CTOR(power_on) {
SC_THREAD(por);
}
};
int sc_main (int argc, char* argv[]) {
sc_signal
sc_signal
sc_clock clock ("my_clock", 3, 0.5, SC_NS);
counter my_cnt("My_COUNTER");
power_on my_power_on("My_POWER_ON");
my_power_on.reset(reset);
my_cnt.clock (clock);
my_cnt.reset (reset);
my_cnt.out_value(cout_value);
sc_trace_file *wf = sc_create_vcd_trace_file ("sc_test");
sc_trace(wf, clock, "clock");
sc_trace(wf, reset, "reset");
sc_trace(wf, my_cnt.cout, "my_cnt_value");
sc_trace(wf, cout_value, "count_value");
sc_start(150, SC_NS);
sc_close_vcd_trace_file(wf);
return 0;
}
沒有留言:
張貼留言