Você está na página 1de 3

Fundamentos da tecnologia FPGA

Overview
Arranjos de portas programveis em campo (FPGAs - field-programmable gate arrays) so chips de silcio reprogramveis. Ross Freeman, o cofundador da Xilinx inventou o primeiro FPGA em
1985. A adoo do chip FPGA pela indstria conduzida pelo fato de que o FPGA combina os melhores recursos dos Circuitos Integrados Construdos para Tarefas Especficas (ASICs application-specific integrated circuits) e sistemas baseados em processadores. Os FPGAs fornecem velocidade temporizada por hardware e alta confiabilidade, no necessitando de compra em
altos volumes para justificar a grande despesa de um projeto de ASIC customizado.
As pastilhas de silcio reprogramveis possuem a mesma flexibilidade de software de um sistema baseado em processadores, mas no limitado pelo nmero de ncleos do processador.
Diferentemente dos processadores, os FPGAs so verdadeiramente paralelos por natureza, ento diferentes operaes de processamento no tm que competir pelos mesmos recursos. Cada
tarefa de processamento enviada para uma seo dedicada do chip e pode funcionar de modo autnomo sem nenhuma influncia de outros blocos lgicos. Como resultado, o desempenho de

uma parte da aplicao no afetada quando voc adiciona mais tarefas.


Figura 1. Um dos benefcios dos FPGAs em comparao a sistemas baseados em processadores que a lgica da aplicao implementada em circuitos fsicos em vez de execut-los em um
sistema operacional, drivers e software de aplicao.
Se este conceito novo para voc, o objetivo deste documento apresentar os fundamentos de FPGA, os blocos que constituem um FPGA e as ferramentas de projeto que tornam possvel ter
um chip de silcio reconfigurvel.

Table of Contents
Definindo as partes de um FPGA
Todo chip FPGA constitudo de um nmero finito de recursos de hardware predefinidos, com interconexes programveis por software e implementadas em hardware. Tambm possui blocos
de E/S que permitem que o circuito acesse o mundo externo.

Figura 2. Diferentes partes de um FPGA


As especificaes de um FPGA geralmente incluem o nmero de blocos lgicos configurveis, nmero de blocos lgicos de funes fixas como multiplicadores e blocos de RAM (tamanho de
memria). Entre todas as partes de um chip FPGA, estas geralmente so mais as importantes para uma aplicao.
Os blocos lgicos configurveis (CLBs configurable logic blocks) so a unidade lgica bsica de uma FPGA. Algumas vezes referido como clulas lgicas, os CLBs so feitos de dois
componentes bsicos: flip-flops e lookup tables (LUTs). Vrias famlias de FPGAs diferem na maneira com que os flip-flops e LUTs so agrupados, ento importante entender flip-flops e LUTs.
Expanda as sees abaixo para aprender mais sobre cada componente.

Aprenda mais sobre os Flip-Flops

Aprenda mais sobre LUTs

Aprenda mais sobre Multiplicadores e DSP Slices

Aprenda mais sobre os blocos de RAM

Projetando FPGAs em um sistema


Com este entendimento dos componentes fundamentais do FPGA, voc pode claramente ver a vantagem de implementar sua lgica em circuito de hardware (fsico): voc pode realizar
melhorias na velocidade de execuo, confiabilidade e flexibilidade. Entretanto, voc enfrentar algumas dificuldades no processamento e conectividade de E/S no seu sistema, pois os FPGAs
no tm o ecossistema de drivers e a base de IP/cdigo que as arquiteturas de microprocessadores e sistemas operacionais possuem. Alm disso, microprocessadores com sistemas
operacionais fornecem a fundao para estruturas de arquivo e comunicao com perifricos usados por muitas tarefas, geralmente essenciais, como registro de dados no disco.
Como resultado, durante a ltima dcada uma arquitetura hbrida, algumas vezes chamada de arquitetura heterognea, tem emergido na qual um microprocessador emparelhado com um
FPGA que ento conectado E/S. Esta abordagem tira proveito dos benefcios que estes dois targets oferecem. Recentemente, empresas como a Xilinx com sua famlia Zynq de targets, tm
adotado esta abordagem e lanado solues que combinam o processador e o FPGA em um nico chip para criar esta arquitetura hbrida.

Figura 8. A NI oferece uma famlia de produtos completa de dispositivos RIO. Com FPGA e sistema operacional Real-Time, voc pode programar em LabVIEW e aproveitar todos os benefcios
destes sistemas. A NI tambm possui produtos com a arquitetura hbrida de microprocessador e FPGA.
Nos ltimos anos, a National Instruments tem implementado uma poderosa ferramenta com a arquitetura FPGA nos seus dispositivos de E/S reconfigurveis (RIO). Estes dispositivos alcanam
muitos formatos diferentes, de sistemas robustos a sistemas de alto desempenho, todos baseados nessa mesma arquitetura RIO.

Ferramentas de projeto de FPGA


Agora que voc conhece os blocos que constituem um chip FPGA, voc pode perguntar Como voc configura todos estes milhes de componentes para construir uma lgica que voc precisa
executar?.
A resposta que voc define tarefas de computao digital em software utilizando ferramentas de desenvolvimento e ento as compila para um arquivo de configurao ou bitstream que contm
informaes sobre como os componentes devem ser conectados. O desafio no passado com a tecnologia FPGA era que as ferramentas de projeto de baixo nvel FPGA podiam ser utilizadas
apenas por engenheiros com um profundo entendimento do projeto de hardware digital. Entretanto, o surgimento de ferramentas de sntese de alto nvel (HLS high-level synthesis), como o
software de projeto de sistemas NI LabVIEW , muda as regras da programao de FPGA e traz novas tecnologias que convertem diagramas de blocos grficos em circuitos de hardware digital.
Ferramentas tradicionais de projeto de FPGA
Ao longo dos primeiros 20 anos de desenvolvimento de FPGA, as linguagens de descrio de hardware (HDLs hardware description languages) como VHDL e Verilog evoluram de linguagens
primrias para projeto de algoritmos para execuo no chip FPGA. Estas linguagens de baixo nvel integram alguns dos benefcios oferecidos por outras linguagens textuais. A sintaxe hbrida
requer que os sinais sejam mapeados ou conectados de portas externas de E/S para sinais internos, a qual sero ligados funes dentro do FPGA. Entretanto, a verdadeira natureza paralela
de execuo de uma tarefa em FPGA difcil de visualizar em um fluxo sequencial em que as informaes so tratadas linha por linha. HDLs refletem alguns dos atributos de outras linguagen
textuais, mas elas diferem substancialmente porque so baseadas em um modelo de fluxo de dados onde E/S so conectadas em uma srie de blocos de funo atravs dos sinais.
Para verificar a lgica criada por um programador de FPGA, uma prtica comum escrever cdigos de teste em HDL para avaliar o projeto do FPGA declarando entradas e verificando as
respectivas sadas. O cdigo de teste e o cdigo do FPGA so executados em um ambiente de simulao que modela o comportamento de temporizao de hardware do chip FPGA e apresenta
todos os sinais de entrada e sada para que o projetista faa a validao do teste. O processo de criao do cdigo de teste em HDL e execuo da simulao geralmente requer mais tempo do
que criar o prprio projeto original de FPGA em HDL.
Uma vez que voc criou um projeto de FPGA usando HDL e o verificou, voc precisa utilizar a ferramenta de compilao para fazer com que a lgica baseada em texto, atravs de vrios passos
complexos, sintetize sua HDL em um arquivo de configurao ou bitstream que contm informaes sobre como os componentes devem ser conectados. Como parte de um processo manual de
vrios passos, normalmente necessrio que voc especifique o mapeamento dos nomes dos sinais aos pinos do chip FPGA que voc est utilizando.

Figura 9. Projeto de um contador simples em FPGA programado em VHDL


Finalmente, o desafio neste fluxo de projeto que a expertise necessria para programar em HDLs tradicionais no muito difundida, como resultado, a tecnologia FPGA no tem sido acessvel
vasta maioria de engenheiros e cientistas.
Ferramentas de projeto de sntese de alto nvel
O aparecimento de ferramentas de projeto de HLS grfica, como o LabVIEW, tem removido alguns dos maiores obstculos do processo de projeto tradicional com HDL. O ambiente de
programao LabVIEW ideal para a programao de FPGAs porque ele representa claramente o paralelismo e o fluxo de dados, possibilitando que usurios experientes ou inexperientes no
processo tradicional de projeto de FPGAs possam tirar proveito da tecnologia FPGA. Alm disso, para que a propriedade intelectual (IP) anterior no seja perdida, voc pode utilizar o LabVIEW
para integrar VHDL existente em seus projetos no LabVIEW FPGA.

2/3

www.ni.com

Figura 10. Na direita est o software de projeto de sistemas LabVIEW, que uma ferramenta de alto nvel para projeto de FPGAs em dispositivos de hardware NI RIO. Esta ferramenta fornece a
abstrao para a complexidade de baixo nvel geralmente encontrada ao criar ou escalar projetos em VHDL.
Ento para simular e verificar o comportamento da lgica FPGA, o LabVIEW oferece recursos diretamente no ambiente de desenvolvimento. Sem conhecimento da linguagem de baixo nvel,
HDL, voc pode criar cdigos de teste para avaliar a lgica do seu projeto. Alm disso, a flexibilidade do ambiente LabVIEW ajuda os usurios mais avanados a modelar a temporizao e lgica
de seus projetos, exportando para simuladores de ciclo preciso como o Xilinx ISim.
As ferramentas de compilao FPGA automatizam o processo de compilao para que voc possa iniciar o processo com o clique de um boto e receber a cada estgio de compilao os
relatrios e erros, se existentes. Caso os erros de temporizao ocorram por causa do seu projeto de FPGA, o LabVIEW destaca estes caminhos crticos graficamente para expedir o processo de
depurao.

Você também pode gostar