PROJETOS COM FPGA: FAMÍLIAS MODERNAS

Por Alexandre Mendonça e Ricardo Zelenovsky

Neste artigo, trazemos um estudo comparativo das principais famílias de FPGAs oferecidas pela Xilinx (www.xilinx.com), que é a empresa líder mundial.

O FPGA

O FPGA (Field Programmable Gate Array) é um circuito integrado passível de ser configurado por software e serve para implementar circuitos digitais, como processadores, interfaces, controladores e decodificadores. Basicamente, consiste de um arranjo fortemente condensado de blocos idênticos de pequenos circuitos, compostos por algumas portas lógicas e flip-flops, com alguns sinais de interface. As conexões entre as saídas de determinados blocos com as entradas de outros são programáveis através de um protocolo simples e de fácil implementação.

O FPGA possui três conjuntos de elementos de configuração. O primeiro consiste de vários circuitos idênticos, compostos por alguns flip-flops e lógica combinacional extra, sendo conhecidos por CLBs (Configuration Logical Blocks). Os CLBs possuem os elementos funcionais para a construção de lógicas pelo usuário. Geralmente, são constituídos por 2 a 4 flip-flops e por lógicas combinacionais. O segundo consiste de circuitos de interfaceamento das saídas dos CLBs com o exterior do FPGA, chamados de IOBs (Input Output Blocks). Eles são constituídos por buffers bidirecionais com saída em alta-impedância. Através da programação adequada de um IOB, configura-se um pino do FPGA para funcionar como entrada, saída, bidirecional ou coletor-aberto. O terceiro grupo é composto pelas interconexões. Os recursos de interconexões possuem trilhas para conectar as entradas e saídas dos CLBs e IOBs para as redes apropriadas. Geralmente, a configuração é estabelecida por programação interna das células de memória estática, que determinam funções lógicas e conexões internas implementadas no FPGA entre os CLBs e os IOBs. O processo de escolha das interconexões é chamado de roteamento.

Família XC4000

A família XC4000, apesar de estar praticamente fora de linha, foi muito importante, pois atraiu bastante demanda para os produtos da Xilinx. Com um suporte forte, incluindo muitas ferramentas de desenvolvimento (WebPack, Foundation, WorkView, etc.) e kits educativos de fácil manuseio, a Xilinx conseguiu uma grande penetração nas universidades, ou seja, na raiz do desenvolvimento.

A família XC4000 opera com alimentação de 5V, possui internamente uma capacidade que varia de 360 (XC4003) a 2560 (XC4025) flip-flops, oferecendo de 60 a 256 pinos programáveis de interface. Apesar de ter sido muito importante e ainda abranger o mercado de 5V, está praticamente substituída pela família Spartan, que é "quase" pino a pino compatível com a família XC4000 e que é oferecida por preços muito mais baixos.

Família Spartan / Spartan XL

A família Spartan surgiu como uma melhoria na arquitetura interna da família XC4000 que permitiu a oferta de dispositivos "quase" pino a pino compatíveis a preços bem inferioes. Por exemplo: o XC4005PC84C custa cerca de US$ 23, contra US$ 10 do US$ XCS05PC84C. A Spartan opera com alimentação e interface de I/O usando uma tensão de +5V, enquanto que a Spartan XL é alimentada com +3,3V. Uma característica interessante dos dispositivos da Xilinx é a tolerância na operação de I/O, através da utilização de um circuito especial com diodos nos IOBs (vide artigo do mês passado), que permite ao FPGA receber sinais de I/O com excursão de +5V.

Em termos de capacidade, as famílias Spartan / Spartan XL possuem FPGAs com 3 a 20 mil portas internas, 360 a 2016 flip-flops, 3,2K a 25K de RAM e 77 a 224 pinos de I/O configuráveis.

Família Spartan-II

A família Spartan-II é uma conquista da Xilinx que adveio dos melhoramentos das tecnologias de integração, que permitiram uma operação interna a +2,5V, embora a interface de I/O continuasse operando a +3,3V (tolerante a +5V). É claro que a redução da tensão de operação facilita os processos industriais para a condensação de mais circuitos digitais em uma menor área da pastilha semicondutora. E isto levou a dispositivos com 50 a 300 mil portas, 384 a 1536 CLBs, 32K a 64K de RAM e 182 a 329 pinos de I/O.

Acreditando no potencial mercado para esta família, a Xilinx vem adotando uma estratégia de migração para a Spartan-II muito atraente: disponibiliza em sua página a ferramenta de desenvolvimento WebPack (esquemáticos e VHDL) - vide http://www.xilinx.com/xlnx/xil_prodcat_landingpage.jsp?title=ISE+WebPack. Outras opções estão listadas no link http://www.xilinx.com/ise/design_tools/index.htm.

Família Virtex / Virtex-E

A família Virtex surgiu com a idéia de lograr a característica "system on a chip", ou seja, permitir a configuração do FPGA com o projeto de um sistema digital complexo ("em um único chip"). Tanto internamente quanto em I/O, opera a +2,5V, contra +1,8V do Virtex-E.

Como mostra o diagrama da figura 1, típico da aplicações usando dispositivos Virtex, ambas as famílias são capazes de operar com SDRAM de 133 MHz, RAM ZBT de 200 MHz e DDR de 266 MHZ.

A família Virtex foi a primeira a apresentar dispositivos programáveis com mais de 1 milhão de portas lógicas (50 mil a 3,2 milhões), apesar do preço destes dispositivos mais sofisticados ser exageradamentre alto, a ponto de ultrapassar os US$ 1000. É claro que o mercado de FPGAs com mais de um milhão de portas não é o pequeno desenvolvedor, mas sim é composto pelos núcleos de pesquisa em computação de alto-desempenho, representados no Brasil por diversos programas de pós-graduação, principalmente no IME, no ITA, na COPPE/UFRJ, na UNICAMP, na USP e na UFRGS, dentre outras.

Outro ponto interessante desta família é oferecer suporte para 20 tipos diferentes de I/O (+5V, +3,3V, +2,5V, +1,8V, etc.). Dentre esses tipos, estão as classes diferenciais, muito usadas nos padrões USB e FireWire, onde 2 pinos de I/O são grupados para constituir um único sinal diferencial, cuja informação é encapsulada na diferença dos valores de tensão presentes nos 2 pinos. A vantagem da comunicação diferencial é permitir um "quase cancelamento" do ruído após a subtração, o que melhora a velocidade de comunicação. A equação de Claude Shannon, postulada em 1949, quantifica a velocidade possível do canal de comunicação. Nela, C é a capacidade do canal (em bits por segundo), W é a largura de banda (em Hz), S é a potência efetiva do sinal e N é a potência do ruído que, no caso da comunicação diferencial, é o parâmetro contra o qual a técnica atua.

 

C = W log2(1 + S/N)

A título de comparação, um I/O convencional pode alcançar, em cada sinal, 311 Mb/s, contra 622 Mb/s usando-se a técnica do diferencial. Em compensação, no dispositivo mais avançado, estão disponíveis 804 pinos de I/O convencionais contra 344 diferenciais.

 

Figura 1: Típica aplicação para a família Virtex.

Família Virtex-II/Virtex-II PRO

A família Virtex-II surgiu recentemente e oferece dispositivos com uma capacidade fantástica: de 40K a 8M portas lógicas, até 8 Mb de RAM, 88 a 1108 pinos de I/O, transceivers de I/O operando em até 3,125 Gb/s (Virtex-II PRO) e 204 a 1200 pinos de I/O (Virtex-II PRO). Com estas características, é possível implementar processadores RISC com relógios de até 300 MHz (que são oferecidos em pacotes "cores" pela própria Xilinx a custos nada acessíveis) e ainda sobrar espaço para se acrescentar a lógica do usuário.

Família Spartan 3

A família Spartan-3 figura hoje na vitrine da página da Xilinx, sob o lema "1 milhão de portas por US$ 12" (além de 3 dispositivos por menos de US$ 6,5). Ela usa um processo microeletrônico de 0,09 mm, opera a 1,2 V e, segundo a Xilinx, possui o melhor custo por célula lógica (cerca de 30% melhor que outros FPGA).

Uma característica bem atraente da Spartan-3 é ser, segundo a Xilinx, o único FPGA de baixo custo que oferece 18x18 multiplicadores embutidos para o suporte a aplicações de processamento digital de sinais, gerenciadores internos de relógio (CLK), memória distribuída e 8 bancos de I/O para 24 tipos de interface. A Xilinx disponibiliza 8 dispositivos Spartan-3 com 50 K a 5 M portas lógicas, com até 1,8 Mb de RAM e 124 a 784 pinos de I/O.

Conclusão

Este artigo mostrou algumas opções de famílias de FPGAs que dão suporte ao desenvolvedor nos mais diversos escalões: deste pequenos trabalhos até o projeto de computadores com arquiteturas avançadas. Com todo este suporte disponível no mercado, esperamos ter deixado o leitor convicto de que basta um investimento razoável e muito estudo para colocar em prática no circuito o projeto de qualquer sistema digital, mesmo aqueles com aplicações muito restritas.

__________________________________________

Alexandre Mendonça (alexmend@ime.eb.br) e Ricardo Zelenovsky (zele@unb.br) são professores universitários e autores de 7 livros, dentre eles o clássico "PC: um Guia Prático de Hardware e Interfaceamento - 3a Edição".