Hardware Reference
In-Depth Information
the equations used to implement the next state (see exercise 8.5). Also, despite
ena
being an asynchronous input and being produced by a mechanical switch, neither a
synchronizer (section 2.3) nor a debouncer (section 8.11.3) is needed because of the
nature of this application.
Based on section 8.10, the number of l ip-l ops needed to implement this circuit is
as follows. For the state register:
M
FSM
= 3 states; therefore,
N
FSM
= 2 if sequential, Gray,
or Johnson encoding is used, or 3 for one-hot. For the optional output register: not
needed in this application, so
N
output
= 0. For the timer: assuming 0.5 s for
T
1
and 1 s
for
T
2
, with
f
clk
= 50 MHz,
T
max
= 5
⋅
10
7
clock cycles results, so
N
timer
= 26. Therefore,
N
total
= 28 or 29.
8.11.2 Light Rotator
This example shows another simple and yet very illustrative application for timed
machines. It consists of a circuit that produces a rotating movement in a seven-
segment display (SSD).
SSDs are just special seven-LED arrangements (eight if a decimal point is also
included). This kind of device is illustrated in
i gure 8.13. In i gure 8.13a an example
of a commercial SSD device (two digits with decimal points) is shown. In i gure 8.13b
a typical notation for the segment names (
abcdefg
) is shown. In i gure 8.13c the
common-anode coni guration is presented, in which a '0' turns a segment on and a
'1' turns it off. Finally, the table in i gure 8.13d shows the logic values that must be
used to obtain the traditional 0-to-F hexadecimal characters.
The circuit ports for the current example are presented in
i gure 8.14a. The inputs
are a stop switch (
stp
), clock (
clk
), and reset (
rst
), and the output is a seven-bit signal
(
ssd
) that feeds the seven segments of the SSD.
Figure 8.13
(a) A commercial seven-segment display (SSD) device. (b) Segment names (
abcdefg
). (c) Common-
anode coni guration (a '0' lights a segment, whereas a '1' turns it off). (d) Logic values to obtain
the 0-to-F hexadecimal characters.