#include "systemc.h"
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
#include <stdlib.h>
using namespace std;



// header file: SWImageDetector.h
SC_MODULE( SW ) {
  // Ports
  sc_in_clk clk;
  sc_in<bool> outputPictureReady;
  sc_out<bool> 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..."<<endl;
	
    sc_signal<bool> inputPictureReady ( "inputPictureReady" );
	sc_signal<bool> 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;
}

<div align="center"><br /><script type="text/javascript"><!--
google_ad_client = "pub-7293844627074885";
//468x60, Created at 07. 11. 25
google_ad_slot = "8619794253";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br />&nbsp;</div>