#include "systemc.h" #include #include #include #include #include using namespace std; // header file: SWImageDetector.h SC_MODULE( SW ) { // Ports sc_in_clk clk; sc_in outputPictureReady; sc_out inputPictureReady; // Process functionality void do_SWprocess(); // Constructor SC_CTOR( SW ) { SC_CTHREAD(do_SWprocess, clk.pos()); } }; // implementation file: SWImageDetector.cpp void SW::do_SWprocess() { //here goes your implementation //this is construction for waiting until signal state satisfies you //do{ // wait(); // }while(ready.read()!=true); } /* here goes functionality and "hardware" module description */ int sc_main(int args, char* argv[]){ sc_trace_file *trcf= sc_create_vcd_trace_file("trace-it"); if(trcf==NULL) cout<<"Sorry, no tracing..."< inputPictureReady ( "inputPictureReady" ); sc_signal outputPictureReady ( "outputPictureReady" ); sc_clock clock( "Clock" , 20 , 0.5 , 0.0 ); SW sw( "SW" ); sw.clk( clock ); sw.outputPictureReady( outputPictureReady ); sw.inputPictureReady( inputPictureReady ); /* here goes code for "hardware" module */ sc_trace(trcf, inputPictureReady, "inputPictureReady"); sc_trace(trcf, outputPictureReady, "outputPictureReady"); sc_trace(trcf, clock, "clk"); sc_start(100,SC_NS); sc_close_vcd_trace_file(trcf); return 0; }