1 / 28

Engenharia de Software para Computação Embarcada

Engenharia de Software para Computação Embarcada. Prof. Frederico Ferlini Aula 3. CONTEÚDO. Implementação de Circuitos Digitais Introdução Exemplos Dispositivos Reconfiguráveis FPGAs Spartan3 Linguagens de Descrição de Hardware. Implementação de Circuitos Digitais. INTRODUÇÃO

titus
Download Presentation

Engenharia de Software para Computação Embarcada

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 B elt W a r n k si p ? w s IC (a) Digital circuit design (b) Physical implementation

  4. Implementação de Circuitos Digitais C us t om l a y out F ab mo n ths IC B elt W a r n • 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 (ComputerAided Design) • Layout descreve a localização e a dimensão de cada transistor e conexão • Envia para FAB (fabricationplant) que fabrica o CI • Custos: NRE (setup), respin (erros de projeto). JUSTIFICA? k p w s a

  5. Implementação de Circuitos Digitais k p s ( d ) ( c ) IC F ab w eeks ( justwi r ing) • Produzir o nosso próprio CI • (2)Semicustomizado • GateArray ou Standard Cell • Application SpecificIC (ASIC) • (2a)GateArray • 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 B elt W a r n k p w s ( b ) ( a ) w

  6. Implementação de Circuitos Digitais a'b ab' • Produzir o nosso próprio CI • (2a)GateArray • Exemplo do mapeamento de um meio somador • Half-adderequations: • 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 b s G a t e a r r a y a

  7. Implementação de Circuitos Digitais d ( ) IC 1-3 months (cells and wiring) • Produzir o nosso próprio CI • (2)Semicustomizado • (2b)StandarCell • 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 GateArray • Um pouco mais complexo • Melhor desempenho, consumo e área BeltWarn k p w Cell library s b ( ) a ( ) w k p cell row s cell row cell row c ( ) Fab

  8. Implementação de Circuitos Digitais Número menor de portas Tamanho menor das conexões ab a'b a c o ab a'b ab' b ab' s G a t e a r r a y • Produzir o nosso próprio CI • (2b)Standard Cell • Exemplo do mapeamento de um meio somador • Half-adderequations: • 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' co a s b cell row cell row cell row a

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

  10. Implementação de Circuitos Digitais • Outra solução: • TTL  Motorola 6800 basedcomputer • http://en.wikipedia.org/wiki/Transistor%E2%80%93transistor_logic

  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-programmablegatearray” • 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 – (ProgrammableLogicDevice) • 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' a b c I I I F PLD C I programmable nodes

  13. Dispositivos Reconfiguráveis 1 2 3 I I I O1 PLD C I programmable nodes • PLD – Variações • Fused ou Anti-fused • Baseado em memória 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 0 ( b )

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

  15. FPGAs F = x'y' + xy 4x 2 Mem. G = xy' 4x 1 Mem. 1 rd x y F G 1 rd 1 0 10 0 1 0 0 1 0 0 1 00 1 0 0 1 0 0 0 2 01 2 0 1 0 0 1 x=0 1 3 10 3 1 a1 a1 x 1 1 1 0 a0 y a0 D1 D0 D y=0 F=1 F G c d e ( ) ( ) ( ) • 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-UpTable) F = x'y' + xy 4x 1 Mem. x y F 1 rd 0 0 1 0 0 1 0 1 1 0 0 2 1 1 1 3 a1 x a0 y D F a b ( ) ( ) a a

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

  17. FPGAs - LUTs • LUTs • 3-entradas • 4-entradas (Spartan3) • 6-entradas • +  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 3x1 e 3x1 F F f f 8x 1 M em. g g h h 3x1 i i ( b ) ( a ) ( 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 Sub-circuits have only 3-inputs each kps' 8x 1 Mem. 8x 1 Mem. BeltWarn k 0 0 0 0 p x 1 0 1 1 w 2 0 2 1 s 3 0 3 1 x t k a2 a2 4 0 4 1 p a1 a1 d 5 0 5 1 s a0 a0 6 1 6 1 x+t+d 3 inputs 3 inputs 7 0 7 1 1 output 1 output D D x=kps' w=x+t+d t b ( ) d Partição do circuito em LUTs w c ( ) • 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) BeltWarn 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 BeltWarn k p x w s t d Switch matrix 2-bit memory s1 s0 m0 i0 8x 1 Mem. 8x 1 Mem. m1 o0 i1 4x 1 m2 d 0 0 0 0 i2 mux m3 i3 1 0 1 1 o0 2 0 2 1 o1 m0 2-bit 3 0 3 1 m1 x k a2 a2 memory m2 4 0 4 1 p a1 a1 m3 5 0 5 1 s a0 a0 Switch s1 s0 6 1 6 1 matrix i0 o1 i1 4x 1 7 0 7 1 d i2 mux D D i3 t d b ( ) w • Como é feita? • Exemplo anterior • Interconexão Programável • Matriz de chaveamento FPGA (partial) 8x 2 Mem. 8x 2 Mem. 0 00 0 00 1 00 1 00 2 00 2 00 P0 3 00 3 00 P6 P1 a2 a2 4 00 4 00 a1 a1 P2 P7 5 00 5 00 a0 a0 P3 6 00 6 00 7 00 7 00 D1 D0 D1 D0 P8 P9 P4 P5 a ( )

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

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

  22. FPGAs - Arquitetura • Visão geral • Centenas de milhares de CLBs e matrizes de chaveamento Conexões locais Interface do CLB Conexões globais de longa distância 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 • CLB • 4x Slices • LUTs • FFs • Carry • IOBs • BRAM • DSP • DCMs • Outros: • PCIE, GBE...

  28. Linguagens de Descrição de Hardware • VHDL • “VeryHighSpeedIntegratedCircuits” (VHSIC), início 1980 • Originou como linguagem para descrever o comportamento de ASICs, definido pelo U.S DepartmentofDefense • VHDL  VHSIC Hardware DescriptionLanguage • Padrão IEEE em 1987 (InstituteofElectricalandElectronicsEngineers), 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, …

More Related