Hi,

Is there a way to obtain the delta-cycle semantics of SystemC using the 
existing event management features in gem5?

In other words, I would like to be able to delta-schedule an event at the 
current tick doing something like eventManager.schedule(event, curTick(), 
delta=true) so that it triggers after all events already scheduled at current 
tick *and* after all events that are going to be immeditelly-scheduled at the 
current tick calling eventManager.schedule(event, curTick(), delta=false).

Looking at the current event scheduling logic, it looks like the event queue 
actually is a LIFO, which is the complete opposite to the delta-cycle 
semantics. A FIFO would be somewhat closer but still different from a true 
delta-cycle since it is still possible to end up with hard-to-anticipate events 
interleaving in both cases.

A bad work around would be to schedule at curTick()+1, which introduces a 
negligible imprecision. However, it gets worse if the event handler then calls 
clockEdge() as it will return the next clock edge, thus amplifying 
significantly the inaccuracy.

Thanks,
Gabriel
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to