Sequential Circuits
Sequential Circuits
Madhav Desai
February 12, 2017
1 Sequential Functions
A one-sided sequence from a finite set A is a set of elements
{x(0), x(1), x(2), . . .}
and is represented by {x(k)}. A sequential function f maps sequences to se-
quences:
f ({x(k)}) = {y(k)}
f is a causal sequential function if, given that
f ({x1 (k)}) = {y1 (k)}
f ({x2 (k)}) = {y2 (k)}
and that x1 (k) = x2 (k) for k ≤ M , it is also true that y1 (k) = y2 (k) for k ≤ M .
Simply put, the output at instant k should not depend on inputs at instants
greater than k.
1
3 State Minimization of a Mealy Machine
In many cases, if we are given a Mealy FSM, we can reduce the number of states
without changing the behaviour of the state machine.
For an integer m ≥ 0, two states u, v are said to be m-compatible if it is
not possible to distinguish them using input sequences of length m. That is, for
k ≥ 0, the sequence of outputs y(k), y(k + 1), . . . y(k + m − 1) produced by an
input sequence x(k), x(k + 1), . . . x(k + m − 1) is the same if q(k) is either u or
v.
Then, the minimization procedure (described in Kohavi) proceeds as follows:
• Find the sets of 1-compatible states. This is easy, because u and v are
1-compatible if λ(u, σ) = λ(v, σ) for all σ ∈ Σ. We generate a collection
of subsets of 1-compatible states, which is a partition of the state space.
• Now for k > 1, we use induction. Assuming that we know the set of
1-compatibles and the set of (k − 1)−compatibles, the collection of k-
compatible sets can be built by noting that u and v are k-compatible if
they are 1-compatible, and further for each σ ∈ Σ, the states λ(u, σ) and
λ(v, σ) are (k − 1)-compatible.
• The sets Σ, Λ, Q are encoded with bit-vectors (note: there are many
possible encodings). After this step, x(k), y(k) and q(k) are viewed as
bit-vectors. Thus, δ and λ become Boolean functions which we know how
to implement as combinational functions. We implement the following
2
• We need a concept of a sequential delay element to implement
q(k + 1) = nq(k)
• Some questions:
– How are the instants k defined?
– Using logic gates, how can we construct the delay element?
– Under what conditions will a logic circuit faithfully implement the
equations describing a Mealy machine?
3
x(k) y(k)
lambda
(combinational logic)
s(k) ns(k)
delta
Clock
m ≥ H
M ≤ T −S
m ≥ H +∆
M ≤ T − (S − ∆)
4
• Implement the λ and δ function blocks.
• Confirm that the circuit works correctly at some clock period (and calcu-
late the minimum clock period and circuit setup and delay times).
• The input set-up time relative to the rising edge of the clock (could be
different for each input).
• The minimum and maximum values of the clock to output delay (could be
different for each output bit, both minimum and maximum delays should
be specified).
• The minimum and maximum values of the clock to flip-flop input delay.
• The minimum and maximum values of the input to output delay.
• For CMOS circuits, the input capacitance at all inputs (including clock)
and the maximum load capacitances that can be connected at the outputs.