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

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

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

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

Добавлен: 13.06.2025

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

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

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

8.4 • PAL Devices With Registered Outputs

343

FIGURE 8.13

Example 8.2

Rotation by Parallel Transfer (Barrel Shifter)

Similarly, if S1 S0 10, we select a rotation of 2. The third AND gate from the left is selected in each group of four. This makes the data DA C, DB D, DC A, and DD B appear at the flip-flop inputs. After one clock pulse, QA QB QC QD CDAB.

The same principle governs the circuit operation for the other two select codes. The Boolean equations for the circuit are:

QA S1 S0 A S1 S0 D S1 S0 C S1 S0 B

QB S1 S0 B S1 S0 A S1 S0 D S1 S0 C

QC S1 S0 C S1 S0 B S1 S0 A S1 S0 D

QD S1 S0 D S1 S0 C S1 S0 B S1 S0 A

344 C H A P T E R 8 • Introduction to Programmable Logic Architectures

FIGURE 8.14

Example 8.2

Programmed PLD for Selectable Bit Rotation

These equations imply that each registered output requires us to use four product lines,

one for each product term. The programmed logic diagram is shown in Figure 8.14.


8.5 • Universal PAL and Generic Array Logic (GAL)

345

8.5 Universal PAL and Generic Array Logic (GAL)

K E Y T E R M S

One-time programmable (OTP) A property of some PLDs that allows them to be programmed, but not erased.

Generic array logic (GAL) A type of programmable logic device whose outputs can be configured as combinational or registered and whose programming matrix is based on electrically erasable logic cells.

Universal PAL A PLD based on erasable cells and configurable outputs, much like GAL, but primarily designed to emulate PAL devices, such as PAL16L8.

Output logic macrocell (OLMC) An input/output circuit that can be programmed for a variety of input or output configurations, such as active HIGH or active LOW, combinational or registered. Often just called a macrocell.

In-system programmability (ISP) The ability of a PLD to be programmed through a standard four-wire interface while installed in a circuit.

JTAG port A four-wire interface specified by the Joint Test Action Group (JTAG) used for loading test data or programming data into a PLD installed in a circuit.

Architecture cell A programmable cell that, in combination with other architecture cells, sets the configuration of a macrocell.

Global architecture cell An architecture cell that affects the configuration of all macrocells in a device.

Local architecture cell An architecture cell that affects the configuration of one macrocell only.

Global clock A clock signal in a PLD that clocks all registered outputs in the device.

There are several limitations of standard low-density PALs. First, these devices are one-time programmable (OTP). Since the AND matrix of a PAL is programmable by blowing metal fuse links, programming is permanent; there is no opportunity to correct or update a design. In development of a new design, where many modifications must be made to the original design, this can be particularly wasteful. Second, standard PAL outputs are permanently configured either as combinational or registered. A given PAL has a certain number of each type of output, which may not be optimum for the design. Third, a standard PAL cannot be programmed while it is installed in a circuit.

A number of low-density PLDs have been developed to address these concerns. Devices such as the PALCE16V8 Universal PAL (Vantis Corporation), and the GAL16V8 and GAL22V10 Generic Array Logic (Lattice Semiconductor)* are based on sum-of-products fuse matrices, just as the earlier-version PALs. However, these devices are based on electrically erasable read only memory (EEPROM or E2PROM) cells, rather than fuses, which allow them to be erased and reprogrammed about 10,000 times. A programmed device will hold its data for about 20 years.

Universal PALs and GALs also have programmable input/output configurations. An I/O pin can be configured as a registered output, a combinational output, or a dedicated input, as required. Additionally, an output can be specified as active-HIGH or active-LOW.

*Vantis has recently been acquired by Lattice, so these devices are really produced by the same company


346 C H A P T E R 8 • Introduction to Programmable Logic Architectures

Devices such as the ispGAL22V10 or the Altera MAX7000S series can be programmed while installed in a circuit via a standard four-wire interface called a JTAG port.

This property is known as in-system programmability (ISP).

PALCE16V8

Figure 8.15 shows one I/O pin and its associated circuitry for a PALCE16V8 Universal PAL. (The “V” stands for “variable” or “versatile” architecture.) It consists of a programmable SOP array with 8 product terms and an output logic macrocell (OLMC), or just “macrocell”, which determines the I/O configuration for that pin. The various configuration options are selected by a network of four multiplexers that are programmed by a set of architecture cells that set the MUX select inputs HIGH or LOW.

24 27 28 31

CLK OE

Select eighth

product term

1

1

1 1

1

0

VCC

0

0

0 X

0

1

1 0

SL03

Select registered or

combinational output

1

1

SG1

0 X

D

Q

1

0

Select active

SL13

Q

high or low

1 0

Select input or

1 1

0 X

feedback type

SG1

FIGURE 8.15

Output Logic Macrocell for a PALCE16V8 PLD

Select output enable term

15 I/O3

SL03

A global architecture cell, SG1, selects configuration options for all macrocells in the device. Two local configuration cells, SL0n and SL1n, select configurations for I/On only. (In this case, the cells shown are SL03 and SL13 for configuration of I/O3.)

Figure 8.16 shows the different macrocell configurations for a PALCE16V8 Universal PAL. Most of these configurations are designed to emulate an I/O of a standard PAL, so that an old-style PAL can be replaced by a Universal PAL, and can be programmed by data for the older PAL. The macrocells can also be configured in a pattern that does not conform to an older device.

Figure 8.17 shows the logic diagram of a PALCE16V8 Universal PAL. The device has eight dedicated inputs, eight macrocells, a Clock pin and an Output Enable pin. The latter two signals are shown in the macrocell diagram of Figure 8.15 as the lines labeled CLK and OE.

If there are registered outputs, the clock input (pin 1) provides a global clock function. That is, all registered outputs are clocked simultaneously by this signal. (Some other PLDs provide an option to clock a registered output from a product term in the AND matrix, allowing several clock functions in one chip.) If there are no registered outputs used in the PLD, pin 1 can be used as an input.


8.5 • Universal PAL and Generic Array Logic (GAL)

347

OE

OE

D Q

D Q

CLK

Q

CLK

Q

a. Registered active low

b. Registered active high

c. Combinatorial I/O active low

d. Combinatorial I/O active high

VCC

VCC

Note 1

Note 1

e. Combinatorial output active low

Notes:

1.Feedback is not available on pins 15 and 16 in the combinatorial output mode.

2.This configuration is not available on pins 15 and 16.

FIGURE 8.16

f. Combinatorial output active high

Adjacent I/O pin Note 2

g. Dedicated input

Macrocell Configurations for a PALCE16V8 PLD (Courtesy of Lattice Semiconductor Corporation)

Pin 11 provides an active-LOW Output Enable function. This is selected by local architecture cells to provide control of the output tristate buffer, either from the OE pin or from a product term in theAND matrix. If the OE function is unused, the pin can be used as an input.

GAL22V10

Figure 8.18 shows the logic diagram of a GAL22V10 generic array logic device. This industry-standard device has a number of features that make it superior to the PALCE16V8.


348

C H A P T E R

8

• Introduction to Programmable Logic Architectures

0

3

4

7

8

11 12

15 16

19 20

23 24

27 28

31

CLK/I0

1

1 1

20

VCC

1 1

VCC

1 0

0 0

0 X

0 1

1 0

0

SL07

1 0

SG1

0 X

19

I/O7

D

Q

1 0

7

SL17

Q

I1

1 0

2

1

1

0 X

SG0

SL07

1

1

1

1

VCC

1

0

0 0

0 X

0 1

1

0

8

SL06

1 0

SG1

0 X

18

I/O6

D

Q

1

0

15

SL16

Q

1 0

I2

3

1

1

0 X

SG1

SL06

1 1

1 1

VCC

1 0

0 0

0 X

0 1

1 0

16

SL05

1 0

SG1

0 X

17

I/O5

Q

D

1 0

23

SL15

Q

1 0

I3

4

1

1

0 X

SG1

SL05

1 1

1 1

VCC

1 0

0 0

0 X

0 1

1 0

24

SL04

1 0

SG1

0 X

16

I/O4

D

Q

1 0

31

SL14

Q

1 0

I4

5

1

1

0 X

SL04

0

3

4

7

8

11 12

15 16

19 20

23 24

27 28

31

CLK OE

SG1

FIGURE 8.17 (a)

PALCE16V8 Logic Diagram (Courtesy of Lattice Semiconductor Corporation)