Ee6301 DLC Eee Iiist Au Unit IV
Ee6301 DLC Eee Iiist Au Unit IV
Ee6301 DLC Eee Iiist Au Unit IV
UNIT – IV
ASYNCHRONOUS SEQUENTIAL CIRCUITSAND PROGRAMMABLE LOGIC DEVICES
PART – A
1. Explain the various types of hazards in sequential circuit design and the methods to eliminate them.
Give suitable examples. (16) [N/D’14]
Hazards in any system are obviously an un-desirable effect caused by either a deficiency in the
system or external. Influences. In digital logic hazards are usually referred to in one of three ways:
a) Static Hazards
b) Dynamic Hazards
c) Function Hazards
These logic hazards are all subsets of the same problem: - When changes in the input variables do
not change the output due to some form of delay caused by logic elements (NOT, AND, OR gates
etc), this results in the logic not performing its function properly.
This is however a temporary problem, and the logic will finally come to the desired function. Despite
the logic arriving at the correct output, it is imeritive that hazards be eliminated as they can have an
effect on other systems. Imagine hazards like this in a piece of hospital equipment.
Static Hazards
Definition:- "When one input variable changes, the output changes momentarily when it shouldn't"
This particular type of hazard is usually due to a NOT gate within the logic. We can see the effects
of the delay in the circuit from the following flash animation.
The hazard can be dealt with in two ways:
1. Insert another (additional) delay to the circuit. This then eliminates the static hazard.
2. Eliminate the hazard by inserting more logic to counteract the effects (Note this makes
assumptions that the logic will fail)
The first case is the most used of the two options. This is because it does not make
assumptions about the logic, instead the method adds redundancy to overcome the hazard.
To solve the hazard we shall use our previous example and apply a theory that 'Huffman'
discovered.
The insertion of a redundant loop can eliminate a static hazard.
In the next example, it will also be evident that there will not be a situation where a static '0' occurs.
A static '0' hazard is one which briefly goes to '1' when it should remain at '0'. A static '1' hazard is
the reverse of this situation, i.e. the output should remain at '1' yet under some condition it briefly
changes state to '0' (something we shall see in the following example)..
Example of Static Hazards
The Static '1' Hazard.
Let us consider an imperfect circuit that suffers from a delay in the physical logic elements i.e. AND
gates etc.
The simple circuit performs the function:
f = X1.X2 + X1'.X3
and the logic diagram can be shown as follows:
At the starting diagram, it is clear that if no delays were to occur, then the circuit would function
normally. However since this is not a perfect circuit, and an error occurs when the input changes
from 111 to 011. i.e. When X1 changes state.
This Karnaugh Map shows the circuit. The two gates are shown by solid rings, and the hazard can
be seen under the dashed ring. The theory proved by Huffman tells us that by adding a redundant
loop 'X2X3' this will elimate the hazard. So the resulting logic is of the form shown in the next figure.
Dynamic Hazards
Definition:- "A dynamic hazard is the possibility of an output changing more than once as a
result of a single input change"
Dynamic hazards often occur in larger logic circuits where there are different routes to the
output (from the input). If each route has a different delay, then it quickly becomes clear that
there is the potential for changing output values that differ from the required / expected output.
e.g. A logic circuit is meant to change output state from '1' to '0', but instead changes from '1' to
'0' then '1' and finally rests at the correct value '0'. This is a dynamic hazard.
Dynamic hazards take a more complex method to resolve. The below example shows how a
dynamic hazard can occur but now how to solve it.
Let us take the circuit above, and see the proper logic output with the logic values above
Let artificial delays be introduced in some of the elements. Marked D1, D2 and D3.
Consider D1 < D2 < D3.
i.e. The delay in D1 is less than the delay in D2, and the delay in D3 is greater than the
delay in D2.
Say that input B changes from 0 to 1. Working with one delay at a time the output can be
determined.
There could be a different output value for every different delay.
The NOT gate shown changes from 1 to 0. Remembering that D1 is the shortest of the
three delays, the AND gate shown will also change from 1 to 0.
Because the other delays (D2, D3) are longer than D1, and because the other gates have
no delay (or neglible delay), our output changes from 1 to 0. (The first effect of the hazard).
The next delay to occur is D2. So the OR gate shown implements the change (0 OR 1 = 1).
Now the AND gate has only seen the change in one of its inputs due to the delay D3 being
longer than the other delays. So momentarily, both inputs are logic 1 which means the AND
gates output goes to logic 1 hence changing the output of the entire circuit (1 OR 0 = 1).
The next delay to occur is D3. The OR gate reacts slower than D1 to the change in input,
but now the OR gate implements the change (0 OR 0 = 0). There is a knock on effect to the
AND gate (as 0 AND 1 = 0) and then again to the output of the entire circuit. The output
rests at 0.
This is the final stage as there are no more delays in the circuit and therefore no more
changes of state due to input B changing.
D3(1 OR 0 = 1).
The circuit finally rests at the correct logical value for an ideal circuit. However the output
has changed values twice before coming to the correct result on the third change. If this was
an ideal circuit then the output should have changed only once.
2. Describe with reasons the effect of races in asynchronous sequential circuit design. Explain its type
with illustrations. Show the method of race – free state assignments with examples. (16) [N/D’14]
A race condition or race hazard is the behaviour of an electronic, software, or
other system where the output is dependent on the sequence or timing of other uncontrollable
events.
A race condition may occur in a system of logic gates where inputs vary. If a given output
depends on the state of the inputs it may only be defined for steady-state signals. As the inputs
change state a small delay will occur before the output changes due to the physical nature of
the electronic system. The output may, for a brief period, change to an unwanted state before
settling back to the designed state. Certain systems can tolerate such glitches but if this output
functions as a clock signal for further systems that contain memory, for example, the system
can rapidly depart from its designed behaviour..
Types:
Critical and non-critical forms
a) A critical race condition occurs when the order in which internal variables are changed
determines the eventual state that the state machine will end up in.
b) A non-critical race condition occurs when the order in which internal variables are changed does
not determine the eventual state that the state machine will end up in.
Static, dynamic, and essential forms
a) A static race condition occurs when a signal and its complement are combined together.
b) A dynamic race condition occurs when it results in multiple transitions when only one is intended.
They are due to interaction between gates. It can be eliminated by using no more than two levels
of gating.
c) An essential race condition occurs when an input has two transitions in less than the total
feedback propagation time. Sometimes they are cured using inductive delay line elements to
effectively increase the time duration of an input signal.
Design techniques such as Karnaugh maps encourage designers to recognize and eliminate race
conditions before they cause problems. Often logic redundancy can be added to eliminate some kinds
of races.
To avoid critical races, we must find a binary state assignment such that only one binary variable
changes during each state transition.
An attempt to find such an assignment is shown in the transition diagram.
State a is assigned binary 00, and state c is assigned binary 11.
This assignment will ca use a critical race during the transition from a to c because there are two
changes in the binary state variables and the transition from a to c may occur directly or pass
through b.
Note that the transition from c to a also ca uses a race condition, but it is noncritical because the
transition does not pass through other states.
A race-free assignment can be obtained if we add an extra row to the flow table. The use of a
fourth row does not increase the number of binary state variables, but it allows the formation of
cycles between two stable states.
The transition table corresponding to the flow table with the indicated binary state assignment is
shown in Fig. The two dashes in row d represent unspecified states that can be considered don't-
care conditions. However, care must be taken not to assign 10 to these squares, in order to avoid
the possibility of an unwanted stable state being established in the fourth row.
A flow table with four rows requires a minimum of two state variables. Although a race-free assignment
is sometimes possible with only two binary state variables, in many cases the requirement of extra rows
to avoid critical races will dictate the use of three binary state variables
Multiple-Row Method
The method for making race-free stale assignments by adding extra rows in the flow table is
referred to as the shared-row method.
A second method called the multiple-row method is not as efficient, but is easier to apply.
In multiple- row assignment each state in the original row table is replaced by two or more
combinations of state variables.
Fig: Multiple row assignment
There are two binary state variables for each stable state, each variable being the logical
complement of the other. For example, the original state a is replaced with two equivalent states
a1 =000 and a2 = 111.
The output values, not shown here must be the same in a1 and a2. Note that a1 is adjacent to
b1, c2 and d1, and a2 is adjacent to c1, b2 and d2, and similarly each state is adjacent to three
states with different letter designations.
The expanded table is formed by replacing each row of the original table with two rows. In the
multiple-row assignment, the change from one stable state 10 another will always cause a
change of only one binary state variable.
Each stable stale has two binary assignments with exactly the same output.
3. Design an asynchronous sequential circuit that has two inputs and and one output Z. When
, the output Z is 0.The first change in that occurs while is 1 will cause output Z to be
1. The output Z will remain 1 until returns to 0.(16) [A/M’15]
State diagram
K-map simplification
Logic diagram
4. Show how to program the fusible links to get a 4 bit Gray code from the binary inputs using PLA and
PAL and compare the design requirements with PROM. (16) [N/D’15]
Gray code generator using PROM
̅ ̅
̅ ̅
̅ ̅
It is noted that 4 x 7 x 4 PLA is needed to implement gray code converter and same for PAL also.
Total number of AND OR gates links are
96 – PLA
56 – PAL
64 – PROM
5. What are static – 0 and static – 1 hazard? Explain the removal of hazards using hazard covers in k-
map. (8) [ M/J’16]
Static Hazards
A static hazard occurs when a single input variable change should cause no change in the output of
a combinational logic circuit, but a short glitch of the incorrect logic level occurs.
The problem occurs because real physical implementations of logic functions have finite propagation
times which are variable, and if two inputs to a gate should theoretically change simultaneously, one
will actually change before the other.
If more than one input variable changes "simultaneously" there is no way to guarantee that such
glitches will not occur.
This Karnaugh Map shows the circuit. The two gates are shown by solid rings, and the hazard can
be seen under the dashed ring. The theory proved by Huffman tells us that by adding a redundant
loop 'X2X3' this will elimate the hazard. So the resulting logic is of the form shown in the next figure.