#include #include #include "systemc.h" #include "systemc" #include #include #include "cpu_srlatch.hpp" SC_MODULE(test_cpu_srlatch) { sc_out s,r; sc_in clk; void test_cpu_srlatch_stim() { wait(); s.write(0); r.write(1); wait(); s.write(1); r.write(0); wait(); s.write(1); r.write(1); wait(); s.write(1); r.write(0); wait(); s.write(0); r.write(0); wait(); s.write(0); r.write(0); wait(); s.write(0); r.write(1); wait(); s.write(0); r.write(0); wait(); s.write(0); r.write(0); wait(); sc_stop(); } SC_CTOR(test_cpu_srlatch) { SC_THREAD(test_cpu_srlatch_stim); sensitive << clk.pos(); } }; int sc_main(int argc, char **argv) { sc_signal sig_in_r, sig_in_s, sig_out_q, sig_out_nq; sc_clock TestClk("TestClk", 10, SC_NS, 0.5, 1, SC_NS); test_cpu_srlatch Stim1("Stimulus"); Stim1.r(sig_in_r); Stim1.s(sig_in_s); Stim1.clk(TestClk); cpu_srlatch DUT("cpu_srlatch"); DUT.in_r(sig_in_r); DUT.in_s(sig_in_s); DUT.out_q(sig_out_q); DUT.out_nq(sig_out_nq); sc_trace_file *Tf; Tf = sc_create_vcd_trace_file("trace_cpu_srlatch.dat"); sc_trace(Tf, sig_in_r, "IN_R"); sc_trace(Tf, sig_in_s, "IN_S"); sc_trace(Tf, sig_out_q, "OUT_Q"); sc_trace(Tf, sig_out_nq, "OUT_NQ"); sc_start(); sc_close_vcd_trace_file(Tf); return(0); }