Timing algorithm version 1.1 9/19/2002

 

1.    Color all states with R or F based on the Boolean evaluation of the node under consideration.

 

2.    Color those edges that we know are stable in the untimed sense. Means finding the state->state transitions where the output changes and seeing if the path from my node of interest to the output can propagate. If so, then color the edge with a 0 or 1, depending on the Boolean evaluation.

 

3. Find points where the state graph has state-to-state transitions from R->F or F->R. For each one of these, do the following:

 

4. Find the edge transition at which this occurs (ie. a+, b-, etc.)

 

5. Set this as the reference point.

 

6. Find the maximum delay from this transition event to the node of interest in my decomposition.

a. What if this path doesn't exist, or must it always? It will always exist.

b. If there are two paths, do I take the longer one? Yes, for now. This is the conservative route. Later, maybe dynamic analysis could be used to determine which path is the active one.

c. What if there is both a + and - event? See answer to b above.

 

   7. Find the first zone following the transition in step 4.

 

   8. For each successor state:

 

   9. For each transition out of the successor state:

 

   10. Find the causal event for this transition.

(assume it’s the previous transition)

 

   11. Add this information to the zone.

 

   12. Look up in the ruleADT the <lower, upper> bounds.

   The ruleADT is indexed by the event number.

   The row is the enabling event, the column is the enabled event: rules[enabled,enabling]

   A non-zero entry means something interesting.

 

   13. Modify zone with new <lower upper> information

 

   14. Canonicalize zone

 

15. Continue until the zone timing shows I've exceeded max delay in my decomposition or I reach a termination point. If max delay exceeded, color edge 0 or 1 and go back to step 3. A termination point is when I find an edge enabled in the opposite direction of the transition under consideration. If this happens, cannot stabilize the edge.

 

16. Propagate the stable edges and check for coloring inconsistencies.