Classification of logic hazards in combinatorial networks

digital-logiclogic-hazard

I've got a doubt about the classification of logic hazards in combinatorial networks I could not dissipate searching the net.

What I know is that:

a static hazard happens when an input transition which should not trigger an output transition makes the output change momentarily, i.e. it generates a single spurious pulse;

a dynamic hazard happens when an input transition which should trigger an output transition makes the output oscillate before it settles to the new state.

I have trouble classifying this case: the input transition shouldn't produce any output transitions, but it produces more than one spurious pulse, i.e. the output oscillates for a while before returning to its original state.

Is this a case of static or dynamic hazard? According to some definitions it seems it should be classified as static because the output is not intended to change. According to other ones it should be a dynamic hazard because it produces an oscillation (more than two output transitions).

I'm inclined to classify this case as dynamic, since the output changes more than two times, but many definitions I found on the Internet stress the fact that a dynamic hazard happens when the output oscillates before settling to a new state.

Have I got it wrong? What am I missing? Any explanation and/or pointers to authoritative sources for a clearer definition is appreciated.

Best Answer

It appears there definitely is some inconsistency on the definition of a dynamic hazard.

Although I have seen some definitions of dynamic hazards that are similar to yours, for example this one:

"Dynamic hazards occur when the output signal has the potential to change more than once when it is expected to make a single transition from 0 to 1 or 1 to 0."

I have also seen the definition of a dynamic hazard simply defined by multiple transitions, and no requirement that the final state be different (it may or may not be).

For example, in this PowerPoint presentation:

"Dynamic hazards: The output could change more than once during input transitions - caused by multiple paths with different delays from input to the output."

So no mention of whether the output has to finally change state or not.

(whereas static hazards are defined in the same paper to be caused by two input combinations that differ in only one variable and produce a single glitch)

Here is another definition of a dynamic hazard from a University of Surrey logic course:

"A dynamic hazard is the possibility of an output changing more than once as a result of a single input change"

Again, no mention of whether the output has to finally change state or not.

So for these definitions, the difference between static and dynamic hazards is defined by the number of unwanted glitches; static 0 and static 1 hazards have only one, and dynamic hazards have more than one.

Using either of the latter two definitions, then in your case of multiple transitions while the output is expected to remain unchanged, would be classed as a dynamic hazard.

Related Topic