Dispositivos Lógicos Programáveis (PLD)
A. Mariano - 2012 1
Agenda • Introdução
• Visão Geral PLD – Evolução
– Arquiteturas
• Chaves de Programação
• FPGA vs ASIC
• Fundamentos FPGA
• Fluxo de projeto
A. Mariano - 2012 2
PLD x Componentes Discretos
• Redução do tamanho das placas de circuito impresso;
• Diminuição do consumo de energia;
• Processos de fabricação e projetos mais rápidos e baratos
• Aumento da confiabilidade dos sistemas – menos conexões sujeitas a falhas;
• Facilidade de manutenção
X
A. Mariano - 2012 3
PLD (Programmable Logic Devices)
• CI com grande número de unidades lógicas – Portas lógicas, Flip-flops, registradores (processadores em versões
sofisticadas)
• Pode ser gravado inúmeras vezes – Associados a memórias EEPROM/SRAM
• Utilizados em projetos de média e grande complexidade – Viabilidade econômica
A. Mariano - 2012 4
Definições (1/2)
• FPD (Field Programmable Device) – é o termo geral para qualquer tipo de circuito digital
que pode ser configurado. Também conhecido como PLD.
• PLA (Programmable Logic Array) – é um pequeno PLD que contém dois níveis de portas
lógicas, um plano E e um plano OU, onde ambos são programáveis.
• PAL (Programmable Array Logic) – é um pequeno PLD que tem um plano de portas lógicas
E programável seguido por um plano OU fixo.
• SPLD (Simple PLD)– refere-se a qualquer tipo simples de PLD, PLA ou PAL.
• CPLD (Complex PLD) – PLD mais complexo que consiste no arranjo de múltiplos blocos SPLD em um único chip. Outras nomes empregados são Enhaced PLD – EPLD, Super PAL e Mega PAL.
• FPGA (Field Programmable Gate Array) – é um PLD com uma estrutura que permite uma
capacidade lógica muito grande. Enquanto CPLDs possuem um grande número de entradas
(planos E), FPGAs oferecem muito mais estruturas lógicas, flip-flops e outros elementos
digitais.
• HCPLDs (High-Capacity PLD) – PLDs de alta capacidade, termo empregado para CPLDs e/ou FPGAs.
A. Mariano - 2012 5
Definições (2/2)
• Interconnect – é a conexão que realizada nas vias internas do PLD.
• Programmable Switch – pode conectar/desconectar elementos lógicos a uma via de conexão, ou uma via a outra dentro do PLD.
• Logic Block – um bloco de circuito relativamente pequeno que é replicado em conjuntos no PLD. Quando um circuito é implementado num PLD, ele é primeiro decomposto em sub-circuitos menores que podem ser mapeados em blocos lógicos. O termo bloco lógico é muito utilizado para descrever FPGAs, mas também pode referir blocos de circuitos em CPLDs.
• Logic Capacity – quantidade de lógica digital que pode ser colocada dentro de um PLD. Geralmente medida em número equivalente de portas lógicas. É a capacidade do PLD medida pelo tamanho do seu conjunto de portas. De forma simples, por exemplo, pode ser entendida como o número de portas NÃO-E de duas entradas que o PLD possui.
• Logic Density – A quantidade de lógica por unidade de área no PLD.
• Speed Performance – mede a máxima velocidade de operação de um circuito quando implementado num PLD. Para circuitos combinacionais é o maior atraso na propagação de um sinal ao longo do circuito, e para circuitos seqüenciais, é a máxima freqüência de relógio para a qual o circuito pode operar adequadamente.
A. Mariano - 2012 6
Evolução dos PLDs
• PROM precursora dos PLDs – barramento de endereço poderia ser utilizado como entrada de
circuitos lógicos e o barramento de dados como saída • funções lógicas requerem poucos termos de produtos e as PROMS possuem um
decodificador completo para sua entrada de endereço.
• PLA dois níveis de portas lógicas – um plano E programável seguido por um plano OU programável
• Plano E (produto de termos) / Plano OU (soma de termos)
– realizar funções na forma de soma de produtos
• versáteis, pois, ambos termos E e OU podem ter muitas entradas
– Alto custo de fabricação e baixo desempenho de velocidade
A. Mariano - 2012 7
Evolução dos PLDs
Diagrama de blocos da PLA
Estrutura simplificada de uma PLA
PLA dois níveis de portas lógicas
A. Mariano - 2012 8
Evolução dos PLDs
• PAL plano único de programação – um plano E programável para interconexões seguido por um plano OU
fixo (não-programável) • Para compensar a falta de generalidade (fixação do plano de portas OU):
– Diferentes tipos de PAL, com diferentes números de entradas e saídas, e vários tamanhos de portas OU
• Flip-flops conectados às saídas das portas OU para que circuitos seqüenciais possam ser implementados
• Diversos PLDs são baseados na arquitetura da PAL e são muitas vezes denominados de SPLDs
Baixo custo e alto desempenho de velocidade de pino a pino
A. Mariano - 2012 9
Evolução dos PLDs • PAL plano único de programação
A dificuldade para o aumento da capacidade de um SPLD é que sua estrutura cresce rapidamente com o aumento no número de entradas
A. Mariano - 2012 10
Evolução dos PLDs
• CPLD Complex PLD – Integração de vários SPLDs em um único chip
• prover interconexões dos blocos por programação
– ALTERA: pioneira em CPLDs (EPLDs)
– MAX 5000, MAX 7000 e MAX 9000
Dificuldade em se aumentar as estruturas dos CPLDs para maiores densidades lógicas
Macrocélula programabilidade interna seletividade de sinais
A. Mariano - 2012 11
Evolução dos PLDs
• MPGAs Mask-Programmable Gate Arrays – Conjunto de transistores pré-fabricados que podem configurados de acordo com
o circuito lógico desenvolvido pelo usuário • gravado pela interconexão dos transistores durante a fabricação do chip
Alto custo e tempo de fabricação
Motivaram o desenvolvimento das FPGAs
A. Mariano - 2012 12
Evolução dos PLDs • FPGA
- conjuntos de circuitos lógicos, chamados blocos lógicos, e fontes de interconexão
- configuração feita pelo usuário final
Alta capacidade lógica
Responsáveis por um grande progresso na forma como os circuitos digitais são projetados
A. Mariano - 2012 13
Categoria PLD vs Capacidade Lógica
Portas equivalentes referem-se
grosseiramente ao número de pontas NÃO-E
de duas entradas
O tipo de PLD a ser empregado dependerá da
aplicação e complexidade do circuito a ser projetado
O número de portas lógicas nas FPGAs atuais está muito além do
apresentado na Figura
A. Mariano - 2012 14
Chaves de Programação
• Fusíveis: usados nas PLAs
– Uma única gravação possível
• CMOS Domínio na industria de Cis
– transistores de porta flutuante
• CPLDs (EPROM e EEPROM)
• FPGAs (SRAM e anti-fusíveis)
A. Mariano - 2012 15
Resumo das tecnologias de chaves de programação
A. Mariano - 2012 16
FPGA vs ASIC - Geral
• Mercado crescente de FPGAs
• Atualmente, capaz de implementar funções que um ASIC fazia
• Maior consumo de energia e menor desempenho
• Menor Time-to-Market
• Riscos de projeto menores (reconfigurável)
• Prototipagem rápida (System Generator - Xilinx)
A. Mariano - 2012 17
FPGA vs ASIC – Fluxo de Projeto
A. Mariano - 2012 18
FPGAs
A. Mariano - 2012 19
Definição FPGA
• FPGA: Field Programmable Gate Array
• Conceito criado pela Xilinx em 1985
• É um conjunto de circuitos integrados conectados por uma matriz de células lógicas programáveis
• Tentava preencher o espaço entre CPLDs (Complex Programmable Logic Devices) e ASICs (Application Specific Integrated Circuit)
• O que se programa? – Blocos lógicos, interconexões e entradas/saídas
A. Mariano - 2012 20
Características (1/2)
• Arquitetura massivamente paralela
• Frequência de elevada de operação
• Grande quantidade de I/Os (Input/Output)
• Reprogramável
• 2,5 bilhões de transistores (8-core Intel 2,3 bi)
• Aplicações computacionalmente intensivas, paralelas e de tempo-real
A. Mariano - 2012 21
Características (2/2) • Ferramentas de desenvolvimento alto-nível
• IP Cores (Núcleos de Propriedade Intelectual)
• Grande variedade de tamanhos e funções – DSPs (MACs – Multiply and Accumulate)
– Ethernet MAC (Medium Access Controller), PCI Express
– Processores embarcados – PowerPC 440
– Memórias
– Digital Clock Managers
– High-Speed I/O - até 6GB/s
A. Mariano - 2012 22
Estrutura de uma FPGA
• Possuem unidades funcionais chamadas de CLBs (Configurable Logic Blocks) que implementam a lógica do circuito
• Unidades de interface, chamadas de IOBs (I/O Blocks), estabelecem a interface com o hardware
• Estrutura (matriz) de interconexões, ligando uma unidade (IOB/CLB) a outra
• Memória de configuração determina o chaveamento das conexões físicas
A. Mariano - 2012 23
Estrutura de uma FPGA
• Amarelo = IOBs
• Vermelho = CLBs
• Verde = Memórias
• Rosa = Clocks
• Azul C. = Mux
• Azul E. = PLLs
A. Mariano - 2012 24
Estrutura de uma FPGA
DCM – Digital Clock Manager CLB - Configurable Logic Blocks IOB - I/O Blocks
Fonte: Data Sheet Spartan-3 Family
A. Mariano - 2012 25
Estrutura de uma FPGA -
Blocos de Lógica Configurável (CLB)
• Usualmente cada bloco funcional é composto por: – LUT-4 / RAM / Shift Register
– Mux
– Flip-Flop
• Saídas são de apenas 1 bit
• A composição de diversos blocos funcionais implementa circuitos complexos
• Podem ser do tipo fine-grained ou coarse
A. Mariano - 2012 26
Estrutura de uma FPGA - Blocos de I/O (IOB)
• Grande quantidade de padrões elétricos (LVDS, LVPECL, LVCMOS, LVTTL, etc)
– L = Low, V = Voltage, P = Positive
• FPGAs Xilinx variam de 1.2V até 3.3V para sinais absolutos (single-ended)
• Sinais diferenciais operam até 2.5V
• Possuem de 100 até 1000 pinos de I/O
• Rocket I/O: de 100MB/s a 6.75GB/s
A. Mariano - 2012 27
Estrutura de uma FPGA - Blocos de I/O (IOB)
A. Mariano - 2012 28
Fonte: Data Sheet Spartan-3 Family
Estrutura de uma FPGA - Matriz de Interconexões
• As chaves estão dispostas horizontalmente e verticalmente entre os blocos lógicos
• Conectam os IOBs aos CLBs, definindo o roteamento dos sinais
SRAM: memória de boot, rápida configuração com gravação no chip e grande área de silício
EPROMs: sem memória de boot, configuração lenta com gravação fora do chip
A. Mariano - 2012 29
Fluxo de Projeto – Visão Geral
Implementation Constraints
FPGA (.bit)
Design Entry (VHDL)
Synthesis (RTL)
Timing Simulation Floor-Planning
Behavioral Simulation
Timing Analysis
Synthesis Constraints
•Place & Route •Map •Translate
Implementation
A. Mariano - 2012 30
Fluxo de Projeto – Visão Geral
• O fluxo de projeto é independente do fabricante
• Podem existir passos adicionais específicos a cada plataforma
• Normalmente foca-se na primeira etapa, a especificação (design entry), mas outras etapas também são importantes
• Cada fabricante fornece um ambiente integrado de desenvolvimento capaz de dar suporte a cada uma dessas etapas (Altera Quartus, Xilinx ISE, etc)
A. Mariano - 2012 31
Fluxo de Projeto – Visão Geral
• Possibilidade de utilização de softwares especializados em determinada etapa do projeto (ModelSim - simulação, Synplify – síntese, etc)
• São capazes de gerar o “código executável” FPGA, chamado de bitstream (.bit) e descarregá-lo (JTAG)
• Fornecem diversas diretivas de síntese (métricas, estilos de implementação, restrições de projeto, entre outros)
A. Mariano - 2012 32
Fluxo de Projeto – Visão Geral
FPGA (.bit)
Design Entry
Synthesis
Floor-Planning
•Place & Route •Map •Translate
Implementation
A. Mariano - 2012 33
VHDL
RTL
Esquemático
Configuração
Cada etapa do fluxo de projeto gera um sub-produto, que é utilizado com entrada da etapa seguinte
Fluxo de Projeto – Design Entry
• Onde o projetista define a especificação do projeto de hardware
• O resultado dessa etapa é um modelo de circuito descrito em VHDL ou Verilog
• A verificação dessa etapa é feita por meio de simulações
• Pode ser do tipo estrutural, comportamental ou RTL
A. Mariano - 2012 34
FPGA (.bit)
Design Entry
Synthesis
Floor-Planning
•Place & Route•Map•Translate
Implementation
Fluxo de Projeto - Síntese
• Etapa que converte um modelo VHDL em um modelo de circuito
• Lista todos os elementos lógicos que compõem o modelo projeto (ANDs, ORs, MUXs, Adders, etc)
• É a etapa de “compilação” do código • Converte HDL (Hardware Description
Language) em RTL (Register-Transfer Level)
• A análise sintática e hierárquica é feita nessa etapa, buscando métricas de otimização
A. Mariano - 2012 35
FPGA (.bit)
Design Entry
Synthesis
Floor-Planning
•Place & Route•Map•Translate
Implementation
Fluxo de Projeto - Síntese
VHDL não foi concebida inicialmente para síntese de circuitos
• Seu foco era especificação
• Permite construções abstratas, nem sempre sintetizáveis
• Também é possível simular o resultado gerado nessa etapa
A. Mariano - 2012 36
FPGA (.bit)
Design Entry
Synthesis
Floor-Planning
•Place & Route•Map•Translate
Implementation
Fluxo de Projeto - Implementação
• A etapa de implementação é composta por 3 partes
– Tradução
– Mapeamento
– Posicionamento e Roteamento
• Essa etapa é dependente da plataforma
• Transforma um modelo conceitual em um circuito digital pronto para ser descarregado em FPGA (bitstream download)
A. Mariano - 2012 37
FPGA (.bit)
Design Entry
Synthesis
Floor-Planning
•Place & Route•Map•Translate
Implementation
Fluxo de Projeto - Implementação
• Tradução
– Combina as restrições de projeto com os esquemas gerados anteriormente em um único arquivo de design lógico
– Todos os elementos lógicos são reduzidos a primitivas de implementação
– Essa etapa é algumas vezes omitida (é apenas um agregador de informações)
A. Mariano - 2012 38
FPGA (.bit)
Design Entry
Synthesis
Floor-Planning
•Place & Route•Map•Translate
Implementation
Fluxo de Projeto - Implementação
• Mapeamento:
– Divide e distribui os elementos lógicos definidos na tradução em recursos da FPGA (technology-specific)
– Circuitos complexos são divididos em unidades funcionais menores
– Cada circuito é mapeado em um CLB ou IOB, etc
– Nessa fase já existe informação precisa sobre atrasos de comutação (atraso de cada unidade funcional)
A. Mariano - 2012 39
FPGA (.bit)
Design Entry
Synthesis
Floor-Planning
•Place & Route•Map•Translate
Implementation
Fluxo de Projeto - Implementação
• Posicionamento e Roteamento:
– Arranjo espacial das unidades lógicas alocadas para implementar o projeto
– Posicionamento tenta manter a lógica relacionada próxima (performance)
– Roteamento conecta os blocos lógicos mapeados
– Essa etapa impacta significativamente no desempenho do circuito (atrasos de propagação)
A. Mariano - 2012 40
FPGA (.bit)
Design Entry
Synthesis
Floor-Planning
•Place & Route•Map•Translate
Implementation
Fluxo de Projeto – Visão Geral
Implementation Constraints
FPGA (.bit)
Design Entry (VHDL)
Synthesis (RTL)
Timing Simulation Floor-Planning
Behavioral Simulation
Timing Analysis
Synthesis Constraints
•Place & Route •Map •Translate
Implementation
A. Mariano - 2012 41
Fluxo de Projeto – Análise de Tempo
• Faz-se a análise de tempo do circuito e de dissipação de energia
• É a análise mais precisa do processo (todos os elementos do circuito e suas conexões já são conhecidos)
• Determina-se a frequência máxima de operação, caminho crítico, etc
• O resultado obtido pode conduzir a uma revisão das etapas anteriores
A. Mariano - 2012 42
Fluxo de Projeto – Visão Geral
Implementation Constraints
FPGA (.bit)
Design Entry (VHDL)
Synthesis (RTL)
Timing Simulation Floor-Planning
Behavioral Simulation
Timing Analysis
Synthesis Constraints
•Place & Route •Map •Translate
Implementation
A. Mariano - 2012 43
Fluxo de Projeto – Restrições de Usuário
• É possível criar restrições de projeto
• A ferramenta, durante cada etapa, tenta atingir essas restrições
• Restrições físicas do sinal: frequência de operação, offset, slew-rate, etc
• Restrições gerais: posição de I/Os, área/desempenho, estilo de FSM (Finite State Machine), etc
• Caso uma dessas características não seja atendida, o projeto falha
A. Mariano - 2012 44
Fluxo de Projeto - FloorPlanning • Quando os resultados obtidos pela
análise de tempo não forem satisfatórios, é necessário intervir no processo de implementação
• Problemas de frequência podem ser superados utilizando-se técnicas de pipeline
• Fan-outs elevados podem ser eliminados pela replicação de sinais
• Pode ser necessário posicionamento manual para superar problemas de atraso
A. Mariano - 2012 45
FPGA (.bit)
Design Entry
Synthesis
Floor-Planning
•Place & Route•Map•Translate
Implementation
Fluxo de Projeto – Programação da FPGA
• Uma vez completado com sucesso as etapas anteriores, um arquivo .bit (bitstream) é gerado
• Esse arquivo pode ser transferido a uma placa FPGA via JTAG (ou via USB-port)
• Em caso de produto final, esse bitstream é gravado em uma memória PROM
• Durante a inicialização do dispositivo, a FPGA busca sua configuração nessa memória
• Bitstream pode ser criptografado
A. Mariano - 2012 46
FPGA (.bit)
Design Entry
Synthesis
Floor-Planning
•Place & Route•Map•Translate
Implementation
Top Related