A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Engenharia de Software para Computação Embarcada

Apresentações semelhantes


Apresentação em tema: "Engenharia de Software para Computação Embarcada"— Transcrição da apresentação:

1 Engenharia de Software para Computação Embarcada
Prof. Frederico Ferlini Aula 3

2 CONTEÚDO Implementação de Circuitos Digitais
Introdução Exemplos Dispositivos Reconfiguráveis FPGAs Spartan3 Linguagens de Descrição de Hardware

3 Implementação de Circuitos Digitais
INTRODUÇÃO Criação de um projeto de circuito digital Pode ser até um desenho em uma folha (a) Eventualmente haverá a necessidade de implementar esse circuito em um dispositivo físico (b) Como? Introdução k p s w B elt W a r n (a) Digital circuit design si IC (b) Physical implementation ?

4 Implementação de Circuitos Digitais
Produzir o nosso próprio CI Meses de projeto e fabricação Milhões em dinheiro Totalmente ou Semi customizado (1) Totalmente customizado (Full-custom IC) Utiliza-se ferramentas de CAD (Computer Aided Design) Layout descreve a localização e a dimensão de cada transistor e conexão Envia para FAB (fabrication plant) que fabrica o CI Custos: NRE (setup), respin (erros de projeto). JUSTIFICA? B elt W a r n k p w C us t om l a y out s IC F ab mo n ths a

5 Implementação de Circuitos Digitais
Produzir o nosso próprio CI (2) Semicustomizado Gate Array ou Standard Cell Application Specific IC (ASIC) (2a) Gate Array Arranjos de portas lógicas CI com transistores pré-projetados O trabalho feito é a interconexão Utilizando-se ferramentas de CAD Comparação com Full-custom Menor custo e tempo de projeto Pior performance, área e consumo k B elt W a r n p w s ( b ) ( a ) k p s ( c ) IC ( d ) w w eeks ( just wi r ing) F ab

6 Implementação de Circuitos Digitais
Produzir o nosso próprio CI (2a) Gate Array Exemplo do mapeamento de um meio somador Half-adder equations: S = a’b + ab’  Soma = a XOR b CO = ab  CarryOut = a AND b Half-adder equations: s = a'b + ab' co = ab a c o ab a'b ab' b s G a t e a r r a y a

7 Implementação de Circuitos Digitais
Produzir o nosso próprio CI (2) Semicustomizado (2b) Standar Cell Células (pequenos circuitos) AND3, MUX21, AOI... Mesma altura (tipicamente) Biblioteca:células pré-projetadas Faixas de altura de padrão O trabalho: Escolha e posicionamento das células Conexão Comparação com Gate Array Um pouco mais complexo Melhor desempenho, consumo e área k BeltWarn p w s ( b ) Cell library ( a ) k w p cell row s cell row cell row ( c ) Fab IC ( d ) 1-3 months (cells and wiring)

8 Implementação de Circuitos Digitais
Produzir o nosso próprio CI (2b) Standard Cell Exemplo do mapeamento de um meio somador Half-adder equations: S = a’b + ab’  Soma = a XOR b CO = ab  CarryOut = a AND b Ferramentas de CAD bem avançadas: Roteamento e Otimização do circuito Ex.: CADENCE co = ab s = a'b + ab' G a t e a r y s c o b a'b ab' ab Número menor de portas Tamanho menor das conexões a ab a'b ab' co b s cell row cell row cell row a

9 Implementação de Circuitos Digitais
Outra solução: TTL Exemplo: aviso do cinto de segurança (a) k p w s w I 14 I 13 I 12 I 11 I 10 I 9 I 8 s k ( a ) 74LS27 I C Converting to 3-input NOR gates p ( b ) s k w I 1 I 2 I 3 I 4 I 5 I 6 I 7 ( c ) Connecting the pins to create the desired circuit

10 Implementação de Circuitos Digitais
Outra solução: TTL  Motorola 6800 based computer

11 Dispositivos Reconfiguráveis
A fabricação de CIs é cara e pode levar meses Custo inicial de fabricação elevado (milhões $$$) CIs Programáveis (Reconfiguráveis) são pré-fabricados Permite a implementação de um circuito imediatamente Simples, através do carregamento de bits no dispositivo Mais lentos/caros/consumo do que um CI customizado Pode ser comprado pronto, online e sem o custo de fabricação Mais popular  FPGA “Field-programmable gate array” Desenvolvido no fim dos anos 80 Não possui gate-arrays Nome originado da popularidade dos gate-arrays Permite a implementação de um circuito em segundos FPGAs

12 Dispositivos Reconfiguráveis
Outras tecnologias PLD – (Programmable Logic Device) 1970 (anterior ao FPGA) CIs pré-fabricados estruturas de portas AND ou OR Conexões programáveis Customiza o circuito Exemplo Implementa funções: até 3 entradas até 3 termos F = abc + a'bc' + a'b'c' F PLD I C c b a programmable nodes

13 Dispositivos Reconfiguráveis
PLD – Variações Fused ou Anti-fused Baseado em memória O1 PLD I C 3 2 1 programmable nodes p r o g r ammable node Fuse based ( a ) F use "unbl o wn" fuse "bl o wn" fuse Memory based mem mem 1 ( b )

14 Dispositivos Reconfiguráveis
Extensões do PLD Duas saídas Registradores nas saídas CPLD (Complex PLD) I 3 2 1 ( a ) PLD C O1 O2 b FF × programmable bit clk Two-output PLD PLD with programmable registered outputs

15 FPGAs Idéia básica: Memória implementa lógica combinacional
Mem. 4x1  1 função lógica Mem. 4x2  2 funções lógicas (mesmas entradas) Memória = LUT (Look-Up Table) F = x'y' + xy ( d ) F = x'y' + xy G = xy' x 1 y F G 4x 2 Mem. 10 00 01 1 2 3 rd a1 a0 x y D1 D0 F G ( e ) 4x 1 Mem. 4x 1 Mem. 1 2 3 rd a1 a0 D ( c ) x y F 1 rd 1 1 y=0 x=0 F=1 1 1 1 2 1 1 1 3 x a1 y a0 D F ( a ) ( b ) a a

16 FPGAs - LUTs Exemplo: Funcionamento da LUT Aviso do cinto de segurança
k p s w BeltWarn ( a ) ( b ) k 1 p s w Programming (seconds) Fab 1-3 months ( c ) 8x 1 Mem. 1 D w I C 2 3 4 5 6 7 a2 a1 a0 k p s a a

17 FPGAs - LUTs LUTs Mais entradas? 3-entradas 4-entradas (Spartan3)
+  ineficiente Mais entradas? Solução: partição em várias LUTs a a 512x 1 M em. 3x1 b b c c d d e F e 3x1 3x1 F f f 8x 1 M em. g g h h 3x1 i i ( a ) ( b ) ( c ) Partitioned among 3x1 LUTs Requires only 4 3-input LUTs (8x1 memories) – much smaller than a 9-input LUT (512x1 memory) Original 9-input circuit

18 FPGAs - LUTs Exemplo: Partição em várias LUTs
Aviso do sinto de segurança (+estendido) Circuito com 5 entradas Somente LUTs de 3 entradas disponível (3-LUT) Sub-circuits have only 3-inputs each 8x 1 Mem. D 2 3 4 5 6 7 a2 a1 a0 k p s kps' BeltWarn Partição do circuito em LUTs k p s t d x w BeltWarn ( b ) 3 inputs 1 output x=kps' w=x+t+d x d t ( c ) 8x 1 Mem. D w 2 3 4 5 6 7 a2 a1 a0 x+t+d k p w s t d ( a ) Circuitos 5-entradas, porém, só LUTs com 3-entradas a Mapeamento em LUTs

19 FPGAs - Interconexão Como é feita? Exemplo anterior
Interconexão Programável Matriz de chaveamento 8x 1 Mem. D 2 3 4 5 6 7 a2 a1 a0 k p s x d t w k p s t d x w BeltWarn ( b ) m0 o0 o1 i0 s0 d s1 i1 i2 i3 m1 m2 m3 2-bit memory Switch matrix 4x 1 mux FPGA (partial) 8x 2 Mem. 8x 2 Mem. 00 00 1 00 1 00 2 00 2 00 P0 3 00 3 00 P6 P1 a2 a2 4 00 4 00 P2 a1 m0 m1 o0 o1 m2 m3 Switch matrix a1 P7 P3 a0 5 00 a0 5 00 6 00 6 00 7 00 7 00 D1 D0 D1 D0 P8 P9 P4 P5 ( a )

20 FPGAs - Interconexão Exemplo Aviso do sinto de segurança
Obs.: ignorar a entrada d k p s t d x w BeltWarn FPGA (partial) Switch matrix 8x 2 Mem. 8x 2 Mem. 00 1 1 1 m0 s1 s0 2 2 1 i0 m1 o0 i1 3 3 1 4x 1 w m2 d k a2 a2 i2 mux 4 x 4 00 m3 a1 a1 i3 p 00 o0 a0 5 a0 5 00 s m0 o1 10 6 1 m1 6 00 m2 10 7 m3 7 00 D1 D0 Switch D1 D0 matrix s1 s0 i0 i1 o1 4x 1 d i2 mux t i3 ( a ) ( b )

21 FPGAs – Blocos Lógicos Configuráveis
CLB (Configurable Logic Blocks) LUTs implementam o circuito combinacional Circuito sequêncial ? Inclusão de um flip-flop na saída de cada LUT Configurable Logic Block CLB = (LUT + flip-flops) A saída do CLB pode vir do flip-flops ou das LUTs, diretamente Configurável FPGA CLB CLB 8x 2 Mem. 8x 2 Mem. 00 00 1 00 1 00 2 00 2 00 P0 3 00 3 00 P1 a2 a2 4 00 4 00 P2 a1 a1 00 o0 P3 a0 5 00 5 00 m0 o1 a0 00 6 00 m1 6 00 m2 7 00 m3 7 00 flip-flop CLB output D1 D0 Switch D1 D0 matrix 2x 1 1-bit CLB output configuration memory P6 P7 P8 P9 P4 P5

22 Conexões globais de longa distância
FPGAs - Arquitetura Visão geral Centenas de milhares de CLBs e matrizes de chaveamento Conexões globais de longa distância Conexões locais Interface do CLB CLB CLB CLB SM SM CLB CLB CLB SM SM CLB CLB CLB

23 Comparação das Tecnologias
FPGA  Protótipo de ASIC FPGA to ASIC (Anti-Fuse) Full-custom Standard cell (semicustom) Gate array (semicustom) FPGA PLD reprogrammable Quicker availability Faster performance Lower design cost Higher density Lower power Larger chip capacity Easier design More optimized

24 Spartan-3 FPGA Family Data Sheet (ds099)
Arquitetura IOBs LVTTL, LVCMOS, GTL, LVDS... Multiplicadores DSPs CLBs BRAMs

25 Spartan-3 FPGA Family Data Sheet (ds099)
Arquitetura CLB 4x Slices 2x SLICEM 2x SLICEL

26 Spartan-3 FPGA Family Data Sheet (ds099)
Arquitetura CLB 4x Slices LUTs FFs Carry

27 Spartan-3 FPGA Family Data Sheet (ds099)
Arquitetura IOBs BRAM CLB DSP 4x Slices LUTs DCMs FFs Outros: Carry PCIE, GBE...

28 Linguagens de Descrição de Hardware
VHDL “Very High Speed Integrated Circuits” (VHSIC), início 1980 Originou como linguagem para descrever o comportamento de ASICs, definido pelo U.S Department of Defense VHDL  VHSIC Hardware Description Language Padrão IEEE em 1987 (Institute of Electrical and Electronics Engineers), revisado em 1993 Linguagem utilizada mundialmente por empresas de CAD para especificação, simulação, síntese, propriedade intelectual Outras linguagens de descrição de hardware SystemC, VERILOG, Handel-C, SDL, ISP, Esterel, …


Carregar ppt "Engenharia de Software para Computação Embarcada"

Apresentações semelhantes


Anúncios Google