I just chatted with some people here about the idea of the Reactive-NBA region that was discussed today. This actually opens a chance to more deeply normalize behavior. In particular, the hole that is presented by the example in 17.5 could likely be (mostly) filled without too much trouble. Basic thoughts: 1) program nba's and cont assigns should be scheduled into the Reactive NBA region (as discussed in the meeting) 2) a call to a non-program function or task should delay the thread to the Reactive NBA region before AND after the enable 3) program ports should likely have writes deferred via a conceptual cont assign (and thus fall into case 1) The problem with the current scheduling of non-program tasks and functions is that observability is compromised and, given the overall cycle, other non-program events, nbas, etc. can "sneak in" between program-program deltas. If such calls are always delayed, you get clean program-program event semantics and better observability. The "cost" is the unconditional "reactive" delta. For functions and tasks that don't have side-effects, there should be no change in behavior from what would currently happen. For impure routines, program code is guaranteed to reach "semi-stability" before any design activity occurs. Design activity is likely also more consistent since all pending activity happens as the same time. A further note on this is that all scheduling decisions remain static so there shouldn't be any serious implementation issues for anyone; we do end up with some additional reactive deltas but I think that the stronger stability guarantees warrant the cost. Anyway, please give this some thought. Gord. -- -------------------------------------------------------------------- Gordon Vreugdenhil, Staff Engineer 503-685-0808 Model Technology (Mentor Graphics) gordonv@model.comReceived on Thu Apr 28 13:45:43 2005
This archive was generated by hypermail 2.1.8 : Thu Apr 28 2005 - 13:46:40 PDT