#ifndef __SYSC_CPU_DMUX_HPP #define __SYSC_CPU_DMUX_HPP #include "systemc.h" #include "../cpu_and/cpu_and.hpp" #include "../cpu_or/cpu_or.hpp" #include "../cpu_not/cpu_not.hpp" SC_MODULE (cpu_dmux) { //Inputs sc_in in_a; sc_in in_sel; sc_out out_b; sc_out out_c; cpu_and *and1, *and2; cpu_not *not1; sc_signal sig_not1and2; void do_dmux() { /* if (in_sel.read() == 0) { out_c.write(in_a.read()); } if (in_sel.read() == 1) { out_c.write(in_b.read()); } */ } SC_CTOR(cpu_dmux) { and1 = new cpu_and("AND1"); and2 = new cpu_and("AND2"); not1 = new cpu_not("NOT1"); and1->in_a(in_a); and1->in_b(sig_not1and2); and1->out_c(out_b); and2->in_a(in_a); and2->in_b(in_sel); and2->out_c(out_c); not1->in_a(in_sel); not1->out_b(sig_not1and2); //SC_METHOD(do_dmux); //sensitive << in_a << in_b << in_sel; } }; #endif