Hazard
checking algorithm version 1.4 10/08/2002
1.
[Done]
Color all states with R or F based on the Boolean evaluation of the node under
consideration.
2.
[Done]
Speed Independent edge stabilization. Find the state->state transitions where
the output changes and see 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. Store these stabilized edges in a linked list for
propagation later.
3. [Done]
Find points where the state graph has state-to-state transitions from R->F
or F->R (this is where there is a change in evaluation on my node under
consideration). Store these in a separate linked list. For each of these, do
the following:
4. [Done]
Find the edge transition at which this occurs (i.e. a+, b-, etc.). Store this
in the linked list.
5. [Done]
Set this as the reference point.
6. [Done]
Find the maximum delay from this reference point to the node of interest in my
decomposition. If more than one path, take the outside bounds.
Note: Sense ignored in decomposition i.e. if the reference transition is
a+ then a timing must be calculated for any a+ or a- input found in my
decomposition.
7. [Done]
Find the zone associated with the state previous to the reference transition.
8. [Done] Make a new zone of
dimension + 1.
9. [Done] Copy previous clocks data
into new zone.
10. [Done] Set all new entries
equal to INFINITY except the diagonal entry which should be set to 0;
11. [Done] Make new clockkey vector
of dimension + 1, copy previous clockkey data, and put new transition in the
new entry.
10. [Done] Modify zone with new <lower,
upper> information.
Go to rules->[causal
transition][new transition], get lower field and place –(lower) in upper right
corner of clocks matrix. Get upper field and place in lower left corner.
11. [Done] Canonicalize zone. Use Floyd’s all path
algorithm.
12. [Done] Extract new timing information from
zone.
13. [Done]
Compare the minimum elapsed time in the zone with the maximum delay through my
decomposition.
14.
If
the minimum elapsed time is equal to or greater than delay through my
decomposition, color this edge with a stable color (1 if color was Rising, 0 if
color was Falling). Go to step 3, else go to step 7.
15. If I reach a
termination point, I cannot stabilize the edge so leave it colored as is. Go to
step 7. (A termination point is when I find an edge enabled in the opposite
direction of my reference transition(maybe), I reach an edge previously
stabilized, or the enabling on an edge changes from a R->F or an F->R.)
16. Propagate the
stable edges from the SI hazard check and the timed hazard check.
17. Propagate the
stable edges from the start state.
18. Check for and
report coloring inconsistencies.