Skip Nav
Home » Forums » SystemC Forum

Icon - KMLM List KMLM List

View email archives for the history of this mailing list.

List Home All Archives Dates Threads Authors Subjects
systemc-forum - [Systemc-forum] dynamic sensitivity in method processes Message Thread: Previous | Next
  • To: systemc-forum@xxxxxxxxxxx
  • From: Chamath Jayatilleke <chamath_jayatilleke@xxxxxxxxx>
  • Date: Fri, 2 Aug 2002 07:29:32 -0700 (PDT)
Send Email to
Send new message
Reply to this message

I am trying to add some characteristics of SC_THREAD
processes into SC_METHOD processes. In short, my
requirement can be illustrated as follows,

   sc_port<my_out_if>  out;  

   void myProcess()
     sc_event e1;
     if (some_condition) next_trigger(e1);
     out -> write();

void MyChannel::write()
    sc_event e2;
    if (another_condition) next_trigger(e2);

For simplicity, I have not shown the my_out_if
interface and MyChannel class definitions. But it can
be assumed that write() is  an interface method
accessible via port out. 

When both conditions are satisfied on a particular
simulation cycle I would like this method process to
be halted from simulation until both events get
triggered in-turn. But the problem is that
next_trigger() will cause the last event to override
the first one in the dynamic sensitivity list for that
process and whether or not e1 is notified, the process
will get triggered as soon as e2 is notified.

I have already implemented my requirement by creating
my own event que on heap but there is a significant
performance penalty in my solution. I would like to
know whether there is a better way to go about doing
this and avoid re-inventing the wheel.

Many Thanks


Do You Yahoo!?
Yahoo! Health - Feel better, live better

By Date: Previous | Next Current Thread By Thread: Previous | Next

  Mail converted by the most-excellent MHonArc 2.6.10