Asynchronous Sequential Circuits: E&CE223 Digital Circuits and Systems
Asynchronous Sequential Circuits: E&CE223 Digital Circuits and Systems
delay
Delay elements are hypothetical, and typically are a result of gate delays.
Note: When inputs change, excitation variables Y change. It takes additional delay for the
secondary variables (current state) to assume the values of the excitation variables (next state).
Definition – Stability and Fundamental Mode Operation
Stability:
For a given set of inputs (i.e., values), the system is STABLE if the circuit
eventually reaches steady state and the excitation variables and secondary
variables are equal and unchanging (little y = capital Y), otherwise the
circuit is UNSTABLE.
Fundamental Mode:
A circuit is operating in fundamental mode if we assume/force the
following restrictions on how the inputs can change:
The tables we will try to obtain are transition tables and flow tables.
Example
Consider the following circuit that has combinatorial feedback paths (and
is therefore identified as asynchronous). No apparent latches in the
circuit:
y1
x
z
Y1
y2
Y2
Circuit has one input (x), one output (z), two secondary variables (y1, y2) and two excitation
variables (Y1, Y2).
Analysis Example - Equations
Write logic equations for the excitation variables in terms of the circuit inputs
and secondary variables:
y1
x
z
Y1
y2
Y2
Write logic equations for circuit outputs in terms of the circuit inputs
and secondary variables:
Analysis Example – Transition Table
Note that stable states (secondary variables equal to excitation variables) are
circled.
Analysis Example – Flow Table
We can also create a flow table, which is just the transition table with binary
numbers replaced with symbols (e.g., let a = 00, b = 01, c = 10 and d = 11):
We could proceed to draw something like a state diagram from this information, if
we choose…
Analysis Example –Flow Table Alternative
x=0 x=1
a a, 0 c,0
b a, 0 b, 0
c d, 1 c,1
d d, 0 b, 0
Left-most column shows current state (secondary variables), and the inputs
are listed across the top.
Entries in the matrix show the next state (excitation variables) and output values.
Primitive Flow Tables
Flow table with only one stable state per row is called a primitive flow table.
x
0 1
a a b
b c b
c c d
d a d
E.g., a flow table that is not a primitive flow table:
x1x2
00 01 11 10
a a a a b
b a a b b
Analysis Summary
Procedure to determine transition table and/or flow table from a circuit with combinatorial
feedback paths:
Derive logic expressions for Y (excitation variables) in terms of circuit inputs and secondary
variables. Do the same for circuit outputs.
Circle stable states where Y (excitation variables) are equal to y (secondary variables).
Latch Analysis
We can use the previous analysis technique to see how latches work…
We will consider SR (built with NOR gates) and S’R’ (built with NAND gates)
Latches.
SR Latches SR
y 00 01 11 10
We can analyze an SR latch using the previous 0 0 0 0 1
1
technique: 1 0 0 1 Y
R
Y=Q
S
y
y
))'
Y R'(S y)
R' S R' y
Since we want to avoid the SR=11 situation, we can write:
SR Latches
SR
00 01 11 10
y 0 0 0 1
0 Y=Q
1 1 0 0 1
Don’t care
curr
state next state output curr state
next state output
SR=00 01 11 10
SR=00 01 11 10
y Y Y Y Y y Y Y Y Y
0 0 0 0 1 0 a a a a b 0
1 1 0 0 1 1 b b a a b 1
Note: We can see the undesirable case when SR=11 and inputs change.
If SR=11 -> SR=10 -> SR=00, we get stable state with output of 1.
If SR=11 -> SR=01 -> SR=00, we get stable state with output of 0.
curr
next state output
state
SR=00 01 11 10
y Y Y Y Y
0 0 0 0 1 0
1 1 0 0 1 1
S’R’ Latches
Y
S Q
R
curr curr
state next state output next state output
state
SR=00 01 11 10 SR=00 01 11 10
y Y Y Y Y y Y Y Y Y
0 1 1 0 0 0 a b b a a 0
1 1 1 1 0 1 b b b b a 1
Note: We can see the undesirable case when SR=00 and inputs change.
If SR=00 -> SR=10 -> SR=11, we get stable state with output of 0.
If SR=00 -> SR=01 -> SR=11, we get stable state with output of 1.
curr
next state output
state
SR=00 01 11 10
y Y Y Y Y
0 1 1 0 0 0
1 1 1 1 0 1
Analysis With Latches
x1
R1 Y1
S1
y2
y1 Y2
R2
S2
x2
We identify two inputs (x1,x2), two excitation variables (Y1,Y2), two secondary variables (y1,y2)
and two latches.
Since we see latches, we obtain logic equations for the latch inputs:
Since we are working with latches, we should confirm that the latches do not ever
enter the undesirable state (SR=11 for NOR, SR=00 for NAND).
x1
R1 Y1
S1
y2
y1 Y2
R2
S2
x2
Finally, use equations to derive transition table (could also find the flow table):
x1x2
y1y2 00 01 11 10
00 00 00 01 00
curr
01 01 01 11 11
state
11 00 11 11 10
10 00 10 11 10
Y1Y2
Analysis Summary With Latches
Label each latch output with Yj and its feedback path with yj.
Check of SR=0 for NOR Latches and S’R’=0 for NAND Latches. If not satisfied, the circuit
may not work correctly.
Create logic equations for latch outputs Yj using the known behavior of a latch (Y=S+R’y
for NOR Latches and Y=S’+Ry for NAND Latches).
Construct a transition table using the logic equations for the latch outputs and circuit stable
states.
Obtain a primitive flow table (one stable state per row) from
problem description.
Reduce the flow table to get a smaller flow table with less states.
Obtain next state and output equations (need to avoid hazards and glitches).
Consider a circuit with two inputs, D and G and one output, Q. Output Q follows D
with G=1, otherwise Q holds its value.
b - a e b 1
c c a d - 0
d c - d b 0
e f - e b 1
f f a e - 1
Note: Some unspecified entries due to the fundamental mode assumption (e.g., in
state a, DG=01, so we never go from DG=01 -> DG=10)…
Design Example – Reduced Flow Table
For the moment, assume that the following flow table will also work for the
verbal problem description – assume (a,c,d) and (b,e,f) can be merged.
a a a a b 0
b b a b b 1
Design Example - State Assignment and Transition Table
We can make K-Maps to determine excitation variables (Y) and output (Z) in
terms of circuit inputs and secondary variables (y):
DG
y 00 01 11 10
0 0 0 1 0
1 1 0 1 1
D
G
Y
Q
y
Implementation Using Latches
Given the map for each excitation variable Y, derive necessary equations for S and R
of a latch to produce Y.
Need to make sure the S and R never have equal (potential problem in Latch).
Implementation Using Latches – SR Latch Excitation Table
R (reset) Q
S (set) !Q
Assuming we never have the SR=11 case. Can write excitation table:
Implementation Using Latches – S’R’ Latch Excitation Table
S (set)
Q
R (reset) !Q
Assuming we never have the SR=00 case. Can write excitation table:
Implementation Using Latches
Consider our example again, and assume we want to use a S’R’ Latch:
DG
y 00 01 11 10
0 0 0 1 0
1 1 0 1 1
Need to figure out how to select S and R for the NAND Latch (while making
sure never 0 at same time):
DG DG
y 00 01 11 10
1X y 00 01 11 10
0 1 1 0 1 01 0 X X 1 X
1 X 1 X X
0 1 1 1 0 1 1
10
X1
Can draw the circuit:
G
Textbook
Design with and without latches is covered in Chapter 9, Sections 9.3 and 9.4 of
the course textbook.
Output Assignment
Flow and transition tables might have unspecified entries for circuit outputs.
E&CE 223 Digital Circuits and Systems (Fall 2004 - A. Kennings) Page 40
Example
Consider the following flow table with don’t cares at some outputs (circuit has
one input and one output):
We _might_ consider using the un-specified output values as don’t cares in order
to minimize the logic function for the output…
However…
If stable states produce different outputs, the output can remain a don’t care
and be used to find a smaller output circuit.
We do this to avoid GLITCHES in the output (e.g., if the output should go 0->0
(or 1->1), it should remain 0 (or 1) during the transition through an unstable state.
Example
Recall the flow table… If we consider possible transitions, we see that some of
the output don’t cares should be changed to 0 or 1 to avoid GLITCHES.
The above changes will avoid temporary glitches at the outputs during transitions
where the output should not change.
Textbook
Output don’t cares and avoiding glitches is covered in Chapter 9, Section 9.4
of the course textbook (near the end of the section).