FPGA Artigo

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 21

Tecnologia de Lgica Programvel Especificada como Hardware Reconfigurvel, FPGA (Field Programmable Gate Array) ou Dispositivo Lgico Programvel

em Campo

TIBRIO TAVARES REZENDE , MARCOS CARNEVALI

1. O Incio da Tecnologia do FPGA

O FPGA (Field Programmable Gate Array) ou arranjo de portas programvel em campo, um componente projetado em forma de chip que suporta a combinao de milhares de circuitos lgicos interligados para executar funes especficas. Foi desenvolvido em 1984 para ser usado como um dispositivo que poderia ser programado de acordo com as aplicaes do programador, pela indstria americana Xilinx Inc, que hoje uma das maiores fornecedoras de dispositivos lgicos programveis do mundo, fundada nos Estados Unidos. Antes do desenvolvimento da lgica programvel, circuitos lgicos eram construdos em placas de circuitos impressos utilizando componentes padres e de poucas funcionalidades. Com a evoluo do PLD com o tipo de memria PROM, a fabricao do FPGA surgiu atravs da lgica programvel em um circuito integrado que contem um nmero na ordem de milhares de unidades lgicas idnticas. No entanto, a lgica programvel do FPGA foi uma combinao difcil entre diversos conceitos de tecnologias para matrizes programveis e portas lgicas que estavam sendo desenvolvidas na poca. Essas tecnologias vieram se modificando e se ampliando de diferentes formas, como na dcada de 1980, quando

1 Graduando do curso de Engenharia de Controle e Automao da Faculdade de Extrema (FAEX) 2 Mestre Professor do curso de Engenharia de Controle e Automao da Faculdade de Extrema (FAEX)

pesquisadores do departamento naval americano, chamado de SurfaceWarfare, financiaram um experimento proposto por Steve Casselman. Casselman foi um dos engenheiros que ajudaram a desenvolver a tecnologia utilizada nos primrdios do FPGA. A ideia inicialmente era desenvolver um computador super avanado para a poca, que poderia implementar 600.000 portas reprogramveis. Steve Casselman e seus companheiros, Ross Freeman e Bernard Vonderschmitt (fundadores da indstria Xilinx, Inc.) foram bem sucedidos e conseguiram gerar uma patente do sistema que seria a primeira matriz comercialmente vivel da tecnologia programvel em campo, o FPG (Field Programmable Gate), tendo por codinome "XC2064". Esta tecnologia apresentava interconexes e portas programveis que poderiam ser modificadas aps a fabricao. Foi o incio de uma nova tecnologia para um mercado ainda no explorado. O FPG XC2064 apresentava uma configurao de 64 CLBs, (Configurable Logic Block) ou blocos lgicos configurveis, tendo duas tabelas de referncia de trs entradas LUTs (Look Up Table, esse tipo de bloco lgico contm clulas de armazenamento que so utilizadas para implementar pequenas funes lgicas). A indstria Xilinx continuou investindo neste tipo de tecnologia que se desenvolvia rapidamente e com isso a dcada de 1990 foi o auge para os dispositivos lgicos programveis, tanto em termos de sofisticao como em volume de produo, onde foram adaptados para serem utilizados principalmente em reas como a da eletrnica, telecomunicaes e informtica.

2. Fabricantes e Especialistas em FPGA

Xilinx A maior indstria fornecedora de dispositivos lgicos programveis do mundo, sendo considerada a primeira a consolidar a tecnologia do FPGA e a primeira empresa de semicondutores a se especializar na fabricao de hardware. Fundada no Vale do Silcio, em San Jose, Califrnia, Estados Unidos, em 1984, com sedes por todo o mundo. Apontada como a empresa veterana no desenvolvimento do EDA (Electronic Devices Automation), dispositivos eletrnicos de automao e os ASICs (Application Specific Integrated Circuits) ou aplicao especfica de circuitos integrados. Vem sempre promovendo a divulgao e o fornecimento do FPGA via software e atravs de kits para endereamento em aplicaes como escolas tcnicas e universidades.

Altera Corporation uma empresa americana tambm do Vale do Silcio, fabricante de PLDs reconfigurveis e circuitos digitais em geral. A empresa lanou seu primeiro PLD em 1984 e seus principais produtos so: o Stratix e Arriae Cyclone, sries de FPGAs; o MAX, srie de CPLDs (dispositivos lgicos programveis complexos); o HardCopy, srie dos ASICs; e o software Quartus II, uma ferramenta para a produo de linguagens de descrio de hardwares AHDL. Com uma tecnologia criativa e diferenciada pela facilidade de manuseio produzida pela Altera, atualmente, 42% dos projetos que necessitam de dispositivos lgicos reconfigurveis so construdos com os seus componentes.

Lattice Semiconductor Corporation uma fabricante de dispositivos lgicos programveis de alto desempenho, como FPGAs, CPLDs e SPLDs. Foi fundada em 1983, nos Estados Unidos, em Oregon, e seus principais dispositivos so a srie de FPGAs, ECP e XP para esta categoria de FPGAs de 90 nm, a empresa possui uma grande variedade de dispositivos ; a srie de CPLDs Mach; a srie ispPAC POWR, de produtos de gerenciamento de energia programveis (Programmable Mixed Signal FPAA) e o software de desenho de estrutura, o Diamond.

Actel Corporation Agora chamada de Microsemi Corporation, est sediada em Aliso Viejo, Califrnia, EUA. uma grande empresa fabricante de FPGAs, dispositivos analgicos, circuitos integrados de sinais mistos e circuitos integrados de RF. Tendo produzido FPGSs baseados em dois tipos de tecnologias, a antifuse desenvolvendo as famlias Axcelerator, SX-A, eX e MX e atravs da base flash desenvolvendo as famlias Fusion, IGLU e a ProASIC3.

Achronix Semiconductor Corporation uma empresa americana do Vale do Silcio, que produz os FPGAs mais rpidos fabricados atualmente, com sistemas que atingem at 2 GHz de desempenho de processamento. A Achronix vem desenvolvendo os dispositivos HD 22i Speedster oferecendo at 1,7 milhes de LUTs efetivos e 138 Megabits de memria RAM incorporada. Todas as geraes de Speedster

so direcionadas a aplicaes de alta largura de banda e incluem alta densidade efetiva, com baixo consumo de energia e pouca complexidade para o desenvolvimento de projetos.

Atmel Corporation A Atmel uma manufaturadora de semicondutores, fundada em 1984, tambm no Vale do Silcio. Sua produo inclui as memrias EEPROM e Flash, microcontroladores, FPGAs e outros componentes eletrnicos. Os FPGAs desenvolvidos pela Atmel so destacados em diferentes tipos de tecnologia, como o AVR, que pode ser de 8 ou 32 bits; os processadores ARM (flexveis e altamente integradas as solues baseadas em ARM so projetadas para otimizar o controle do sistema, a conectividade atravs dos componentes com fios e sem fios, o gerenciamento da interface do usurio, o baixo consumo de energia e a facilidade de uso); e o microcontrolador com arquitetura 8051, que pode ser de dois tipos, os de 8 bits, baseados no potente ncleo de baixo consumo de energia AT89LP, e os dispositivos tipo drop in com soquete MCS-51 de padro industrial, todos apresentando tecnologias Flash.

QuickLogic QuickLogic Corporation desenvolve e comercializa solues de semicondutores personalizveis de baixa potncia para as reas de informtica e telecomunicaes em geral. Tambm fabrica dispositivos programados em campo baseados na tecnologia antifuse.

FPGAWorld uma conferncia mundial sobre FPGA. Este ano foi realizada nos dias 10 de setembro, na Sucia, em Estocolmo, e dia 12 de setembro na Dinamarca, em Copenhague. A conferncia FPGAWorld rene pesquisadores, professores, estudantes e engenheiros especialistas, e aborda todos os aspectos da tecnologia digital, envolvendo hardware e software para sistemas de engenharia e trabalhando em projetos de desenvolvimento e pesquisa focados na tecnologia do Field Programmable Gate Array.

Portal FPGA Para Todos Tem como objetivo desenvolver uma plataforma de solues para o ensino da lgica programvel, estabelecendo uma base para a implantao de uma rede de laboratrios de

pesquisa e desenvolvimento com foco em tcnicas modernas de sistemas embarcados, de dispositivos lgicos reconfigurveis e de microeletrnica, como FPGAs e CLPDs. Pode ser acessado atravs do site fpgaparatodos.com.br.

3. Desenvolvimento do FPGA

O dispositivo consiste de um grande arranjo de clulas lgicas ou blocos lgicos configurveis contidos em um nico circuito integrado. Cada clula apresenta capacidade computacional para programar funes lgicas e realizar roteamento para comunicao entre elas. Estes tipos de tecnologias semicondutoras possuem planos de portas OU (OR) ou E (AND) e consistem de um grande arranjo de clulas configurveis que podem ser utilizadas para a implementao de funes lgicas. As clulas so constitudas por milhares de transistores e fazem basicamente o que vrios circuitos integrados fazem, com a diferena de que a matriz pode ser reprogramada. O chip FPGA composto por trs partes que so denominadas: IOB (Input Output Blocks) ou blocos de entrada e sada; CLBs (Configurable Logic Blocks) ou blocos lgicos configurveis e SMs (Switch Matrixs) ou chaves de interconexo. Os CLBs so compostos por circuitos idnticos construdos da unio de flip-flops com lgica combinacional. J os blocos de entrada e sada so responsveis pela interface (interconexo das entradas e das sadas que possuem diferentes funes). Esses blocos de entrada e sada podem ser considerados buffers, funcionando como um pino bidirecional do chip. J as chaves de interconexo so trilhas utilizadas para a ligao dos blocos de entrada e sada e dos blocos lgicos configurveis para as redes apropriadas. Essa configurao estabelecida pela programao interna das clulas de memria estticas, clulas essas que determinam as funes lgicas e as conexes no chip entre os CLBs e os IOBs. Tal processo chamado de roteamento unsegmented (sem segmento), porque cada segmento de fiao abrange apenas um bloco lgico antes de terminar em uma caixa comutadora. Ao ligar algumas das opes programveis dentro de uma caixa de comutao, os caminhos mais longos podem ser construdos. Como um FPGA basicamente constitudo por blocos lgicos de entrada e sada e chaves de interconexo, os blocos lgicos formam uma matriz bidimensional e as chaves de interconexo so organizadas como canais de roteamento horizontal e vertical entre as linhas e colunas dos blocos lgicos. Para maior velocidade de interconexo, algumas arquiteturas usam mais de um canal entra as linhas para poder abranger vrios blocos

lgicos de maneira mais conveniente em funo da necessidade apresentada por cada projeto.

Figura 1. Metodologia de Projeto do FPGA.

3.1 Tecnologias e Arquiteturas

As arquiteturas de FPGAs mais comuns so de dois tipos e dependem de cada modo de fabricao. Pode ser do tipo de blocos lgicos, CLB (Configurable Logic Block), chamado de bloco lgico configurvel, ou LAB (Logic Array Block), chamado lgica de matriz de bloco. Geralmente, todos os canais de encaminhamento tm a mesma largura, que especificada por quantidade de nmero de fios. Vrios blocos de entrada e sada podem encaixar-se na altura de uma linha ou na largura de uma coluna na matriz. Os blocos lgicos so dispostos de forma bidimensional e as chaves de interconexo so dispostas em formas de trilhas verticais e horizontais entre as linhas e as colunas dos blocos lgicos. Um circuito de aplicao deve ser mapeado em um FPGA com recursos adequados. A ideia de utilizar blocos lgicos de construo de circuitos chamada de projeto hierrquico, que so circuitos lgicos mais simples e teis que

podem ser definidos da maneira que for mais conveniente atravs de grficos, linguagens de descrio de hardware e diagramas de tempo. Esses blocos so combinados com outros para formar uma grande seo para projetos mais complexos. Para saber o nmero de CLBs, ou LABs e entradas e sadas que devero ser utilizados, preciso determinar a partir do incio do projeto o nmero de faixas necessrias de encaminhamento que podem variar consideravelmente, mesmo entre os projetos com a mesma quantidade lgica. Por exemplo, um comutador de barra exige muito mais do que uma matriz de encaminhamento sistlica com a mesma contagem de portas. Em geral, um bloco lgico CLB ou LAB consiste de umas poucas clulas lgicas que podem ser ALM, LE, e Slice. Uma clula tpica consiste em uma LUT com 4 entradas, um somador completo e um flip-flop do tipo D. No modo normal, os LUTs e o multiplexador so combinados. J no modo de aritmtica, suas sadas so alimentadas para o somador completo. A seleo de modo pode ser programada e a sada do FPGA pode ser sncrona ou assncrona, dependendo da sua configurao.

Figura 2. Estrutura simples de um FPGA.

Cada clula presente na estrutura do chip capaz de armazenar um valor lgico, podendo

ser 0 ou 1. Esse valor armazenado produzido na sada dos blocos lgicos LUTs que podem ser criados onde o seu tamanho definido pelo nmero de entradas das clulas. Nos FPGAs disponveis comercialmente, como o da empresa Altera, os blocos lgicos LUTs possuem geralmente quatro ou cinco entradas, o que permite enderear 16 ou at 32 clulas de armazenamento. Quando um circuito lgico implementado em um FPGA, os blocos lgicos so programados para realizar as funes necessrias e os canais de roteamento so estruturados de uma forma para realizar a interconexo necessria entre os blocos lgicos. A arquitetura de roteamento a forma pela qual os seus barramentos e as suas chaves de comutao so posicionados para permitir a interconexo entre as clulas lgicas, que devem permitir um sentido de rotas completo e uma alta densidade. Para uma melhor compreenso dessa arquitetura necessria a definio de alguns conceitos como os pinos, conexes, rede, segmentos de trilha, blocos de comutao e comunicao e os canais de roteamento. Os canais programveis de roteamento apresentam algumas propriedades, tais como tamanho, resistncia, capacitncia e tecnologia de fabricao, as quais afetam principalmente a velocidade e o tempo de propagao dos sinais e definem caractersticas como volatilidade e capacidade de reprogramao. Na escolha de um dispositivo reconfigurvel, esses fatores devem ser avaliados.

4. A Programao do FPGA

Esse um dos processos mais importantes ao se trabalhar com um dispositivo lgico programvel, pois durante a programao que ser definida a funo das operaes lgicas. Programar significa estabelecer as reais conexes na matriz, determinar quais dessas conexes estaro abertas e quais estaro fechadas. A programao consiste em carregar o chip de FPGA com os dados de programao em linguagem binria. A maneira mais usada de se carregar esses bits de configurao serialmente. Com esse modo serial temos um bit de cada vez sendo armazenado. Para que cada bloco lgico e suas interconexes sejam configurados, so necessrias algumas centenas de bits, tendo cada bit uma configurao que define o estado de uma clula de memria esttica, que controla uma funo LUT (Look Up Table) e seleciona uma entrada de um multiplexador ou define o estado de um transistor em uma interconexo. Aps ser configurado, o chip est pronto para ser testado. Uma caracterstica interessante em alguns tipos de dispositivos lgicos programveis que eles permitem uma reconfigurao no

prprio sistema onde se encontram. Este tipo de caracterstica faz com que o processo de teste e as possveis reconfiguraes sejam mais rpidos, tornando o processo mais seguro e fcil de ser manuseado. Para definir o comportamento do dispositivo, o usurio fornece uma linguagem de descrio de hardware, HDL (Hardware Description Language), ou um desenho esquemtico. O formulrio de HDL mais adequado e gil para se trabalhar com grandes estruturas, pois possvel especificar cada etapa por numerao ao invs de comprovar todo o projeto manualmente. No entanto, o desenho esquemtico pode facilitar a visualizao de um projeto mais simples, mostrando cada etapa de uma forma mais ampla. Depois de especificar qual ser o comportamento do dispositivo FPGA, atravs da programao, um netlist (tecnologia mapeada) gerado. O netlist pode ser equipado com a arquitetura real do dispositivo usando um processo chamado place and route, geralmente realizado por softwares fornecidos pela prpria empresa que desenvolveu o chip para o arranjo lgico (exemplo, Altera ou Xilinx). Com o software fornecido pelo fabricante, o usurio ou programador poder validar o mapa, o lugar e a rota que ser traada por meio de anlise de tempo, simulao e outras metodologias de verificao. Uma vez que o processo do projeto e validao estiver concludo, o arquivo binrio gerado e poder ser usado para quando for necessria a reconfigurao. Este arquivo binrio transferido para o chip de arranjos lgicos atravs de uma ferramenta chamada de interface, como a srie JTAG ou para um dispositivo de memria externa, como uma memria EEPROM. As linguagens de descrio de hardware mais comuns so as AHDL, VHDL e Verilog, embora alguns fabricantes e engenheiros especialistas na tecnologia dos dispositivos lgicos programveis estejam pesquisando meios de reduzir a complexidade de concepo nas linguagens de descrio de hardware. Atravs de pesquisas e testes, algumas linguagens novas foram adaptadas para se tornarem equivalentes das linguagens de montagem ou descrio de hardware conhecidas. Com isso surgiram projetos para aumentar o nvel de abstrao de linguagens criadas a partir de cdigos mais simples. A linguagem de programao grfica LabVIEW, da National Instrument (tambm chamada de linguagem G), apresenta um mdulo add in disponvel para o destino da programao no hardware dos chips de FPGAs. Para simplificar o desenho de sistemas de programao complexos, foram criadas bibliotecas de funes predefinidas, testadas e otimizadas para acelerar o processo de criao dos projetos com arranjos lgicos. Circuitos criados com ferramentas que j possuem as funes pr-definidas so chamados de ncleos IP e esto disponveis pelos prprios fabricantes ou a partir de comunidades

de desenvolvedores, como os Open Cores, em que os cdigos so liberados sob licenas livres para serem repassados como cdigos abertos.

4.1 Diferenas entre Linguagem de Programao e Linguagem de Descrio de Hardware

As diferenas entre as linguagens de descrio de hardware e as linguagens de programao comum que uma linguagem simples de programao criada para ser utilizada como controle de softwares, por outro lado as HDLs foram desenvolvidas para o controle de hardwares. O desenvolvimento de uma linguagem comum se faz atravs de compilaes, ligaes e interpretaes e na HDL por uma compilao para a simulao e sntese do hardware. Em um fluxo de projeto tpico de sntese de descrio de hardware, um desenvolvedor de aplicativos de dispositivos lgicos, ir simular o projeto em vrios estgios durante o processo. Inicialmente com a descrio RTL em, por exemplo, VHDL ou Verilog que sero simulados atravs da criao de bancos de testes do sistema para observar os resultados. Os testes so divididos em subsees, para depois serem combinados, desta forma o projeto pode ser feito em equipe onde vrias pessoas trabalham em conjunto, todos responsveis por seus prprios circuitos e sees que acabam compondo o sistema. Depois que os circuitos foram agrupados, e a funo completa de sntese foi mapeada para um netlist, os cdigos so traduzidos para uma descrio no nvel das portas onde a simulao repetida para confirmar se a sntese passou pela transferncia sem erros.

4.2 Linguagens de Descrio de Hardwares

A linguagem de descrio de hardware ou linguagem de computador especializada utilizada para descrever a estrutura, o projeto e a operao de circuitos lgicos digitais, atravs de uma descrio textual que consiste em desenvolver expresses, declaraes e estruturas de controle. Este tipo de linguagem muito semelhante ao tipo de programao projetada por "sistema C" e permite uma precisa descrio, uma anlise automatizada e uma simulao para testes de um circuito eletrnico em uma especificao fsica de componentes, tais como o conjunto de mscaras utilizadas para criar um circuito integrado de nvel inferior e tambm para circuitos complexos utilizando microcontroladores. Em HDL cada subsistema deve ser

construdo a partir de seu nvel mais simples para depois ser encaixado com outras partes ou blocos at serem formadas camadas completas do que ser o projeto final. Significa basicamente, escrever trechos de cdigos para poder desenvolver um plano de teste, como simulao, e garantir que ele funcione corretamente. Toda vez que um circuito for simulado dever estar dentro de um cenrio que iguale totalmente o projeto ao sistema em que ser exposto em campo no modo real, sabendo qual ser a resposta dada a cada parte que for solicitada. Uma linguagem de descrio de hardware descreve o que um sistema deve fazer e como. Este sistema descrito em linguagem de hardware pode ser implementado em um dispositivo programvel FPGA (Field Programmable Gate Array) ou um dispositivo ASIC (Aplication Specific Integrated Circuit), permitindo ser utilizado em campo. Existem dezenas de linguagens HDLs, como, a VHDL, a AHDL, o VERILOG, o Handel-C, a SDL, a ISP entre outras.

AHDL (Altera Hardware Description Language) Linguagem de Descrio de Hardware Altera. O AHDL uma linguagem de descrio desenvolvida pela empresa Altera Corporation para configurar, de modo mais conveniente, os seus prprios dispositivos lgicos. Diferente do VHDL, essa linguagem quando foi criada no foi desenvolvida para ser utilizada de modo universal e descrever qualquer circuito lgico disponvel. Foi aperfeioada para a programao de sistemas digitais complexos em FPGAs da Altera tornando os mtodos de sntese mais simples, sendo descrita de um modo muito semelhante com a linguagem VHDL.

VHDL ou VHSIC HDL (Very High SpeedIntegratedCircuits Hardware DescriptionLanguage) Linguagem de Descrio de Hardware com nfase em Circuitos Integrados de Altssima Velocidade. uma linguagem usada para facilitar o projeto e a concepo de circuitos digitais em FPGAs e ASICs. A linguagem VHDL foi originalmente desenvolvida sob o comando do Departamento de Defesa dos Estados Unidos (DARPA), em meados da dcada de 1980, para documentar o comportamento de ASICs que compunham os equipamentos vendidos s foras armadas americanas. Isto quer dizer que a linguagem VHDL foi desenvolvida para substituir os complexos manuais que descreviam o funcionamento dos ASICs. At aquele momento, a nica metodologia largamente utilizada no projeto de circuitos era a criao atravs de diagramas

esquemticos. O problema com a metodologia de diagramas era o fato de serem feitos atravs de desenhos grficos, o que os tornavam muito mais complexos para compreenso e extremamente dependentes das ferramentas utilizadas para produzi-los. Como o VHDL foi criado e aperfeioado para ser uma linguagem de descrio de hardware mais rpida, os projetos puderam ser desenvolver amplamente atravs da forma estruturada de descrio de circuitos digitais. Por isso muito utilizado quando se pretende simular um sistema digital a um nvel elevado de abstrao de hardware. Os projetos com sistemas em VHDL so geralmente bem mais complexos se comparados a linguagens de programao bsicas, pois no possuem executveis e s possvel testar seus cdigos programados atravs de simulaes. O VHDL uma linguagem "concorrente", ou seja, os comandos envolvidos em um mesmo evento acontecem simultaneamente. A etapa inicial do projeto seguida de uma simulao funcional para a execuo do projeto confirmando as sadas e as entradas de dados. A compilao se inicia quando j existe uma representao funcional correta do hardware. A representao funcional chamada de synthesys ou sntese, onde o compilador tem uma ideia de como implementar o projeto e falta apenas posicionar e rotear as estruturas lgicas em macroclulas, interconexes e pinos de entrada e sada. Feita a compilao, um bitstream ou fluxo de bits (o termo fluxo de bits frequentemente utilizado para descrever os dados de configurao a serem carregados em um arranjo de portas programvel em campo) criado. Os dados binrios devero ser carregados no FPGA ou CLPD para fazer com que o chip execute um projeto em particular. As caractersticas da linguagem VHDL so destacadas por se tratar de um modo de programao que anlogo a uma linguagem comum e concorrente ao HDL. Esse tipo de linguagem permite que todos os comandos ocorram simultaneamente (com exceo dos processos) e atravs de simulao, verificar o comportamento do sistema digital. Utilizada para transferncia entre registradores RTL e para prover mecanismos de modelagem e sincronizao que ocorrem a nvel fsico.

Figura 3. Sntese de Descrio em VHDL.

VERILOG uma linguagem de descrio de hardware usada para modelar sistemas eletrnicos. Esta ferramenta suporta o desenvolvimento, verificao e implementao de projetos analgicos, digitais e circuito hbridos em vrios nveis de abstrao. Com placas especiais possvel descarregar o cdigo gerado nessa linguagem em chips de FPGAs. Os autores do VERILOG definiram sua sintaxe com estruturas de controle de fluxo simples, como if e while e so projetados em blocos com begin e and, se caracterizando em uma linguagem modular. A linguagem VERILOG, tambm chamada de VERILOG HDL, se diferencia das outras pela maneira de como executada, pois no segue os padres lineares que as demais linguagens utilizam. Um projeto em VERILOG consiste em processos sequenciais e paralelos que definem o comportamento dos mdulos e so executados dentro de blocos begin e end.

4.3 Ferramentas para o Desenvolvimento da Programao

Fazer a configurao de um FPGA manualmente seria uma tarefa simplesmente impensvel devido complexidade do circuito. Por isso toda a parte de projeto, processamento, simulao e programao, so normalmente feitas atravs de programas especficos ou ferramentas de programao. Cada fabricante disponibiliza ferramentas que suportam seus prprios tipos de FPGAs ou fazem parcerias com empresas que possam dar assistncia para tais softwares. A ferramenta que a Altera utiliza para fazer a programao de seus dispositivos se chama Quartus II, e a Xilinx disponibiliza o programa denominado Foundation. Esses softwares de programao so capazes de receber as descries do circuito, em linguagem VHDL gerados de outros fabricantes ou criar novos arquivos que sero utilizados na configurao do dispositivo a ser programado. Para se programar o chip necessrio ento transformar a informao desses arquivos de configurao para uma linguagem binria e carregar esses bits para as memrias estticas do componente. A maioria das ferramentas de programao modernas tem a caracterstica de serem conectadas a um computador, que executa bibliotecas de informaes sobre os diversos tipos de dispositivos programveis disponveis. A ferramenta de programao ativada, por meio de um comando, e executado no computador para estabelecer uma comunicao com o projetista. Esse software permite ao usurio configurar a programao com os dados referentes ao tipo de dispositivo de FPGA.

4.4 Programao atravs do sistema ISP

Programao em sistema ISP (In System Programmability), consiste basicamente em uma tecnologia que permite a configurao, reconfigurao e testes do FPGA sem ter que retir-lo do circuito onde foi acoplado. Utilizando a porta serial ou paralela de um computador para se conectar, possvel utilizando programas especficos, programar o componente, verificar, test-lo com determinadas entradas e comparar suas sadas com as sadas esperadas. Com a possibilidade de reconfigurao o FPGA pode ser permanentemente soldado a placa de montagem. Essa facilidade de reconfigurao permite ao projetista fazer alteraes mais rpidas no dispositivo, o que reduz o tempo de programao, e diminui a probabilidade de acontecer algum dano devido

ao excesso de manuseio. Outra vantagem que o layout da placa pode ser feito durante a prpria fase de projeto da lgica diminuindo ainda mais o tempo de projeto. Existem vrios tipos de softwares e hardwares que podem ser utilizados para se implementar a programao em sistema ISP.

5. Tipos de Dispositivos FPGAs e Suas Caractersticas

Atualmente no mercado podemos encontrar vrios tipos de FPGAs produzidos de diferentes modos dependendo de seus fabricantes. Cada tipo de dispositivo ter melhor desempenho dependendo da aplicao para a qual ser utilizado. Os tipos podem ser os de Memria RAM Esttica, os feitos atravs de Transistores de Passagem, os baseados nas memrias, EPROM (Erasable Programmable Read Only Memory) e EEPROM (Electrical EPROM), os dispositivos da Tecnologia Antifuse e os FPGAs de Portas Futuantes. Os FPGAs de memria RAM Esttica, tem suas conexes feitas entre blocos lgicos, por meio de portas de transmisso ou multiplexadores controlados por clulas de memria SRAM (Static Random Access Memory) ou memria esttica de acesso aleatrio. Devido volatilidade dessas memrias, os FPGAs que se utilizam dessa tecnologia precisam de uma memria externa tipo FLASH EEPROM. Essa tecnologia ocupa mais espao no circuito integrado, entretanto rapidamente reprogramvel. Os dispositivos fabricados com transistores de passagem podem ser uma opo mais barata que a opo de RAM esttica, por serem compostos por uma grande concentrao de transistores configurados em modo de corte ou modo de conduo. Os FPGAs baseados nas memrias EPROM e EEPROM tm como principal vantagem permitir reprogramao sem que precise armazenar a configurao externa, tornando esse em um componente mais rpido. J a tecnologia Antifuse configurada por dois terminais, podendo estar no estado no programado onde ser apresentada uma alta impedncia, podendo ser chamado de circuito aberto, ou quando este aplicado a uma tenso entre 11 e 20 volts, o que faz com que o dispositivo forme um caminho de baixa impedncia entre seus terminais, sendo chamado de circuito fechado. Os FPGAs da tecnologia de porta flutuante so baseados em transistores MOS (Metal Oxide Semiconductors), especialmente construdos com duas portas flutuantes semelhantes aos usados nas memrias EPROM e EEPROM. A maior vantagem dessa tecnologia a sua

capacidade de programao e a reteno dos dados que podem ser programados com o circuito integrado instalado na placa, caracterstica denominada ISP (In System Programmability).

6. Famlias de FPGAs (Xilinx)

Artix7 e Artix 7Q Apresenta menor potncia por clulas lgicas gerando uma boa economia. Esta famlia gasta cerca de 50% menos energia do que os dispositivos da gerao de 45nm e apresenta um timo desempenho para memrias DDR3, DSP com entradas e sadas para portas paralelas e seriais. Disponibiliza maiores portflios para dispositivos de defesa da classe 100% full-range, sendo produzido tendo como opes de fabricao dispositivas que suportam temperaturas prolongadas de at -55 a +125 C. Foi criado para obter um aumento do desempenho do sistema com 3.125 Gbps para transceptores de alto transporte BW (vdeo em tempo real) e 250 MHz entre os seus Slices para o processamento do FPGA.

Kintex7 e Kintex 7Q Os dispositivos FPGAs da famlia Kintex tem como vantagem a sua arquitetura otimizada podendo acelerar os processos de desenvolvimento atravs de ferramentas, kits com placas de projeto e at endereamentos de protocolos de rede. Assim como os Artix, essa famlia consegue uma boa economia de energia se comparada com os chips da gerao anterior de 40nm onde tambm foi possvel obter aumentos nos desempenhos de sistema atravs da integrao de at 478k LCs, com velocidades que variam de 32 a 12,5 GTs, com 2845 GMACs e 34MB para memrias BRAM e memrias DDR3.

Virtex, Virtex E e Virtex II A famlia Virtex surgiu com a ideia de permitir a configurao de um projeto de sistema digital complexo em um nico chip. Nessa famlia a menor unidade lgica programvel denominada Slice (cada clula composta de quatro LUTs e 8 registradores), que pode ser configurada para o modo de operao de quatro entradas e uma sada, com memrias RAM e registradores de 16 bits. Com a unidade lgica Slice os recursos adicionais de flip-flops do tipo

D, multiplexadores, funo de transporte carry, e as portas lgicas podem ser utilizadas para implementar funes booleanas com words (grupos de bits que representa uma unidade de informao) de tamanhos bem variveis. Estes recursos podem ser usados como contadores e conversores atravs da operao SRL (Shift Register Look Up Table). As entradas e sadas do Virtex so operadas por 2,5 volts e a Virtex E por 1,8 volts. As duas famlias so capazes de operar com memrias SDRAM de 133 MHz, RAM ZBT de 200 MHz e DDR (Double Data Rate) ou taxa dupla de transferncia, significando que esta tecnologia permite que dois dados sejam transferidos ao mesmo tempo. Esses FPGAs foram os primeiros a apresentarem dispositivos programveis com mais de um milho de portas lgicas e suportar diferentes tipos de tenso para entrada e sada de informao, como, 5, 3,3, 2,5 e 1,8 volts positivos. Para essas famlias so usadas classes diferenciais para padres USB e Firewire, onde 2 pinos de entrada e sada so agrupados e constituem um nico sinal de informao que armazenado dependendo da diferena dos valores de tenso presentes nos pinos. A vantagem da comunicao diferencial permitir imunidade aos rudos aps a subtrao, melhorando a velocidade de comunicao. Para um dispositivo convencional a velocidade de informao pode alcanar para cada sinal, cerca de 311 Mbs, e usando a tcnica do diferencial, cerca de 622 Mbs.

Virtex 7e Virtex 7Q Os componentes da famlia Virtex7 so divididos em grupos como T, XT e HT com diferentes modos para configurao pretendendo atender vrias exigncias dos projetos com FPGAs de 28nm.

Spartan e Spartan XL Essas famlias surgiram como uma melhoria na arquitetura interna dos XC4000 que apresentavam arquiteturas totalmente compatveis com as famlias Spartan e operam com alimentao e interface de entradas e sadas, utilizando tenso de 5 volts positivos. Os FPGAs da famlia Spartan XL, so alimentados com uma tenso por volta de 3,3 volts positivos. Estes dispositivos apresentam tolerncias nas operaes de entrada e sada, atravs da utilizao de um circuito especfico com diodos nos blocos IOB, que permite aos dispositivos receber sinais de entrada e sada com excurso de 5 volts positivos. Em termos de capacidade possuem de 3 a 20

mil portas internas, 360 a 2016 flip-flops, de 3,2K a 25K de memria RAM e 77 a 224 pinos de entrada e sada configurveis.

Spartan 2 e Spartan 3 A famlia Spartan 2 surgiu dos melhoramentos das tecnologias de integrao, que a famlia Spartan possua, e a famlia Spartan 3 atualmente disponibiliza mais de 1 milho de portas para configurao, atravs de um processo microeletrnico de 0,09 mm, com operao de 1,2 volts e apresenta o melhor desempenho de clulas lgicas (cerca de 30% melhor que outros FPGAs). Tem por destaque em suas caractersticas os multiplicadores embutidos 18x18 para o suporte a aplicaes de processamento digital de sinais, gerenciadores internos de relgio (CLK), memria distribuda e 8 bancos de entrada e sada para 24 tipos. A famlia Spartan 3disponibiliza dispositivos com 50 K a 5 M para portas lgicas, com at 1,8 Mb de memria RAM e 124 a 784 pinos de para entrada e sada de dados.

Figura 4. Tabela de Comparao das Famlias de FPGA (Xilinx).

7.

Aplicaes dos Dispositivos Lgicos Programados

So utilizados em amplas e diversas reas, tanto as mais restritas como a militar, sendo destacados em equipamentos de segurana, monitoramento, comunicao, defesa e at em msseis e munies, como tambm por outros diversos campos mais acessveis e muito importantes para o avano tecnolgico de todo o mundo, como o da medicina, sistemas de segurana computacional, sistemas automotivos, telecomunicaes, informtica e em todos os equipamentos eletrnicos que necessitam de um processamento mais complexos e rpidos. Inicialmente os FPGAs foram reservados para aplicaes especficas em que o volume de produo seria limitado aos aparelhos mais restritos, mas com a evoluo rpida da microeletrnica, foram surgindo cada vez mais necessidades em que o uso deste componente era extremamente necessrio. Um recente estudo mostra que na rea educacional os FPGAs, esto sendo usados com grande frequncia na produo de nanossatelites, como o NANOSATC-BR, (utilizados para possveis testes do Centro Regional Sul de Pesquisas Espaciais). Como uma alternativa de baixo custo, essa tecnologia surge como sendo apropriada para o desenvolvimento de um satlite cientfico estudantil, com altas capacidades de desempenho os dispositivos programados em campo, vem sendo escolhidos para os projetos dos computadores de bordo dos satlites. Muitos testes foram realizados com FPGAs, da famlia Spartan 3E da Xilinx, mostrando que o seu uso, apresenta diversas vantagens e custo benefcios em relao microcontroladores simples. Esse e vrios outros projetos esto em desenvolvimento, focados na tecnologia de arranjo de portas lgicas em campo, por apresentarem a opo de serem fabricados com tolerncias radiao, baixo consumo de potncia e altas capacidades de processamento.

8. Referncias Bibliogrficas

TOCCI, Ronald J. WIDMER, Neal S. MOSS, Gregory L. Sistemas digitais: princpios e aplicaes. Reviso tcnica Renato Giacomini; traduo Jorge Ritter. 11 ed So Paulo: Pearson Prentice Hall, 2011.p. 586 627.

http://en.wikipedia.org/wiki/Field-programmable_gate_array - acessado em 24/09/2013, s 00:52

e dia 25/09/2013, s 00:23

http://fpgaparatodos.com.br - acessado em 24/09/2013, s 1:10 e em 25/09/2013, s 00:25

http://www.fpgaworld.com/ - acessado em 25/09/2013, s 00:34

http://www.xilinx.com/ - acessado em 26/09/2013, s 08:37

http://www.dcc.ufrj.br/~gabriel/circlog/vhdl.pdf - acessado em 20/10/2013, s 23:17

http://www.velocityreviews.com/forums/t675507-whats-a-slice-in-a-fpga.html - acessado em 27/10/2013, s 19:01

http://www.decom.fee.unicamp.br/~cardoso/ie344b/Introducao_FPGA_Fluxo_de_Projeto.pdf acessado em 27/10/2013, s 20:11

http://e.ubmelectronics.com/2013EmbeddedStudy/index.html - acessado em 01/11/2013, s 01:34

Tibrio Tavares Rezende

Você também pode gostar