1
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
1 Jorge Lobo 2013
Laboratório de Sistemas Digitais
DEPARTAMENTO DE ENGENHARIA ELECTROTÉCNICA E DE COMPUTADORES FACULDADE DE CIÊNCIAS E TECNOLOGIA UNIVERSIDADE DE COIMBRA
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
2
Programa • Tópicos principais:
– Introdução a sistemas digitais, sistemas de numeração e álgebra de Boole. – Circuitos lógicos combinacionais. – Circuitos lógicos sequenciais, controladores e autómatos finitos. – Linguagens de descrição de hardware (HDL), VHDL. – Elementos de suporte para o fluxo de dados (datapath). – Projecto ao nível de transferências de registos (RTL). – Introdução ao processador programável – Optimização e compromissos no projecto de sistemas digitais. – Tecnologias de implementação física, SSI ICs, ASICs, FPGAs, PLDs.
Cap. 1 Cap. 2 Cap. 3 Cap. 9 Cap. 4 Cap. 5 Cap. 8 Cap. 6 Cap. 7
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
3
Copyright © 2007 Frank Vahid Instructors of courses requiring Vahid's Digital Design textbook (published by John Wiley and Sons) have permission to modify and use these slides for customary course-related activities, subject to keeping this copyright notice in place and unmodified. These slides may be posted as unanimated pdf versions on publicly-accessible course websites.. PowerPoint source (or pdf with animations) may not be posted to publicly-accessible websites, but may be posted for students on internal protected sites or distributed directly to students by other electronic means. Instructors may make printouts of the slides available to students for a reasonable photocopying charge, without incurring royalties. Any other use requires explicit permission. Instructors may obtain PowerPoint source or obtain special use permissions from Wiley – see http://www.ddvahid.com for information.
Slides adaptados a partir da versão original do autor do livro adoptado: Digital Design, First Edition, by Frank Vahid, John Wiley and Sons Publishers, 2007. http://www.ddvahid.com
Laboratório de Sistemas Digitais
Capítulo 7 Tecnologias de Implementação Física
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
4
Introdução • O projecto de um circuito digital é só uma ideia, talvez
desenhado em papel • Temos que eventualmente implementar o circuito num
dispositivo físico – Como passar de (a) para (b)?
7.1
k p
s
w
B elt W a r n
IC (a) Projecto de circuito digital
(b) Implementação Física
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
5 © Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
6
Tecnologias de Circuitos Integrados ICs Fabricados • Podemos fabricar o nosso próprio IC
– Demora meses e custa milhões de euros – (1) Full-custom ou (2) semicustom
• (1) Full-custom IC (feito por medida) – Todo layout é feito de raiz
• Feito com ferramentas de CAD • Layout descreve a localização e tamanho de
cada transistor e fio – Layout enviado para “fab” (fabrication plant) – Pesado!
• Custos de preparação de fabrico elevados Fab setup costs ("non-recurring engineering", or NRE, costs) high
• Sujeito a erros (several "respins") • Pouco utilizado
– Reservado para ICs especiais que exigem a melhor performance possivel, ou o menor tamanho ou consumo possivel
• Justifica-se para dispositivos de grande consumo: Memória e processadores programáveis
7.2
k p
s
w
B elt W a r n
IC
C us t om l a y out
F ab mo n ths
a
2
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
7
Tecnologias de ICs fabricados – Gate Array ASIC • (2) Semicustom IC
(ajustado à medida) – Integrado de Aplicação Específica
"Application-specific IC" (ASIC) – (a) Gate array ou (b) standard cell
• (2a) Gate array (matriz de portas) – Portas lógicas já dispostas
no circuito integrado (chip) – Basta interligar fios
• Com ferramentas de CAD – Vs. full-custom
• Mais barato e rápido projectar • Mas tem pior performance,
tamanho, consumo – Muito utilizado
k p
s
w B elt W a r n
w
F ab w eeks
( just wi r ing)
( a )
IC ( d )
k p
s ( c )
( b )
a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
8
Tecnologias de ICs fabricados – Gate Array ASIC • (2a) Gate array
– Exemplo: Mapear um semi-somador num gate array
G a t e a r r a y
s
c o a b
co = ab s = a'b + ab'
a'b ab'
a
Half-adder equations:
ab
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
9
Tecnologias de ICs fabricados – Standard Cell ASIC • (2) Semicustom IC
(ajustado à medida) – Integrado de Aplicação Específica
"Application-specific IC" (ASIC) – (a) Gate array ou (b) standard cell
• (2b) Standard cell – “células” com layout pré-definidas
numa biblioteca, não no chip – Projectista instancia células em
linhas pré-definidas, e interliga – Vs. gate array
• melhor em performance, consumo, e tamanho
• Um pouco mais complicado projectar
– Vs. full custom • Não tão bom, mas muito mais
simples projectar
w
k p
s
w BeltWarn
k p s
Fab 1-3 months
(cells and wiring)
( a )
IC ( d ) ( c )
( b ) Cell library
cell row cell row cell row
a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
10
Tecnologias de ICs fabricados – Standard Cell ASIC • (2b) Standard cell
– Exemplo: Mapear um semi-somador para standard cells
s co a
b
co = ab s = a'b + ab'
ab a'b
ab'
cell row
cell row
cell row
G a t e a r r a y
s c o a
b a'b ab' ab
Notice fewer gates and shorter wires for standard cells versus gate array,
but at cost of more design effort
a
a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
11
• Quantas portas são necessárias para gerar qualquer função Booleana?
• Álgebra de Boole definida com três operações (que por definição geram todas as funções possíveis): – AND, OR, NOT
• Posso implementar qualquer função com só com portas NAND: – NOT:
– AND:
– OR:
• NOR é também uma porta lógica universal
NAND como porta lógica Universal (Cap. 1)
adaptado de V. Lobo 2003
x y F
OR F x
y AND
F x N O T
<=>
<=>
<=>
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
12
Implementar Circuitos Só com Portas NAND • Gate array pode ter
apenas portas NAND – NAND é porta universal
• Qualquer circuito pode ser convertido noutro que tem apenas NANDs
• Converter circuito com AND/OR/NOT num circuito só com NANDs utilizando o mapeamento conhecido – Depois de converter,
retirar as duplas negações
a b x x
F=x' F=x'
I nputs x 0 1
O utput F 1 0
a 0 1
b 0 1
a b
a b F=ab F=ab (a b )'
a b
a b F=a+b
F=(a'b')'=a''+b''=a+b
Dupla negação
a
a a
a
3
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
13
Implementar Circuitos Só com Portas NAND • Exemplo: semi-somador
(half-adder) a b x x
F=x' F=x' a b
a b F=ab F=ab (a b )'
a b
a b F=a+b
F=(a'b')'=a''+b''=a+b
Rules
a s
b a b
( a )
s a b a b
( c )
s
a b a b
( b )
double inversion (delete)
double inversion (delete) a a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
14
Implementar Circuitos Só com Portas NAND • Ao desenhar à mão
– Utilizar círculos a indicar negação em vez de NAND de duas entradas – Depois retirar as duplas negações como antes
a
s s s
abab
a
b
a
b
bab
(a) (b) (c)
double inversion
double inversion
a
double inversion (delete)
double inversion (delete)
s a b a b
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
15
Implementar Circuitos Só com Portas NOR • Porta NOR também é universal • Converter AND/OR/NOT para NOR é feito com regras
similares
a a
a
b
b a
ab ab
a+b a+b
a ‘ a ‘ a a
b
b
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
16
Implementar Circuitos Só com Portas NOR • Exemplo: semi-somador (half adder)
a
s b a b
( a ) ( c )
a b
a b
s
a
double inversion
double inversion ( b )
a b a b
s
a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
17
k p s
w
( c )
Implementar Circuitos Só com Portas NOR • Exemplo: Luz de aviso do cinto de segurança num gate array de NORs
– Nota: para portas NOR de 2 entradas, converter portas AND/OR para 2 entradas
w
k
p s
1 3
2 4 5
( d ) ( a )
3 4 1 2 5
k p
w
was
s
( b ) a
a a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
18
Tecnologias de ICs Programáveis – FPGA 7.3
• Tecnologias de ICs fabricados demoram semanas a meses a fabricar – Custos iniciais elevados (centenas de milhar a
milhões de euros) • ICs Programáveis são pré-fabricados
– Podemos implementar o circuito hoje – Basta fazer download dos bits para o dispositivo – Mais lento, tamanho maior, e maior consumo que
ICs fabricados à medida • Mas está pronto hoje, não temos custos iniciais de
fabrico • ICs Programáveis muito utilizado– FPGA
– "Field-programmable gate array" • Desenvolvido nos finais da década de 1980s • Embora nao exista um "gate array" dentro
– gate arrays eram muito populares nos anos 80 • Programável em segundos
4
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
19
Estrutura Interna FPGA: Lookup Tables (LUTs) • Ideia base: Memória pode implementar lógica combinacional
– ex., memória com 2 linhas de endereço pode implementar lógica de 2 entradas – Memória com 1 bit de largura – 1 função; 2-bits – 2 funções
• Essa memória na FPGA designa-se por Lookup Table (LUT), tabela de consulta.
( b ) ( a ) ( d )
F = x'y' + xy G = xy' x 0 0 1 1
y 0 1 0 1
F 1 0 0 1
G 0 0 1 0
F = x'y' + xy x 0 0 1 1
y 0 1 0 1
F 1 0 0 1
4x 1 Mem.
0 1 2 3
rd
a1 a0
1
y x D
F
4x 1 Mem.
1 0 0 1
0 1 2 3
rd
a1 a0
1
D
( c )
1 0 0 1
y=0 x=0
F=1
4x 2 Mem.
10 00 01 10
0 1 2 3
rd
a1 a0
1
x y D1 D0
F G ( e )
a a a a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
20
Estrutura Interna FPGA: Lookup Tables (LUTs) • Exemplo: Luz de aviso do
cinto de segurança (novamente)
k p
s
w BeltWarn
( a )
( b )
k 0 0 0 0 1 1 1 1
p 0 0 1 1 0 0 1 1
s 0 1 0 1 0 1 0 1
w 0 0 0 0 0 0 1 0
Programming (seconds)
Fab 1-3 months
a
a
( c )
8x 1 Mem. 0 0 0 0 0 0 1 0 D w
I C
0 1 2 3 4 5 6 7
a2 a1 a0
k p s
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
21
Estrutura Interna FPGA: Lookup Tables (LUTs) • Lookup tables tornam-se ineficientes para mais entradas
– 3 entradas à apenas 8 words – 8 entradas à 256 words; 16 entradas à 65,536 words!
• Solução: FPGAs têm múltiplas pequenas LUTs (3, 4, 5, ou mesmo 6 entr.) – Se o circuito tem mais entradas, tem que ser dividido entre LUTs – Exemplo: Versão estendida do sistema de aviso do cinto de segurança
5-input circuit, but 3-input LUTs
available Map to 3-input LUTs
k p s t d
w BeltWarn
( a )
Partition circuit into 3-input sub-circuits
k p s t d
x w BeltWarn
( b )
3 inputs 1 output x=kps'
3 inputs 1 output w=x+t+d
a a
Sub-circuits have only 3-inputs each
8x 1 Mem. 0 0 0 0 0 0 1 0 D
0 1 2 3 4 5 6 7
a2 a1 a0
k p s
kps'
x
d t ( c )
8x 1 Mem. 0 1 1 1 1 1 1 1 D w
0 1 2 3 4 5 6 7
a2 a1 a0 x+t+d
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
22
Estrutura Interna FPGA: Lookup Tables (LUTs) • Dividir ou repartir (Partitioning) entre LUTs mais pequenas é mais
eficiente em termos de tamanho – Exemplo: circuito com 9 entradas
a c b a
c b d f g
F
i
e h
d f e g i h
3x1
3x1 3x1
3x1
F
( a ) ( b ) ( c )
512x 1 M em.
8x 1 M em.
Original 9-input circuit Partitioned among 3x1 LUTs
Requires only 4 3-input LUTs
(8x1 memories) – much smaller than a 9-input LUT (512x1
memory)
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
23
8x 2 Mem.
D0 D1
0
3 4 5 6 7
a2 a1 a0
a b c
( c )
( a )
( b )
8x 2 Mem.
D0 D1
0 1 2 3 4 5
a2 a1 a0
a c b
a c b
d
d
e
e
F
F t 3
3
1 1 2 2
Estrutura Interna FPGA: Lookup Tables (LUTs) • Tipicamente as LUT têm 2 (ou mais) saídas, não apenas uma • Exemplo: repartir um circuito entre tabelas de 3 entradas e duas saídas
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
First column unused; second column
implements AND
F e d
0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0
t
Second column unused; first column implements
AND/OR sub-circuit
(Note: decomposed one 4-input AND input two smaller ANDs to enable partitioning into 3-input sub-circuits)
a
a
1 2
6 7
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
24
Estrutura Interna FPGA: Lookup Tables (LUTs) • Exemplo: Mapear descodificador 2x4 para LUTs 3-entradas
e 2-saídas
8x 2 Mem. 10 01 00 00 00 00 00 00 D0 D1
0 1 2 3 4 5 6 7
a2 a1 a0
i1 i0 ( b ) ( a )
8x 2 Mem. 00 00 10 01 00 00 00 00 D0 D1
d1 d0 d3 d2
0 1 2 3 4 5 6 7
a2 a1 a0
0 i1 i0
0
d0
d1
d2
d3
Sub-
circu
it ha
s 2 in
puts,
2 o
utpu
ts
Sub-c
ircuit
has 2
inputs
, 2 ou
tputs
a a
5
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
25
8x 2 Mem. 00 00 00 00 00 00 00 00
D0 D1
0 1 2 3 4 5 6 7
a2 a1 a0
P1 P0
P6 P7
P8 P9
P2 P3
P5 P4 ( a )
8x 2 Mem. 00 00 00 00 00 00 00 00 D0 D1
0 1 2 3 4 5 6 7
a2 a1 a0 m0
m1 o0 o1
m2 m3
Switch matrix
FPGA (partial)
Estrutura Interna FPGA: Switch Matrices • Nos slides anteriores as ligações entre LUTS eram fixas (hardwired) • Pretendemos agora programar também as ligações • Matrizes de ligações - switch matrices (also known as programmable interconnect)
– Versão simples baseada em mux – cada saída pode ficar ligada a qualquer uma das 4 entradas, programando apenas os 2 bits da memória de configuração
( b )
m0 o0
o1
i0 s0 d
s1 i1 i2 i3
m1 m2 m3
2-bit memory
2-bit memory
Switch matrix
4x 1 mux
i0 s0 d
s1 i1 i2 i3
4x 1 mux
a a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
26
8x 2 Mem. 10 01 00 00 00 00 00 00
D0 D1
0 1 2 3 4 5 6 7
a2 a1 a0
0 0
d3 d2
d1 d0
i1 i0
i0 i1
( a )
8x 2 Mem. 00 00 10 01 00 00 00 00 D0 D1
0 1 2 3 4 5 6 7
a2 a1 a0 m0
m1 o0 o1
m2 m3
Switch matrix
FPGA (partial) 10
11 10 11
Estrutura Interna FPGA: Switch Matrices • Mapear descodificador 2x4 para FPGA com matriz de ligação
( b )
m0 o0
o1
i0 s0 d
s1 i1 i2 i3
m1 m2 m3
Switch matrix
4x 1 mux
i0 s0 d
s1 i1 i2 i3
4x 1 mux
These bits establish the desired connections
a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
27
Estrutura Interna FPGA: Switch Matrices • Mapear versão estendida do sistema de aviso do cinto
de segurança para FPGA com matriz de ligação – Como exemplo anterior, mas vamos ignorar a entrada d
para ficar mais simples
8x 2 Mem. 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
D0 D1
0 1 2 3 4 5 6 7
a2 a1 a0
k 0
w p s
0 t ( a ) ( b )
8x 2 Mem. 0 0 0 1 0 1 0 1 00 00 00 00 D0 D1
0 1 2 3 4 5 6 7
a2 a1 a0 m0
m1 o0 o1
m2
m0 o0
o1
i0 s0 d
s1 i1 i2 i3
m1 m2 m3
m3 Switch matrix
FPGA (partial) 00
10
Switch matrix
4x 1 mux
i0 s0 d
s1 i1 i2 i3
4x 1 mux
00 10
k p s t d
x w BeltWarn
a
x
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
28
Estrutura Interna FPGA: Configurable Logic Blocks (CLBs) • LUTs apenas
conseguem implementar lógica combinacional
• São necessários flip-flops para implementar lógica sequencial
• Acrescentar flip-flop a cada saída da LUT
– Configurable Logic Block (CLB)
• LUT + flip-flops – Podemos programar
as saídas CLB para virem our dos flip-flops ou directas das LUTs
8x 2 Mem. 00 00 00 00 00 00 00 00
D0 D1
0 1 2 3 4 5 6 7
a2 a1 a0
P1 P0 P2 P3
P5 P4
8x 2 Mem. 00 00 00 00 00 00 00 00
D0 D1
0 1 2 3 4 5 6 7
a2 a1 a0 m0
m1 o0 o1
m2 m3
Switch matrix
FPGA
00 00
CLB CLB
P6 P7 P8 P9
flip-flop CLB output
0 0 2x 1 2x 1 0 0 2x 1 2x 1 1-bit CLB
output configuration
memory
1 0 1 0 1 0 1 0
a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
29
Estrutura Interna FPGA: Exemplo de Circuito Sequencial com CLBs
8x 2 Mem. 11 10 01 00 00 00 00 00
D0 D1
0 1 2 3 4 5 6 7
a2 a1 a0
0 0 a b
d c
8x 2 Mem. 00 01 10 11 00 00 00 00
D0 D1
0 1 2 3 4 5 6 7
a2 a1 a0 m0
m1 o0 o1
m2 m3
Switch matrix
FPGA
10 11
1 1 2 x1 2 x1 2 x1 2 x1
CLB CLB
z y x w
1 1
a b c d
w x y ( a )
( b ) ( c )
z
a2 0 0 0 0 0
a1 a 0 0 1 1
a0 b 0 1 0 1
D1 w=a'
1 1 0 0
D0 x=b'
1 0 1 0
Left lookup table
below unused
1 0 1 0 1 0 1 0
a © Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
30
Estrutura Interna FPGA: Arquitectutra Geral • É composto de centenas ou milhares de CLBs e switch
matrices (SMs) dispostos num padrão regular num chip
CLB
SM SM
SM SM
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
Represents channel with tens of wires
Connections for just one CLB shown, but all
CLBs are obviously connected to channels
6
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
31
Estrutura Interna FPGA: Programar a FPGA • Todos os bits
das memória de configuração estão ligados como um grande shift register – designado por
scan chain • Shift in "bit file"
com o circuito desejado
8x 2 Mem. 11 10 01 01 00 00 00 00
D0 D1
0 1 2 3 4 5 6 7
a2 a1 a0
0 0
Pin Pclk
a b
d c Pin Pclk
8x 2 Mem. 01 00 11 10 00 00 00 00
D0 D1
0 1 2 3 4 5 6 7
a2 a1 a0 m0
m1 o0 o1
m2 m3
Switch matrix
FPGA
10 11
1 1 2x 1 2 x1 1 1 2 x1 2 x1
CLB CLB
z y x w
( c )
( b )
( a )
Conceptual view of configuration bit scan chain is that of a 40-bit shift register
Bit file contents for desired circuit: 1101011000000000111101010011010000000011 This isn't wrong. Although the bits appear as "10" above, note that the scan chain passes through those bits from right to left – so "01" is correct here.
a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
32
Outras Tecnologias 7.4
• Off-the-shelf logic (SSI) IC – IC lógico com poucas portas
ligadas aos pinos do integrado • Designados como Small Scale
Integration (SSI) – Familia Lógica muito utilizada:
7400 • Originalmente desenvolvidos nos
anos 1960s – Na altura cada IC custava $1000 – Hoje custam apenas algumas
dezenas de centimos
I 14 I 13 I 12 I 11 I 10 I 9 I 8
I 1 I 2 I 3 I 4 I 5 I 6 I 7
V C C
GND
I C
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
33
7400-Series Logic ICs
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
34
Circuitos Integrados de Lógica standard • Exemplo: luz de aviso do cinto de segurança com ICs 7400
– Opção 1: um 74LS08 IC com 2-input AND gates, e um 74LS04 IC com inversores
(a) Circuit desejado
(c) ligar ICs para criar circuito desejado
I 14 I 13 I 12 I 11
74LS08 I C
74LS04 I C
I 10 I 9 I 8
I 14 I 13 I 12 I 11 I 10 I 9 I 8 I 7 I 4 w k
p I 1 I 6 I 3 I 2
s
n I 5
I 7 I 4 I 1 I 6 I 3 I 2 I 5
k p
s
w
( a )
(b) Decompor em 2-input AND gates
k p
s w n
( b ) ( c )
a a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
35
Circuitos Integrados de Lógica standard • Exemplo: luz de aviso do cinto de segurança com ICs 7400
– Opção 2: apenas um 74LS27 IC com 3-input NOR gates
Connecting the pins to create the desired circuit
74LS27 I C
I 14 I 13 I 12 I 11 I 10 I 9 I 8
I 7
s
k
0 I 3
k p
s
w w
( a )
( c )
Converting to 3-input NOR gates
p
( b ) s
p k
w
0
0 I 2 I 4 I 5 I 6 I 1
a a © Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
36
Outras Tecnologias • Simple Programmable Logic
Devices (SPLDs) – Desenvolvidos nos anos 1970s
(anterior às FPGAs) – IC pré-fabricado com uma grande
estrturura AND-OR – Ligações podem ser
“programadas” para ter o circuito pretendido
• Circuito indicado pode implementar qualquer função de 3 variáveis com até 3 termos
– e.x., F = abc + a'c'
O1
PLD I C
I 3 I 2 I 1
programmable nodes
7
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
37
Nodos Programáveis num SPLD • Fuse based – "blown" fuse removes connection • Memory based – 1 creates connection
1 mem
F use "unbl o wn" fuse
0 mem
"bl o wn" fuse
p r o g r ammable node
( a )
( b )
O1
PLD I C
I 3 I 2 I 1
programmable nodes
Fuse based
Memory based
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
38
Desenho de PLDs e Exemplo com PLD • Forma comum de desenhar
ligações numa PLD: – Apenas um fio para indicar todas
as entradas de um AND – "x" indica uma ligação
• Crossing wires are not connected unless "x" is present
• Exemplo: luz aviso cinto segurança com SPLD
k p
s
w
B elt W a r n
Two ways to generate a 0 term
O1
PLD I C
I 3 I 2 I 1
× × wired AND
I 3 * I 2'
× ×
× × × × × ×
× × × w
PLD I C
s p k
kps'
0
0
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
39
Extensões de PLD
I 3 I 2 I 1
( a ) PLD I C
O1
O2
I 3 I 2 I 1
( b ) PLD I C
O2
O1 FF
FF
2 ⋅ 1
2 ⋅ 1
programmable bit
clk Two-output PLD PLD with programmable registered outputs
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
40
Mais sobre PLDs • Inicialmente (1970s) designadas por Programmable Logic Array – PLA
– Had programmable AND and OR arrays • AMD criou "Programmable Array Logic" – "PAL" (trademark)
– Only AND array was programmable (fuse based) • Lattice Semiconductor Corp. criou "Generic Array Logic – "GAL" (trademark)
– Memory based • Com o aumento da capacidade dos ICs, fabricantes colocam multiplas
estruturas PLD num unico chip, interligando-as – Become known as Complex PLDs (CPLD), and older PLDs became known as
Simple PLDs (SPLD) • DE FORMA GERAL, differencç entre SPLDs vs. CPLDs vs. FPGAs:
– SPLD: tens to hundreds of gates, and usually non-volatile (saves bits without power)
– CPLD: thousands of gates, and usually non-volatile – FPGA: tens of thousands of gates and more, and usually volatile (but no reason
why couldn't be non-volatile)
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
41
Tecnologias de Lógica Digital
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
42
Comparação das Tecnologias
Full-custom Standard cell (semicustom)
Gate array (semicustom) FPGA
PLD
reprogrammable
Easier design More optimized
Faster performance Higher density Lower power Larger chip capacity
Quicker availability Lower design cost
7.5
8
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
43
Comparação das Tecnologias
PLD FPGA G a t e a r r a y S tanda r d
c ell F ull - cus t om
(3) (4)
(2) (1)
Easier desi g n
M o r e optimi z ed C us t om
p r o c essor
P r o g r ammable p r o c essor
(1): Custom processor in full-custom IC Highly optimized
(2): Custom processor in FPGA Parallelized circuit, slower IC technology but programmable
IC technologies
Proc
esso
r var
ietie
s
(3): Programmable processor in standard cell IC
Program runs (mostly) sequentially on moderate-costing IC
(4): Programmable processor in FPGA Not only can processor be programmed, but FPGA can be programmed to implement multiple processors/coprocessors
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
44
Tendencia Principal nas Tecnologias de Implementação • Transistors per IC doubling every 18 months for past three decades
– Known as "Moore's Law" – Tremendous implications – applications infeasible at one time due to outrageous
processing requirements become feasible a few years later – Can Moore's Law continue?
100,000
10,000
1,000
100
10
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
45
...?
http://www.youtube.com/watch?v=bm6ScvNygUU © Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
46
Sumário do Capítulo 7 • Muitas maneiras de passar do projecto para
uma implementação fisica – Manufactured IC technologies
• Full-custom IC – Decidir sobre cada transistor e fio
• Semi-custom IC – Pormenores a nivel de transistor pré-projectados – Standard cell: colocar céculas e interligar – Gate array: basta interligar portas existentes
– FPGAs • Totalmente programáveis
– Outras tecnologias • Logic ICs, PLDs
k p
s
w
B elt W a r n
IC (a) Digital circuit
design (b) Physical
implementation
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
47 Jorge Lobo 2007
Laboratório de Sistemas Digitais
DEPARTAMENTO DE ENGENHARIA ELECTROTÉCNICA E DE COMPUTADORES FACULDADE DE CIÊNCIAS E TECNOLOGIA UNIVERSIDADE DE COIMBRA
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
48
?
9
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
49
…
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
50
?
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
51
Programa • Tópicos principais:
– Introdução a sistemas digitais, sistemas de numeração e álgebra de Boole. – Circuitos lógicos combinacionais. – Circuitos lógicos sequenciais, controladores e autómatos finitos. – Linguagens de descrição de hardware (HDL), VHDL. – Elementos de suporte para o fluxo de dados (datapath). – Projecto ao nível de transferências de registos (RTL). – Introdução ao processador programável – Optimização e compromissos no projecto de sistemas digitais. – Tecnologias de implementação física, SSI ICs, ASICs, FPGAs, PLDs.
Cap. 1 Cap. 2 Cap. 3 Cap. 9 Cap. 4 Cap. 5 Cap. 8 Cap. 6 Cap. 7