Пример #1
0
void timer_tb::source(void) {
	enableDebug(); // This will enable the logs on the console
	read_en.write(0);
	write_en.write(0);
	enable.write(1);
	rst.write(1);
	wait();
	rst.write(0);
	wait();
	rst.write(1);
	addr.write(0x8);
	read_en.write(0);
	write_en.write(1);
	data_in.write(100); // Writing some value in timer_cmp register
	wait();
	addr.write(0x0);
	read_en.write(0);
	write_en.write(1);
	data_in.write(0x7); // Enable the timer interrupts
	wait();
	enable.write(0);
	wait(18415, SC_NS);
	enable.write(1);
	wait();
	addr.write(0x4);
	read_en.write(1);
	write_en.write(0);
	wait();
	wait();
	cout << "@" << sc_time_stamp() << " Timer Val: " << data_out.read() << endl;
	wait(1520, SC_NS);
	cout << "@" << sc_time_stamp() << " Timer Val: " << data_out.read() << endl;
	// Stop the timer
	addr.write(0x0);
	write_en.write(1);
	read_en.write(0);
	data_in.write(0);
	wait();
	//wait();
	//cout << "@" << sc_time_stamp() << endl;
	wait(500, SC_NS);
	// Read the timer val register
	addr.write(0x4);
	read_en.write(1);
	write_en.write(0);
	wait();
	wait();
	cout << "@" << sc_time_stamp() << " Timer Val: " << data_out.read() << endl;
	wait(500, SC_NS);
	// Enable the timer again.
	addr.write(0x0);
	read_en.write(0x0);
	write_en.write(1);
	read_en.write(0);
	data_in.write(0x7);
	//cout << "@" << sc_time_stamp() << endl;
	// Read the timer_val register.
	wait(8980, SC_NS);
	addr.write(0x4);
	read_en.write(1);
	write_en.write(0);
	wait();
	wait();
	cout << "@" << sc_time_stamp() << " Timer Val: " << data_out.read() << endl;
	wait();
	addr.write(0x8);
	write_en.write(1);
	read_en.write(0);
	data_in.write(40);
	//cout << "@" << sc_time_stamp() << endl;
	wait(10000, SC_NS);
	disableDebug();
	//cout << "@" << sc_time_stamp() << endl;
	wait(960000, SC_NS);
	enableDebug();
	//cout << "@" << sc_time_stamp() << endl;
	wait(740, SC_NS);
	addr.write(0x4);
	read_en.write(1);
	write_en.write(0);
	wait();
	wait();
	cout << "@" << sc_time_stamp() << " Timer Val: " << data_out.read() << endl;
	wait(9250, SC_NS);
	disableDebug();
	cout << "@" << sc_time_stamp() << endl;
	wait(98990, SC_US);
	cout << "@" << sc_time_stamp() << endl;
	sc_stop();
}
Пример #2
0
void MY_Scene_Base::toggleDebug(){
	isDebugEnabled() ? disableDebug() : enableDebug();
}