top of page
fpga.jpg

FPGA

  1. Tecnologia FPGA

Os dipositivos ASICs, SPLDs e CPLDs, descritos nas seções anteriores, permitem a implementação de uma grande variedade de circuitos lógicos. Contudo, com exceção dos CPLDs, aqueles componentes possuem baixa capacidade lógica e são viáveis apenas para aplicações relativamente pequenas. Até mesmo para os CPLDs, apenas circuitos moderadamente grandes podem ser acomodados em um único circuito integrado. Para se implementar circuitos lógicos maiores, é conveniente utilizar-se de outro tipo de dispositivo HCPLD que possua capacidade lógica maior.

O FPGA é um HCPLD que suporta a implementação de circuitos lógicos relativamente grandes. Consiste em um grande arranjo de células lógicas ou blocos lógicos configuráveis contidos em um único circuito integrado. Cada célula contém capacidade computacional para implementar funções lógicas e realizar roteamento para
comunicação entre elas. O primeiro FPGA disponível comercialmente foi desenvolvido pela empresa Xilinx Inc., em 1983. Os FPGAs não possuem planos OR ou AND, consistem em um grande arranjo de células configuráveis que podem ser utilizadas para a implementação de funções lógicas.


Basicamente é constituída por blocos lógicos, blocos de entrada e saída, e chaves de interconexão. Os blocos lógicos formam uma matriz bidimensional, e as chaves de interconexão são organizadas como canais de roteamento horizontal e vertical entre as linhas e colunas de blocos lógicos. Esses canais de roteamento possuem chaves de interligação programáveis que permitem conectar os blocos lógicos de maneira conveniente, em função das necessidades de cada projeto. A figura 3 mostra a estrutura básica de um FPGA.

Intercoiuiect Resources.

Figura 3 Estrutura simplificada de um FPGA.

 

  1. Blocos Lógicos de FPGA

No interior de cada bloco lógico de FPGA existem vários modos possíveis para implementação de funções lógicas. O mais utilizado pelos fabricantes de FPGA como, por exemplo, a empresa Altera Corp., é o bloco de memória LUT ( Look - Up Table). Esse tipo de bloco lógico contém células de armazenamento que são utilizadas para implementar pequenas funções lógicas. Cada célula é capaz de armazenar um único
valor lógico, zero (0) ou um (1). Nos FPGAs disponíveis comercialmente como, por exemplo, da empresa Altera
Corp., os blocos lógicos LUTs possuem geralmente quatro ou cinco entradas, o que permite endereçar 16 ou 32 células de armazenamento. Quando um circuito lógico é sintetizado em um FPGA, os blocos lógicos são
programados para realizar as funções necessárias, e os canais de roteamento são estruturados de forma a realizar a interconexão necessária entre os blocos lógicos. As células de armazenamento dos LUTs de um FPGA são voláteis, o que implica perda do conteúdo armazenado, no caso de falta de suprimento de energia elétrica. Dessa forma, o FPGA dever se programado toda vez que for energizado. Geralmente utiliza-se uma pequena memória FLASH ou EEPROM (Electrically Erasable Programmable Read Only Memory), cuja função é carregar automaticamente as células de armazenamento, toda vez que o FPGA for energizado.

  1. Granularidade

Granularidade é uma característica dos FPGAs relacionada com o grão. O grão é a
menor unidade configurável que compõe um FPGA. A fim de classificar os FPGAs quanto
ao bloco lógico, foram criadas algumas categorias.

  1. Grão Grande: Os FPGAs dessa categoria podem possuir como grão unidades lógicas
    aritméticas, pequenos microprocessadores e memórias.

  2. Grão Médio: Os FPGAs de grão médio frequentemente contêm dois ou mais LUTs e
    dois ou mais flip-flops. A maioria das arquiteturas de FPGAs implementam a lógica
    em LUTs de quatro entradas.

  3. Grão Pequeno: Os FPGAs de grão pequeno contêm um grande número de blocos
    lógicos simples. Os blocos lógicos normalmente contêm uma função lógica de duas
    entradas
    ou multiplexadores 4x1 e um flip-flop. 

Arquitetura geral de roteamento

A arquitetura de roteamento de um FPGA é a forma pela qual os seus barramentos e as chaves de comutação são posicionadas para permitir a interconexão entre as células lógicas. Essa arquitetura deve permitir que se obtenha um roteamento completo e, ao mesmo tempo, alta densidade de portas lógicas. Para melhorar a compreensão dessa arquitetura é necessária a definição de alguns conceitos básicos, sendo que parte deles é
exemplificada na figura 4.

Figura 4 Arquitetura básica de roteamento de um FPGA.

 

  1. Pinos: Entrada e Saída de blocos lógicos.

  2. Conexão: Ligação elétrica de um par de pinos

  3. Rede: Conjunto de pinos que estão conectados.

  4. Bloco de Comutação: Utilizado para conectar os segmentos da trilha.

  5. Segmentos da Trilha: Segmento não interrompido por chaves programáveis.

  6. Canal de Roteamento: Grupo de 2 ou mais 3 trilhas paralelas.

  7. Bloco de Conexão: Permite a conectividade das entradas e saídas de um bloco lógico
    com os segmentos de trilhas nos canais.

__________________________________________

  1. Técnicas de Configuração

As chaves programáveis de roteamento apresentam algumas propriedades, tais como tamanho, resistência, capacitância e tecnologia de fabricação, que afetam principalmente a velocidade e o tempo de propagação dos sinais e definem características como volatilidade e capacidade de reprogramação. Na escolha de um dispositivo reconfigurável, esses fatores devem ser avaliados. Basicamente existem três tipos de tecnologia de programação das chaves de roteamento.

  1. SRAM (Static Random Access Memory): Nessa tecnologia, a chave de roteamento ou
    comutador é um transistor de passagem ou um multiplexador controlado por uma
    memória estática de acesso randômico SRAM. A figura 5 ilustra essa tecnologia de
    programação, na qual uma célula SRAM é utilizada para controlar a porta (gate) do
    transistor de passagem. Devido a volatilidade dessas memórias, os FPGAs que se
    utilizam dessa tecnologia precisam de uma memória externa tipo FLASH ou
    EEPROM. Essa tecnologia ocupa muito espaço no circuito integrado, porém é
    rapidamente reprogramável.

 

Bloco de E/S

Figura 5 Utilização da tecnologia SRAM para controle de transistor de passagem.

  1. Antifuse: Essa tecnologia baseia-se num dispositivo de dois terminais, que no estado
    não programado apresenta uma alta impedância (circuito aberto). Aplicando-se a
    uma tensão, por exemplo, entre 11 e 20 Vdc, o dispositivo forma um caminho de baixa
    impedância entre seus terminais.

  2. Gate Flutuante: A tecnologia Gate flutuante baseia-se em transistores MOS (Metal
    Oxide Semicondutor), especialmente construídos com dois Gates flutuantes
    semelhantes ao usados nas memórias EPROM (Erasable Programmable Read Only
    Memory) e EEPROM (Electrical EPROM). A maior vantagem dessa tecnologia é sua
    capacidade de programação e a retenção dos dados. Além disso, da mesma forma que
    uma memória EEPROM, os dados podem ser programados com o circuito integrado
    instalado na placa, característica denominada ISP (In System Programmability).

Família de FPGAs disponíveis no mercado

A família de FPGAs, fabricada pela empresa Altera Corp., consiste em uma hierarquia de três níveis muito similar à encontrada nos CPLDs. Contudo, o nível mais baixo da hierarquia consiste em um conjunto de células lógicas como nos SPLDs (Single Programmable Logic Devices). A família de FPGAs da empresa Altera é baseada em tecnologia SRAM e possui uma LUT de quatro entradas como seu elemento lógico básico LE (Logic Element). Sua capacidade lógica está na faixa de 576 a 68.416 elementos lógicos (LEs). A arquitetura
interna básica da família Altera, figura 6, contém três tipos de células lógica: Elemento lógico(LE), bloco de matriz lógica (LAB) e bloco de memória embutido (EAB).

 

Figura 6 Arquitetura interna básica dos FPGA Altera.

 

Os blocos de memória embutidos EABs (Embedded Array Block), constituem-se
no elemento principal da arquitetura básica. Cada bloco EAB pode conter, por exemplo,
2.048 bits programáveis que podem ser configurados como RAM, FIFO (First-In First-
Out), etc. Pode ser configurado para atuar como um bloco de memória RAM com
tamanhos variáveis entre: 256x8, 512x4, 1k x2 ou 2kx1. Além disso, um bloco EAB pode
ser configurado para implementar um circuito lógico complexo, como um multiplexador,
microcontrolador, máquina de estado ou uma função DSP (Digital Signal Processing).

Na arquitetura interna básica apresentada, o bloco lógico chamado Elemento Lógico LE, pode conter uma LUT de quatro entradas, um flip-flop e circuitos de carry de finalidade especial para circuitos aritméticos. O LE também inclui circuito em cascata que permitem a implementação eficiente de funções AND de várias entradas. Os LE são agrupados em dez, formando um conjunto chamado Bloco de Matriz Lógica, LAB (Logic
Array Block).

Cada LAB contém interconexão local, e cada trilha local pode conectar qualquer
LE a outro LE na mesma LAB. A interconexão local também pode ser ligada à
interconexão global, chamada FastTrack. Cada trilha FastTrack entende-se pela altura ou
largura completa do dispositivo. Isso facilita a configuração automática feita pelo
software EDA.

Todas as FastTrack horizontais são idênticas, portanto os atrasos de
interconexões são mais previsíveis que em outros FPGAs que empregram segmentos
menores, pois há menos chaves comutadoras programáveis em caminhos longos.

Os pinos de entrada e saída (E/S) são alimentados individualmente por um
elemento chamado IOE (Input Output Element) localizado no final de uma linha ou
coluna de interconexão global. Os elementos IOE contém buffers bidirecionados e flip-
flops que podem ser configurados como registradores de entrada ou saída.

(c) FMK 2023 - 2024.  Updated Sep 2024.

bottom of page