Файл: Digital design with CPLD applications and VHDL (R. Dueck, 2000).pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 13.06.2025

Просмотров: 8114

Скачиваний: 6

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

394

C H A P T E R

9

• Counters and Shift Registers

AND3

al_count

COUNT

INPUT

ALOAD

OUTPUT

P3

P

Q

Q3

CLK

CLEAR

AND2

al_count

COUNT

ALOAD

OUTPUT

INPUT

P

Q

P2

Q2

CLK

CLEAR

al_count

COUNT

INPUT

ALOAD

OUTPUT

P1

P

Q

Q1

CLK

CLEAR

al_count

INPUT

COUNT

VCC

P0

INPUT

ALOAD

LOAD

OUTPUT

P

Q

INPUT

Q0

CLK

CLOCK

INPUT

CLEAR

RESET

FIGURE 9.31

Example 9.7

4-bit Counter with Asynchronous Load and Reset

of each element, this yields the Boolean equations for a binary counter based on D flipflops, as derived in Example 9.5. The circuitry inside each instance of al_count also generates the asynchronous load and clear functions.

Figure 9.32 shows a MAX PLUS II simulation of the counter. The counter cycles through its full range and continues. A pulse at 700 ns loads the counter with the value 9H ( 10012), after which the count continues from that point.

FIGURE 9.32

Example 9.7

Simulation of a 4-bit Counter with Asynchronous Load and Reset


9.5 • Control Options for Synchronous Counters

395

The reset pulse at 900 ns clears the counter. The LOAD pulse starting at 1.02 s shows how the load function has precedence over the count function. When LOAD is asserted, 9H is loaded and the count does not increase until LOAD is deasserted. The RESET pulse at 1.08 s overrides both load and count functions. When RESET is

deasserted, 9H is asynchronously reloaded.

Count Enable

The counter elements in Figures 9.25 (sl_count) and 9.30 (al_count) are just D flip-flops configured for switchable toggle operation with additional circuitry for load and clear

4bit_sle.gdf 4bit_sle.scf

In order to arrest the count sequence, we must disable the count logic of the counter circuit. Figure 9.33 shows a simple modification to the 4-bit counter circuit of Figure 9.26 that can achieve this function. Each AND gate has an extra input which is used to enable or inhibit the count logic function to each flip-flop.

Figure 9.34 shows a simulation of the counter. Note that the count progresses normally when COUNT_ENA is HIGH and stops when COUNT_ENA is LOW, even though the clock pulses remain constant throughout the simulation.

Also note that the count enable has no effect on the synchronous load and asynchronous reset functions. In the latter part of the simulation, the count stops at AH (Q3Q2Q1Q010102), when COUNT_ENA goes LOW. At 760 ns, the synchronous load function loads the value of 9H into the counter. The counter stays at this value, even after LOAD is no longer active, since the count is still disabled. At 880 ns, an asynchronous reset pulse clears the counter. The count resumes on the first clock pulse after COUNT_ENA goes HIGH again.

Bidirectional Counters

Figure 9.35 shows the logic diagram of a 4-bit synchronous DOWN counter. Its count sequence starts at 1111 and counts backwards to 0000, then repeats. The Boolean equations for this circuit will not be derived at this time, but will be left for an exercise in an end-of- chapter problem.

We can intuitively analyze the operation of the counter if we understand that the upper three flip-flops will each toggle when their associated XOR gates have a HIGH input from the rest of the count logic.

Q0 is set to toggle on each clock pulse. Q1 toggles whenever Q0 is LOW (every second clock pulse, at states 1110, 1100, 1010, 1000, 0110, 0100, 0010, and 0000). Q2 toggles when Q1 AND Q0 are LOW (1100, 1000, 0100, and 0000). Q3 toggles when Q2 AND Q1

element.gdf AND Q0 are LOW (1000 and 0000). The result of this analysis can be represented by a timing diagram, such as the simulation shown in Figure 9.36. As we expect, the counter will count down from 1111 (FH) to 0000 (0H) and repeat.

We can create a bidirectional counter by including a circuit to select count logic for an UP or DOWN sequence. Figure 9.37 shows a basic synchronous counter element that can be used to create a synchronous counter. The element is simply a D flip-flop configured for switchable toggle mode.

Four of these elements can be combined with selectable count logic to make a 4-bit bidirectional counter, as shown in Figure 9.38. Each counter element has a pair of AND-shaped gates and an OR gate to steer the count logic to the XOR in the element. When DIR 1, the upper gate in each pair is enabled and the lower gates disabled,


396

C H A P T E R

9

• Counters and Shift Registers

AND4

sl_count

COUNT

INPUT

LOAD

OUTPUT

P3

P

Q

Q3

CLOCK

RESET

AND3

sl_count

COUNT

LOAD

OUTPUT

INPUT

P

Q

P2

Q2

CLOCK

RESET

AND2

sl_count

COUNT

INPUT

LOAD

OUTPUT

P1

P

Q

Q1

CLOCK

VCC

RESET

AND2

sl_count

COUNT_ENA

INPUT

COUNT

INPUT

LOAD

LOAD

INPUT

OUTPUT

P0

Q

INPUT

P

Q0

CLOCK

CLOCK

INPUT

RESET

RESET

FIGURE 9.33

4-bit Counter with Synchronous Load, Asynchronous Reset, and Count Enable

FIGURE 9.34

Simulation of 4-bit Counter with Synchronous Load, Asynchronous Reset, and Count Enable


9.5 • Control Options for Synchronous Counters

397

DFF

BAND3

XOR

PRN

OUTPUT

D

Q

Q3

CLRN

DFF

BAND2

XOR

PRN

OUTPUT

D

Q

Q2

CLRN

DFF

XOR

NOT

PRN

OUTPUT

D

Q

Q1

CLRN

DFF

NOT

PRN

OUTPUT

D

Q

Q0

CLOCK

INPUT

CLRN

RESET

INPUT

FIGURE 9.35

4-bit Synchronous DOWN Counter

FIGURE 9.36

4-bit DOWN Counter Simulation


398

C H A P T E R

9

• Counters and Shift Registers

XOR

DFF

COUNT

INPUT

PRN

OUTPUT

D

Q

INPUT

Q

CLOCK

CLRN

RESET

INPUT

FIGURE 9.37

Synchronous Counter Element (T Flip-Flop)

AND4

INPUT

OR2

element

DIR

COUNT

BAND4

OUTPUT

CLOCK

Q

Q3

RESET

AND3

OR2

element

BAND3

COUNT

OUTPUT

CLOCK

Q

Q2

RESET

AND2

OR2

element

BAND2

COUNT

OUTPUT

CLOCK

Q

Q1

RESET

VCC

element

INPUT

COUNT

OUTPUT

CLOCK

Q

CLOCK

Q0

INPUT

RESET

RESET

FIGURE 9.38

4-bit Bidirectional Counter

steering the UP count logic to the counter element. When DIR 0, the lower gate in each pair is enabled, steering the DOWN count logic to the counter element. The directional function can also be combined with the load and count enable functions, as was shown for unidirectional UP counters.

Figure 9.39 shows a simulation of the bidirectional counter of Figure 9.38. The waveforms show the UP count when DIR is HIGH and the DOWN count when DIR is LOW.