Baixe o app para aproveitar ainda mais
Prévia do material em texto
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL FACULDADE DE ENGENHARIA DEPARTAMENTO DE ENGENHARIA ELÉTRICA SISTEMAS DIGITAIS II Dispositivos Lógicos Programáveis Prof. Juliano D`Ornelas Benfica 2009/01 Dispositivos LDispositivos Lóógicos Programgicos Programááveisveis –FPGA (Field Programmable Gate Array) são circuitos programáveis compostos por um conjunto de células lógicas ou blocos lógicos alocados em forma de uma matriz. –CPLD: (Complex Programmable Logic Device) São projetados essencialmente para se parecerem como um grande número de PALs (Programmed Array Logic) em uma único chip. O que são FPGAs?O que são FPGAs? Projeto e Implementação de Produtos Tecnológicos Baseados em Circuitos Eletrônicos Sem Projeto de Dispositivos Com Projeto de Dispositivos Chip SetsSistema digital dedicado, programável (microcontroladores e/ou DSPs) Sistemas computacional programável (e.g. PC) Dispositivos personalizáveis (FPGAs e CPLDs) Dispositivos projetados e fabricados sob encomenda ASIC (gate-arrays ou standard cells) Aumento de desempenho (maior velocidade e menor potência dissipada), sigilo de projeto, custo de desenvolvimento TECNOLOGIA Diminuição da complexidade de projeto Slides – Prof. F.Moraes Arquitetura bArquitetura báásicasica CLB CLB CLB CLB CLB CLB CLB CLB CLB Switch Blocks: •• Matriz de Matriz de CLBsCLBs ((configurable logic blocksconfigurable logic blocks)) interconectados por uma matriz de chaveamentointerconectados por uma matriz de chaveamento Slides – Prof. F.Moraes FPGAs FPGAs –– conceitos bconceitos báásicossicos Bloco K Bloco KBloco K Bloco K Bloco KBloco K Bloco K Bloco KBloco K ES ES ES ES ES ES ES ES ES ES ES ES Entrada/Saída Configuráveis Conexões Configuráveis Funções Configuráveis Slides – Prof. F.Moraes FPGAs FPGAs –– conceitos bconceitos báásicossicos •• Exemplo de conexão entre duas redesExemplo de conexão entre duas redes Bloco K Bloco KBloco K Bloco K Bloco K Bloco K Bloco K Bloco K Slides – Prof. F.Moraes LUTLUT -- gerador universal de gerador universal de funfunççõesões •• LUT LUT -- looklook--upup tabletable – Uma porção de hardware configurável/reconfigurável capaz de implementar qualquer tabela verdade de n entradas – Para n=4: – LUT • Altamente flexível • Método mais utilizado (Xilinx e Altera) 2 (2)4 = 65.536 funções implementáveis Slides – Prof. F.Moraes LUTLUT A B C D 1 0 0 1 0 0 0 1 1 0 1 0 1 0 1 0 Tabela verdade da função é armazenada em um memória durante a configuração do FPGA DADCADCBADCBAF ......),,,( ++= ∑= )14,12,10,8,7,3,0(),,,( DCBAF As entradas (variáveis Booleanas) controlam um multiplexador 2n:1 0 15 Implementação física de uma LUT4 Considerando 150 transistores / LUT Para 50.000 LUTS ���� 7.500.000 transistores ! Slides – Prof. F.Moraes Tecnologias de Programação • Diferentes tecnologias são utilizadas para armazenar a programação: • Antifuse • (E)EPROM • SRAM Programação única A programação deve ser feita toda a vez que a FPGA é ligada Número limitado de programações Tecnologias de configuraTecnologias de configuraççãoão Slides – Prof. F.Moraes FPGAs FPGAs –– ConfiguraConfiguraçção ão (dispositivos (dispositivos RAMRAM--basedbased) ) •• FPGA deve ser visto como FPGA deve ser visto como ““duas camadasduas camadas”” – Memória de configuração – Lógica do usuário •• MemMemóória de configuraria de configuraçção define:ão define: – All interconnection (wiring) – Logic Definition ( LUTs) – DSP blocks – Interface to hardwired blocks, e.g. PPC – BRAM width, contents – I/O Modes •• VirtexVirtex – Permite reconfiguração parcial Configuration Memory Layer User Logic Layer Virtex 4: 1 MB – 4 MB Slides – Prof. F.Moraes Top 4 PLD Top 4 PLD Manufacturers Manufacturers 20002000 Xilinx 42% Altera 37% Lattice 15% Actel 6% MERCADO FPGAsMERCADO FPGAs Slides – Prof. F.Moraes ECE 448 – FPGA and ASIC Design with VHDL MERCADO FPGAsMERCADO FPGAs 20052005 XilinxXilinxAltera Lattice Actel QuickLogic: 2% XilinxXilinx All OthersAll Others Segmento PLD Segmento FPGA Other: 2% 51%33% 5% 7% AlteraAltera 58% 31% 11% ECE 448 – FPGA and ASIC Design with VHDL XilinxXilinx �� ProdutosProdutos PrimPrimááriosrios FPGAsFPGAs e CAD softwaree CAD software �� QuartelQuartel General General emem San Jose, CASan Jose, CA �� FablessFabless* * -- NãoNão possuipossui ffáábricabrica prpróópriapria � UMC (Taiwan) {*Xilinx acquired an equity stake in UMC in 1996} � Seiko Epson (Japan) � TSMC (Taiwan) Programmable Logic Devices ISE Alliance and Foundation Series Design Software ECE 448 – FPGA and ASIC Design with VHDL Xilinx FPGA FamiliesXilinx FPGA Families •• Old familiesOld families – XC3000, XC4000, XC5200 – Old 0.5µm, 0.35µm and 0.25µm technology. Not recommended for modern designs. •• HighHigh--performance familiesperformance families – Virtex (220 nm) – Virtex-E, Virtex-EM (180 nm) – Virtex-II, Virtex-II PRO (130 nm) – Virtex-4 (90 nm) – Virtex-5 (65 nm) •• Low Cost FamilyLow Cost Family – Spartan/XL – derived from XC4000 – Spartan-II – derived from Virtex – Spartan-IIE – derived from Virtex-E – Spartan-3 (90 nm) – Spartan-3E (90 nm) – Spartan-3A (90 nm) ECE 448 – FPGA and ASIC Design with VHDL General structure of an FPGA ECE 448 – FPGA and ASIC Design with VHDL CLB CLB CLB CLB Logic cell Slice Logic cell Logic cell Slice Logic cell Logic cell Slice Logic cell Logic cell Slice Logic cell Configurable logic block (CLB) Xilinx CLB ECE 448 – FPGA and ASIC Design with VHDL CLB StructureCLB Structure ECE 448 – FPGA and ASIC Design with VHDL 16-bit SR 16x1 RAM 4-input LUT LUT MUX REG Logic Cell (LC) 16-bit SR 16x1 RAM 4-input LUT LUT MUX REG Logic Cell (LC) Slice Xilinx CLB Slice ECE 448 – FPGA and ASIC Design with VHDL CLB Slice StructureCLB Slice Structure •• Each slice contains two sets of Each slice contains two sets of the following:the following: – Four-input LUT • Any 4-input logic function, • or 16-bit x 1 sync RAM (SLICEM only) • or 16-bit shift register (SLICEM only) – Carry & Control • Fast arithmetic logic • Multiplier logic • Multiplexer logic – Storage element • Latch or flip-flop • Set and reset • True or inverted inputs • Sync. or async. control ECE 448 – FPGA and ASIC Design with VHDL LUT (LookLUT (Look--Up Table) FunctionalityUp Table) Functionality • Look-Up tables are primary elements for logic implementation • Each LUT can implement any function of 4 inputs x1 x2 x3 x4 y x1 x2 y LUT x1 x2 x3 x4 y 0 x1 0 x2 x3 x4 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 y 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 x1 0 x2 x3 x4 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 y 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 x1 x2 x3 x4 y x1 x2 x3 x4 y x1 x2 y x1 x2 y LUT x1 x2 x3 x4 y 0 x1 0 x2 x3 x4 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 y 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 x1 0 x2 x3 x4 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 00 1 1 0 1 1 1 1 0 1 1 1 1 y 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 x1 0 x2 x3 x4 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 y 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 x1 0 x2 x3 x4 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 y 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 ECE 448 – FPGA and ASIC Design with VHDL Simplified view of a Xilinx Logic Cell ECE 448 – FPGA and ASIC Design with VHDL RAM16X1S O D WE WCLK A0 A1 A2 A3 RAM32X1S O D WE WCLK A0 A1 A2 A3 A4 RAM16X2S O1 D0 WE WCLK A0 A1 A2 A3 D1 O0 = = LUT LUT or LUT RAM16X1D SPO D WE WCLK A0 A1 A2 A3 DPRA0 DPO DPRA1 DPRA2 DPRA3 or Distributed RAMDistributed RAM •• CLB LUT configurable as CLB LUT configurable as Distributed RAMDistributed RAM – A single LUT equals 16x1 RAM – Two LUTs Implement Single and Dual-Port RAMs – Cascade LUTs to increase RAM size •• Synchronous writeSynchronous write •• Synchronous/AsynchronSynchronous/Asynchron ous readous read – Accompanying flip-flops used for synchronous read FPGAs FPGAs –– fatores limitantesfatores limitantes •• FreqFreqüüência de operaência de operaççãoão – Altera: 500 MHz – É um problema? Pode-se contornar através do paralelismo •• Consumo de potênciaConsumo de potência – Impedem ainda FPGAs em dispositivos móveis – Altera: controle de consumo de potência através de múltiplas alimentações •• Circuitos analCircuitos analóógicosgicos – É um problema! – Xilinx introduziu conversão A/D e D/A nas Virtex5 •• Custo para alto volumeCusto para alto volume Slides – Prof. F.Moraes Usados em Usados em todastodas as as ááreas!reas! •• TelecomunicaTelecomunicaççãoão – um dos maiores mercados para FPGA – inclusive wireless •• AutomaAutomaçção e Controleão e Controle •• ConsumerConsumer – HDTV •• AutomotivoAutomotivo – Xilinx Automotive (XA) family •• Espacial (satEspacial (satéélites e velites e veíículos de exploraculos de exploraçção)ão) – radiation tolerant reconfigurable FPGAs •• SupercomputaSupercomputaççãoão ((CrayCray)) Slides – Prof. F.Moraes PrototipaPrototipaçção Rão Ráápidapida •• Reduz time to Reduz time to marketmarket •• SimulaSimulaçção prão próóxima ao tempo real (xima ao tempo real (realreal-- world world testingtesting)) •• ValidaValidaçção simultânea da arquitetura e ão simultânea da arquitetura e algoritmoalgoritmo •• FlexibilidadeFlexibilidade •• ReutilizaReutilizaçção dos mão dos móódulos de hardware dulos de hardware ((core recore re--useuse) ) •• Iteratividade com o usuIteratividade com o usuááriorio Slides – Prof. F.Moraes Plataformas de PrototipaPlataformas de Prototipaçção Rão Ráápida de pida de Sistemas DigitaisSistemas Digitais •• Hardware pode ser parcialmente alterado de forma Hardware pode ser parcialmente alterado de forma dinâmica, para implementar comportamentos dinâmica, para implementar comportamentos diversosdiversos •• Provêem suporte a uma variedade de formas de Provêem suporte a uma variedade de formas de comunicacomunicaçção com perifão com perifééricos.ricos. •• UtilidadesUtilidades:: – Validação funcional de sistemas digitais complexos – Aumento da controlabilidade e observabilidade de um projeto – Desenvolvimento de partes de sistemas digitais – Implementação e validação de sistemas digitais reconfiguráveis – Ensino de projeto de sistemas digitais Slides – Prof. F.Moraes Componentes de uma Componentes de uma plataforma de prototipaplataforma de prototipaççãoão Recursos Reconfiguráveis Recursos Fixos Recursos Programáveis Recursos de Interconexão Computador Hospedeiro Slides – Prof. F.Moraes XSVXSV--1 (com Xilinx Virtex)1 (com Xilinx Virtex) • 800 Kportas e abundância de E/S Slides – Prof. F.Moraes ExcaliburExcalibur--NiosNios FPGA Altera (4 placas) • FPGA com 400 Kportas lógicas • RAM (256 Kbytes SRAM + connector SODIMM) • Flash 1Mbyte • Interfaces Serial/PCI Slides – Prof. F.Moraes MemecMemec MicroBlaze V2MB1000MicroBlaze V2MB1000 FPGA Xilinx com 1 Mportas lógicas • RAM (2Mbytes SRAM + 32Mbytes SDRAM) • PROM 16Mbytes • Interfaces Serial + Ethernet/Serial/USB/PS2 (c/ sobreplaca P160) Slides – Prof. F.Moraes VirtexVirtex--II ProII Pro™™ FF1152FF1152 FPGA Xilinx V2Pro • FPGA com 2.5M portas lógicas • RAM (64 Mbytes SDRAM) • 3 PROMs para config • Interfaces Ethernet/Serial/USB •• Excelente para telecomunicaExcelente para telecomunicaççõesões •• MGTsMGTs e entrada e entrada óóticatica Slides – Prof. F.Moraes VirtexVirtex--II ProII Pro Slides – Prof. F.Moraes DigilentDigilent Spartan3 Spartan3 BoardBoard Spartan3 Board (10) • Xilinx Spartan-3 FPGA c/ 12 multiplicadores, 216Kbits of block RAM, e clock de até 500MHz • Flash 2Mbits (XCF02S) • 8 chaves, 4 botões, 9 LEDs, e display de 4 dígitos • Portas serial, VGA e PS/2 (mouse/teclado) • 3 conectores de 40 pinos • Usa cabos JTAG3, P4 e MultiPRO da Xilinx • 1Mbytes de memória SRAM (256Kb x 32) Slides – Prof. F.Moraes Avnet Avnet -- VirtexVirtex--II XC2V4000II XC2V4000 •• 4 milhões de portas l4 milhões de portas lóógicas gicas equivalentes!equivalentes! Slides – Prof. F.Moraes VirtexVirtex--4 ML4014 ML401 Digilent BASYSDigilent BASYS
Compartilhar