In the previous section we have seen the analysis of asynchronous sequential circuits. It gives us the information of how an existing sequential circuit works.
Design of Fundamental Mode Sequential Circuits
In
the previous section we have seen the analysis of asynchronous sequential
circuits. It gives us the information of how an existing sequential circuit
works. The design process is an exactly reverse process. Here, we know the
behaviour of the circuit and we have to develop the sequential circuit from
scratch. Let us see the steps involved in designing of asynchronous sequential
circuit.
1.
Construction of a primitive flow table from the problem statement. An
intermediate step may include the development of a state diagram.
2.
Primitive flow table is reduced by eliminating redundant states by using state
reduction techniques.
3.
State assignment is made.
4.
The primitive flow table is realized using appropriate logic elements.
•
The flow table in the asynchronous sequential circuit is same as that of state
table in the synchronous sequential circuit. In asynchronous sequential
circuits state table is known as flow table because of the behaviour of the
asynchronous sequential circuit. The state changes occur independent of a
clock, based on the logic propagation delay, and cause the states to
"flow" from one to another.
•
A primitive flow table is a special case of flow table. It is defined as a flow
table which has exactly one stable state for each row in the table. The design
process begins with the construction of primitive flow table. Let us see the
following example to understand the process of construction of the primitive
flow table from the problem statement.
Ex.
7.6.1 Develop the state diagram and primitive row flow table for a logic system
that has two inputs S and R and a single output Q. The device is to be an edge
triggered SR flip-flop but without a clock. The device changes state on the
rising edges of the two inputs. Static input values are not to have any effect
in changing the Q output.
AU
: Dec.-06, Marks 16
Sol. : For SR flip-flop, initial state A is stable when no input changes have been detected. When SR input changes from 00 to 01 (Reset), the state transition occurs from A to C and when SR input changes from 00 to 10 (Set), the state transition occurs from A to B. This is illustrated in Fig. 7.6.1.
The
state B is stable with a 10 static SR input and Q+ is a 1. The state
C is stable with a 01 static SR input and Q+ remains a 0. A state
transition from B to D occurs when the SR input changes from 10 to 00 with Q+
output remains a 1. State change from B to E occurs when SR changes from 10 to
11. Once state E is reached the Q+ output changes from a 1 to a 0.
State change from D to C occurs when SR changes from 00 to 01. Once state C is
reached the Q+ output changes from a 1 to a 0. An SR input sequence
of 00 → 01 → 11 → causes an A → C → F → state transition. The Q+
remains a 0 unit the 01 → 11 SR change occurs. The 11 static input is allowed
because only input rising edges cause Q changes. State transition F to B occurs
when SR changes from 11 to 00.
The
state change occurs from B to E when SR changes from 10 → 11, and the Q+ output
is a 1 for the transition. A state transition from state E to state G occurs
when SR changes from 11 to 10 and Q+ is 0. When SR input changes
from 10 → 11 transition from G to E occurs. Once in state G, a 00 input on SR
returns the state machine back to state A.
A
state transition from state F to H occurs when SR changes from 11 to 01. For SR
input 10 state transition F to B occurs.
Table
7.6.1 shows the primitive flow table constructed from the state diagram.
The
next step in the design process is to reduce the primitive flow table using
state reduction techniques. Here, we are going to use merger graph technique to
reduce primitive flow table.
Merger
graphs is state reducing tool used to reduce states in the incompletely
specified machine. The merger graph is defined as follows :
1. It contains the same number of vertices as the state table contains states. Refer Fig. 7.6.2.
2.
Each compatible state pair is indicated by a line drawn between the two state
vertices.
3.
Every potentially compatible state pair, with outputs not in conflict but whose
next states are different, is connected by a broken line. The implied states
are drawn in the line break between the two potentially compatible states.
4.
If two states are incompatible, no connecting line is drawn.
Ex.
7.6.2 Reduce the primitive flow table shown in Table 7.6.2 using merger graph
method.
Sol.
:
1.
States A and B are compatible. Thus the line is drawn between A and B.
2.
State A and C are compatible. Thus the line is drawn between A and C.
3.
State B and C are compatible. Thus, the line is drawn between B and C.
4.
States A and D are compatible only if implied states C and E are compatible.
This is indicated by drawing a broken line between A and D with CE written in
between.
5.
States A and E are incompatible since there outputs are different, so line is
not drawn between A and E. For the same reason states B, C and D are also not
compatible with E.
6.
State B and D are compatible. Thus, the line is drawn between B and D.
7.
States C and D are compatible only if implied states C and E are compatible.
This is indicated by drawing a broken line between C and D with CE written in
between.
8.
It is found that states C and E are not compatible and hence states A and D,
and states D and C are also not compatible. This is indicated by cross (X)
marks.
The
compatibility lines of merger graph form a geometrical pattern consisting of
one triangle (A, B, C), a line (B, D) and a single state E that is not
compatible with any others. Thus maximum compatibles are :
(A,
B, C) (B, D) (E)
Here,
we can notice that state B is common in two sets. However, it can be compatible
with either states A and C or state D, but not both. If we consider the next
don't care state of B as state C, it is compatible with stable A and C. If we
consider the next don't care state of B as state E it is compatible with state
D.
Considering
state B compatible with states A and C, we have following set of maximum
compatibilities for given primitive flow table
(A,
B, C) (D) (E)
Considering
state B compatible with state D, we have following set of maximum compatibilities
for given primitive flow table.
(A,
C) (B, D) (E)
So
we can say that there may be more than one possible way of merging rows when
reducing a primitive flow table
According
to altemative-I we have
(A,
B, C) → S0
(D)
→ S1
(E) → S2
and
according to altemative-II we have
(A,
C) → S0
(B,
D) → S1
(E)
→ S2
The
Table 7.6.2 shows the reduced primitive flow table using both the alternatives.
Ex.
7.6.3 Reduce the primitive flow table derived in example 7.6.1.
Sol.
:
The derived primitive flow table is redrawn in Table 7.6.3.
The
Fig. 7.6.3 shows the merger graph. Each compatible state pair is indicated by a
line drawn between the two states vector.
Every
potentially compatible state pair, with outputs not in conflict but whose next
states are different, is connected by a broken line. The implied states are
drawn in the line break between the two potentially compatible states. If two
states are incompatible, no connecting line is drawn.
Therefore,
we have
(A,
C) → S0
(B,
D) → S1
(E,
G) → S2
(F,
H) → S3
The
Table 7.6.5 shows the reduced primitive flow.
The
Fig. 7.6.4 shows the reduced state diagram for primitive flow table.
•
The state assignment step in asynchronous circuits is essentially the same as
it is for synchronous circuits, except for one difference. In synchronous
circuits, the state assignments are made with the objective of circuit
reduction. In asynchronous circuits, the objective of state assignment is to
avoid critical races.
a.
Races and Cycles
•
When two or more binary state variables change their value in response to a
change in an input variable, race condition occurs in an asynchronous
sequential circuit. In case of unequal delays, a race condition may cause the
state variables to change in an unpredictable manner. For example, if there is a
change in two state variables due to change in input variable such that both
change from 00 to 11. In this situation, the difference in delays may cause the
first variable to change faster than the second resulting the state variables
to change in sequence from 00 to 10 and then to 11. On the other hand, if the
second variable changes faster than the first, the state variables change from
00 to 01 and then to 11. If the final stable state that the circuit reaches
does not depend on the order in which the state variable changes, the race
condition is not harmful and it is called a noncritical race. But, if the final
stable state depends on the order in which the state variable changes, the race
condition is harmful and it is called a critical race. Such critical races must
be avoided for proper operation. Let us see the examples of noncritical races
and critical races.
Noncritical
Races
•
Fig. 7.6.6 illustrates noncritical races. It shows transition tables in which X
is a input variable and y1 y2 are the state variables.
Consider a circuit is in a stable state y1 y2 x = 000 and
there is a change in input from 0 to 1. With this change in the input there are
three possibilities that the state variables may change. They can either change
simultaneously from 00 to 11, or they may change in sequence from 00 to 01 and
then to 11, or they may change in sequence from 00 to 10 and then to 11. In all
cases, the final stable state is 11, which results in a noncritical race
condition. In Fig. 7.6.6 (b) final stable state is y1 y2
x = 101
Critical
Races
•
Fig. 7.6.7 illustrates critical race. Consider a circuit is in a stable state y1
y2 x = 000 and there is a change in input from 0 to 1. If state
variables change simultaneously, the final stable state is y1 y2
x = 111. If Y2 changes to 1 before Y1 because of unequal
propagation delay, then the circuit goes to the stable state Oil and remain
there. On the other hand, if Y1 changes faster than Y2,
then the circuit goes to the stable state 101 and remain there. Hence, the race
is critical because the circuit goes to different stable states depending on
the order in which the state variables change.
Cycles
•
A cycle occurs when an asynchronous circuit makes a transition through a series
of unstable states. When a state assignment is made so that it introduces
cycles, care must be taken to ensure that each cycle terminates on a stable
state. If a cycle does not contain a stable state, the circuit will go from one
unstable state to another, until the inputs are changed. Obviously, such a
situation must always be avoided when designing asynchronous circuits.
•
Two techniques are commonly used for making a critical race free state
assignment.
1.
Shared row state assignment.
2.
One hot state assignment.
a.
Shared Row State Assignment
Races
can be avoided by making a proper binary assignment to the state variables.
Here, the state variables are assigned with binary numbers in such a way that
only one state variable can change at any one time when a state transition
occurs. To accomplish this, it is necessary that states between which
transition occur be given adjacent assignments. Two binary values are said to be
adjacent if they differ in only one variable. For example, 110 and 111 are
adjacent because they differ only in the third bit.
•
Fig. 7.6.8 shows the transition diagram. The transition diagram shows that
there is transition from state a to state b and transition from state a to
state c. The state a is assigned binary value 00 and state c is assigned binary
value 11. This assignment will cause a critical race during the transition from
a to c because there are two changes in the binary state variables. A race free
assignment can be obtained by introducing addition binary state say d with
binary value 10, which is adjacent to both a and c. Fig. 7.6.9 shows the
modified transition diagram. As shown in the Fig. 7.6.9, the transition from a
to c will go through d. This causes the binary variables to change from 00 → 10
→ 11 which satisfy the condition that only one binary variable changes during
each state transition, thus avoiding the critical race.
•
This technique is called shared row state assignment because in this technique
extra state, i.e. extra row is introduced in a flow table. This extra state is
shared between two stable states.
c.
One Hot State Assignment
The one hot state assignment is an another method for finding a race free state assignment. In this method, only one variable is active or 'hot' for each row in the original flow table, i.e. it requires one state variable for each row of the flow table. Additional rows are introduced to provide single variable changes between internal state transitions. This is illustrated in the following example.
• Consider a flow table given in Fig. 7.6.10 four state variables are used to represent the four rows in the table. Each row is represented by a case where only one of the four state variables is a 1. A transition from state A to state B requires two state variable changes; F from 1 to 0 and F2 from 0 to 1. By directing the transition A to B through a new row E which contains Is where both states A and B have Is. We require only one state variable change from transition A to E and then from transition E to B. This permits the race free transition between A and B.
•
In general, we can say that, in row i of the table, state variable Fi
is 1 and all other state variables are 0. When a transition between row i and
row j is required, first state variable Fj is set to 1 (so that both
Fi and Fj are 1), and then Fi is set to 0.
Thus each transition between two rows in the flow table goes through one intermediate row. This permits the race free
transition but requires two state Original transition times.
•
The Fig. 7.6.11 shows the complete one hot state assignment flow table. When X1X2 = 01 the
transition from A to B is passing through the dummy state E. Added Similarly,
when X1X2 = 00 the transition from C to A is passing
through the dummy state F and so on. The
original table thus gets modified and it is as shown in Fig. 7.6.11.
• To understand the process of realization of flow table we see the following example. The example illustrates all the steps of designing of asynchronous sequential circuit.
Digital Logic Circuits: Unit IV: (a) Asynchronous Sequential Circuits : Tag: : Asynchronous Sequential Circuits - Design of Fundamental Mode Sequential Circuits
Digital Logic Circuits
EE3302 3rd Semester EEE Dept | 2021 Regulation | 3rd Semester EEE Dept 2021 Regulation