test01.cpp revision 12855
16876Ssteve.reinhardt@amd.com#include "systemc.h" 28922Swilliam.wang@arm.com 38922Swilliam.wang@arm.comclass Sig : public sc_prim_channel { 48922Swilliam.wang@arm.com public: 58922Swilliam.wang@arm.com virtual void before_end_of_elaboration() 68922Swilliam.wang@arm.com { 78922Swilliam.wang@arm.com cout << "prim_channel: before end of elaboration" << endl; 88922Swilliam.wang@arm.com } 98922Swilliam.wang@arm.com virtual void end_of_simulation() 108922Swilliam.wang@arm.com { 118922Swilliam.wang@arm.com cout << "prim_channel: end of simulation" << endl; 128922Swilliam.wang@arm.com } 138922Swilliam.wang@arm.com virtual void start_of_simulation() 146876Ssteve.reinhardt@amd.com { 158717Snilay@cs.wisc.edu cout << "prim_channel: start of simulation" << endl; 166876Ssteve.reinhardt@amd.com } 176876Ssteve.reinhardt@amd.com}; 186876Ssteve.reinhardt@amd.com 196876Ssteve.reinhardt@amd.comSC_MODULE(X) 206876Ssteve.reinhardt@amd.com{ 216876Ssteve.reinhardt@amd.com SC_CTOR(X) 226876Ssteve.reinhardt@amd.com { 236876Ssteve.reinhardt@amd.com SC_CTHREAD(y, clk.pos()); 246876Ssteve.reinhardt@amd.com } 256876Ssteve.reinhardt@amd.com void y() 266876Ssteve.reinhardt@amd.com { 276876Ssteve.reinhardt@amd.com wait(); 286876Ssteve.reinhardt@amd.com sc_stop(); 296876Ssteve.reinhardt@amd.com } 306876Ssteve.reinhardt@amd.com sc_in_clk clk; 316876Ssteve.reinhardt@amd.com}; 326876Ssteve.reinhardt@amd.com 336876Ssteve.reinhardt@amd.comint sc_main(int argc, char* argv[]) 346876Ssteve.reinhardt@amd.com{ 356876Ssteve.reinhardt@amd.com sc_clock clock; 366876Ssteve.reinhardt@amd.com Sig signal; 376876Ssteve.reinhardt@amd.com X x("x"); 386876Ssteve.reinhardt@amd.com 396876Ssteve.reinhardt@amd.com x.clk(clock); 406876Ssteve.reinhardt@amd.com 416876Ssteve.reinhardt@amd.com if ( sc_start_of_simulation_invoked() ) 427632SBrad.Beckmann@amd.com cout << __FILE__ << "(" << __LINE__ << "): bad start flag should be false" << endl; 438688Snilay@cs.wisc.edu if ( sc_end_of_simulation_invoked() ) 448232Snate@binkert.org cout << __FILE__ << "(" << __LINE__ << "): bad end flag should be false" << endl; 458436SBrad.Beckmann@amd.com 467039Snate@binkert.org sc_start(2, SC_NS); 476285Snate@binkert.org if ( !sc_start_of_simulation_invoked() ) 488923Sandreas.hansson@arm.com cout << __FILE__ << "(" << __LINE__ << "): bad start flag should be true" << endl; 496285Snate@binkert.org 506876Ssteve.reinhardt@amd.com if ( !sc_end_of_simulation_invoked() ) 518922Swilliam.wang@arm.com cout << __FILE__ << "(" << __LINE__ << "): bad end flag should be true" << endl; 528922Swilliam.wang@arm.com 538922Swilliam.wang@arm.com cerr << "Program completed" << endl; 548922Swilliam.wang@arm.com 558923Sandreas.hansson@arm.com return 0; 568922Swilliam.wang@arm.com} 576876Ssteve.reinhardt@amd.com 586876Ssteve.reinhardt@amd.com