Figure 3.22 Implementation of f = x1x2 + x2x3
V DD
x 1 x 2 x 3
f
7404
7408 7432
Figure 3.24 Programmable logic device as a black box
Logic gates and
programmableswitches
Inputs
(logic variables) Outputs
(logic functions)
Programmable Logic Devices - PLDs
Figure 3.25 General structure of a PLA
f 1
AND plane OR plane
Input buffers
inverters and
P 1
P k
f m
x 1 x 2 x n
x 1 x 1 x n x n
Programmable Logic Array
PLAs
criados a partir da idéia que uma função lógica pode ser implementada como uma soma de produtos
Figure 3.26 Gate-level diagram of a PLA f1
P1
P2
f2
x1 x2 x3
OR plane
Programmable
AND plane
connections
P3
P4
32131211 xxxxxxxf
Figure 3.27 Customary schematic of a PLA
f 1
P 1
P 2
f 2
x 1 x 2 x 3
OR plane
AND plane
P 3
P 4
32131211 xxxxxxxf
PLAs
São eficientes em termos de área de implementação.
O fato dos planos de ORs e de ANDs serem ambos programáveis acarreta dificuldades na implementação, e é responsável por uma baixa performance de velocidade.
Surgimento dos PALs
Programmable Array Logic
Planos de ANDs programáveis e de ORs fixos os tornam mais simples de serem fabricados que os PLAs, além de mais baratos.
Melhor performance.
Figure 3.28 An example of a PAL
f 1
P 1
P 2
f 2
x 1 x 2 x 3
AND plane
P 3
P 4
32131211 xxxxxxxf
321313212 xxxxxxxxf
Exemplo de macrocélula
f 1
To AND plane
D Q
Clock
SelectEnable
Flip-flop
Nem sempre a saída do OR é conectadadiretamente ao pino do CI
Figure 3.30 A PLD programming unit
Figure 3.31 A PLCC package with socket
Printed circ
uit board
Agilizam a implementação de projetos .
Contudo, são limitados a um número razoavelmente pequeno de entradas e saídas (combinadas, não passam de 32).
Surgimento do CPLDs
Complex Programmable Logic Devices
PALs e PLAs (SPLDs) single
Figure 3.32 Structure of a CPLD
PAL-likeblock
I/O
blo
ck
PAL-likeblock
I/O b
lock
PAL-likeblock
I/O
blo
ck
PAL-likeblock
I/O b
lock
Interconnection wires
Figure 3.33 A section of a CPLD
D Q
D Q
D Q
PAL-like block (details not shown)
PAL-like block
típicamente, cada bloco PAL de um CPLD contém 16 macrocélulas com ORs de 20 entradas.
Interconnection wires
CPLDs
Cada buffer tri-state é conectado a um pino do encapsulamento, que pode ser usado como saída (buffer on) ou entrada (buffer off). Neste último caso, a macrocélula não poderá ser utilizada (exceto em dispositivos que permitam o “empréstimo” delas).
Os fios horizontais de interconexão podem ser conectados a alguns dos fios verticais.
CPLDs comerciais possuem de 2 a 100 blocos PALs.
É encapsulado nos formatos PLCC (Plastic Leaded Chip Carrier) e QFP (Quad Flat Pack).
Usualmente programados via ISP (In System Programming).
A programação não é volátil.
(a) CPLD in a Quad Flat Pack (QFP) package
Printed circuit board
To computer
(b) JTAG programming
JTAG - Joint Action Test Group
In System Programming
CPLD packaging and programming
Field Programmable Gate Arrays - FPGAs
Contém blocos lógicos para implementação de circuitos e não possuem planos de ANDs e de ORs.
A interconexão desses blocos é feita através de canais de roteamento.
Como os CPLDs, a conexão aos pinos externos é feita través dos blocos de I/O.
Suporta circuitos com centenas de milhares de eg.
Programação volátil. Suporta ISP
Encapsulamentos: PLCC, QFP, Pin Grid Array (PGA), Ball Grid Array (BGA)
CPLDs têm em média 1000 macrocélulas e cada uma delas, cerca de 20 equivalent gates (eg), ou seja, 20.000 eg em um CPLD. Isto, pelos padrões atuais, permite implementar circuitos de média complexidade.
Figure 3.35 Structure of an FPGA
Logic block Interconnection switches
I/O block
I/O block
I/O b
lock I/
O b
lock
Figure 3.36 A two-input lookup table
(a) Circuit for a two-input LUT
x 1
x 2
f
0/1
0/1
0/1
0/1
0 0 1 1
0 1 0 1
1 0 0 1
x 1 x 2
(b) f 1 x 1 x 2 x 1 x 2 + =
(c) Storage cell contents in the LUT
x 1
x 2
1
0
0
1
f 1
f 1
Blocos Lógicos
look-up table
Figure 3.37 A three-input LUT
f
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
x 2
x 3
x 1
Figure 3.38 Inclusion of a flip-flop with a LUT
Out
D Q
Clock
Select
Flip-flop In1
In2
In3
LUT
Blocos Lógicos
look-up table e Flip-Flop
Figure 3.39 A section of a programmed FPGA
0 1 0 0
0 1 1 1
0 0 0 1
x 1
x 2
x 2
x 3
f 1
f 2
f 1 f 2
f
x 1
x 2
x 3 f
ON
OFF
as chaves programáveis nos PLDs impõem limites à implementação de circuitos de maior
complexidade nesses dispositivos, bem como às suas velocidades de operação.
Custom Chips
• enquanto os PLDs são pré-fabricados e, portanto, de uso geral, os custom chips são construídos para aplicações específicas e por isso apresentam desempenho otimizado.
• custo elevado, somente justificado para grandes perspectivas de vendagem (microprocessadores, memórias).
Custom Chips têm custo elevado, somente justificado para grandes perspectivas de vendagem (microprocessadores, memórias, etc).
Application Specific Integrated Circuits - ASICs• esta tecnologia disponibiliza ao projetista bibliotecas de standard cells.• mantém certo nível de otimização por não serem pré-fabricados.• encapsulamentos: QFP, PGA ou BGA.• custo ainda elevado, mas mais baixo que o dos custom chips.
Gate Array Tecnology - GAT• partes do chip são pré-fabricadas e outras são dedicadas.• amortização do custo pelo fato do fabricante desenvolver boa parte do processo (pré-fabricação).
Figure 3.40 A section of two rows in a standard-cell chip
f 1
f 2 x 1
x 3
x 2
Figure 3.41 A sea-of-gates gate array
Figure 3.42 An example of a logic function in a gate array
f 1
x 1
x 3
x 2