Functional Hazards occur when more than one input variable is manipulated at a time. They are non-solvable hazards and is impossible to eliminate them using logic. It depends on the architecture and construction of the circuit. In order to avoid functional hazards, we mostly have to restrict the input variables from changing and make sure that only one of the many input variables is changed. However, the restriction doesn’t always work, mostly when there are only two inputs and one of them is a clock signal while the other derives its input signal from any external sources for the purpose of measurement or detection.
Detection of Functional Hazard:
In this case, let us consider the entire circuit is designed on the same chip. A has an initial value of 0 and B has an initial value of 1. This is an ideal condition and we are able to achieve our desired output. Now let us consider a different scenario.
Let the NOT gate: n1 be built on chip1 and NOT gate: n2 built on chip2 on the PCB. Now the values of A are changed to 1 and B is changed to 0. And also there is some delay in chip1 and NOT gate(n1) is unable to produce any output as of now. Hence it completely changes our result. Now the above diagram represented in Fig 1 becomes :
Removal of Functional Hazard:
There are certain ways to remove functional hazards and they are as follows :
- Restrict the input variables from changing.
- Changing only one input at a time.
- Ensuring equal delay time within all the components of the circuit.
- Careful designing of PCB(Printed circuit boards) to minimize delay within different components.
- To ensure that the path delays are matching.
- Adding more gates doesn’t ensure the removal of functional hazards due to the unavailability to apply the Huffman method