A data source that uses a net-level four-phase handshake:
SC_MODULE(mydata_generator)
{
sc_out < int > data;
sc_out < bool > req;
sc_in < bool > ack;
void myloop()
{
while(1)
{
data = data.read() + 1;
wait(10, SC_NS);
req = 1;
do { wait(0, SC_NS); } while(!ack.read());
req = 0;
do { wait(0, SC_NS); } while(ack.read());
}
}
SC_CTOR(mydata_generator)
{
SC_THREAD(myloop);
}
}