Logic Design for Array-Based Circuits
Copyright © 1996, 2001, 2002 Donnamaie E. White
Last Edit July 22, 2001
Timing checks in the simulators are designed to help the designer screen hazards and race conditions from the circuit and from the test vector set. LASAR 6 is used as the role model for race and hazard evaluation.
Timing hazards are divided into two basic categories: structural and functional.
Structural Hazard Types
* Converging Ambiguities
A Convergence hazard is one where at least two edges come together at a primitive and the ambiguity associated with the edges overlap so that the primitive may or may not pulse. (A primitive is an element provided by the simulator software. It is a basic building block used to construct a logic model.)
* Cumulative Ambiguity
A primitive in the model has a pulse at its output, but the ambiguities at the rising and falling edges are so large that they overlap. Since the whole pulse is "gray", it may or may not occur and is therefore flagged as a hazard.
* Composite Hazard
A primitive's inputs change in such a way that the primitive's output will change at a future time. If, before that time occurs, the inputs change again in such a manner that the output change would be reversed, then the simulator doesn't know if the primitive output will respond at all. (This can be described as the inputs changing faster than the propagation delay of the primitive.) This is flagged as a hazard by LASAR 6.
* Setup violations
Set-up time violations are situations where a node has not remained in a stable state long enough before another node changes state. This test is common on data inputs to flip/flops with respect to the clock of the flip/flop.
* Hold time violations
Hold time violations are situations where a node does not remain in a stable state long enough after another node changes state. This is common on data lines with respect to clock inputs where the data must be maintained in a stable state for a specified time after the clock change.
* Minimum pulse width violation
The time between two consecutive edges of a signal must be greater than a specified value.
* Minimum period violation
The time between two consecutive rising or falling edges of a signal must be greater than a specified value.
For a node that has multiple hazards associated with it within a single pattern, only the last hazard is reported by LASAR 6.
The resulting hazard report file will contain only those hazards that meet the definition of "persist". A persistent hazard is one that causes a node to go unknown and stay unknown until the end of the current pattern. This is a valid way of screening out combinatorial glitches so long as the sample time is long relative to the longest delay time.
What is required to fix race problems
* Identify source of problem
The above errors can be caused by vector races or by internal timing conditions. The LASAR 6 hazard report file will show a trace back to the primary input or inputs that caused the error.
If it is traced to two separate inputs then it can generally be fixed by changing the input pattern as long as it does not violate the intended function.
If it is traced to only one input then the problem is due strictly to internal timing and will require modification of the circuit to change its timing.
* Implementing The Fixes
In the case of a vector race, it will be necessary to return to the EWS system where the design was done. The simulation input file must be modified to fix the timing problem and the simulations rerun.
In the case of the internal timing problems, it will still be necessary to return to the EWS system, this time to modify the schematic as required. After this is done, rerun all steps, including all simulations, before returning to RaceCheck.
* Looping caused by iterative fixes
Iterative fixes may result from three primary causes.