Top Banner
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 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 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 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 Belt Warn 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 Warn IC Cus tom layout F ab mo nths a
9

Cap. 3 Cap. 9 Cap. 4 Laboratório de Cap. 5 · Instructors of courses requiring Vahid's Digital Design textbook (published by John Wiley and Sons) ...

Jul 19, 2018

Download

Documents

hoangdat
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Cap. 3 Cap. 9 Cap. 4 Laboratório de Cap. 5 · Instructors of courses requiring Vahid's Digital Design textbook (published by John Wiley and Sons) ...

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

Page 2: Cap. 3 Cap. 9 Cap. 4 Laboratório de Cap. 5 · Instructors of courses requiring Vahid's Digital Design textbook (published by John Wiley and Sons) ...

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

Page 3: Cap. 3 Cap. 9 Cap. 4 Laboratório de Cap. 5 · Instructors of courses requiring Vahid's Digital Design textbook (published by John Wiley and Sons) ...

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

Page 4: Cap. 3 Cap. 9 Cap. 4 Laboratório de Cap. 5 · Instructors of courses requiring Vahid's Digital Design textbook (published by John Wiley and Sons) ...

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

Page 5: Cap. 3 Cap. 9 Cap. 4 Laboratório de Cap. 5 · Instructors of courses requiring Vahid's Digital Design textbook (published by John Wiley and Sons) ...

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

Page 6: Cap. 3 Cap. 9 Cap. 4 Laboratório de Cap. 5 · Instructors of courses requiring Vahid's Digital Design textbook (published by John Wiley and Sons) ...

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

Page 7: Cap. 3 Cap. 9 Cap. 4 Laboratório de Cap. 5 · Instructors of courses requiring Vahid's Digital Design textbook (published by John Wiley and Sons) ...

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

Page 8: Cap. 3 Cap. 9 Cap. 4 Laboratório de Cap. 5 · Instructors of courses requiring Vahid's Digital Design textbook (published by John Wiley and Sons) ...

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

?

Page 9: Cap. 3 Cap. 9 Cap. 4 Laboratório de Cap. 5 · Instructors of courses requiring Vahid's Digital Design textbook (published by John Wiley and Sons) ...

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