한국   대만   중국   일본 
Arranjo de porta programavel em campo ? Wikipedia, a enciclopedia livre Saltar para o conteudo

Arranjo de porta programavel em campo

Origem: Wikipedia, a enciclopedia livre.
(Redirecionado de Field-programmable gate array )
Nota:  FPGAs nao devem ser confundidos com o flip-chip pin grid array , uma forma de encapsulamento de circuitos integrados.
Um FPGA da Altera com 20.000 celulas.

Um arranjo de porta programavel em campo , em ingles field programmable gate array (sigla FPGA ), e um circuito integrado projetado para ser configurado por um consumidor ou projetista apos a fabricacao ? de onde advem "programavel em campo". A grande maioria dos chips que encontramos em nosso dia-a-dia, circuitos que acompanham as televisoes , celulares , etc., ja vem todos pre-programados ( ASIC ), isto e, com as suas funcionalidades todas definidas no ato de fabricacao. Surgiu entao uma categoria nova de hardware reconfiguravel, o qual tem as suas funcionalidades definidas exclusivamente pelos usuarios e nao pelos fabricantes.

Arquitetura [ editar | editar codigo-fonte ]

Um FPGA e um dispositivo semicondutor que e largamente utilizado para o processamento de informacoes digitais. Foi criado pela Xilinx Inc., e teve o seu lancamento no ano de 1985 como um dispositivo que poderia ser programado de acordo com as aplicacoes do usuario (programador). O FPGA e composto basicamente por tres tipos de componentes: blocos de entrada e saida (IOB), blocos logicos configuraveis (CLB) e chaves de interconexao ( Switch Matrix ). Os blocos logicos sao dispostos de forma bidimensional, as chaves de interconexao sao dispostas em formas de trilhas verticais e horizontais entre as linhas e as colunas dos blocos logicos.

  • CLB ( Configuration Logical Blocks ): Circuitos identicos, construido pela reuniao de flip-flops (entre 2 e 4) e a utilizacao de logica combinacional. Utilizando os CLBs, um usuario pode construir elementos funcionais logicos.
  • IOB ( Input/Output Block ): Sao circuitos responsaveis pelo interfaceamento das saidas provenientes das saidas das combinacoes de CLBs. Sao basicamente buffers , que funcionarao como um pino bidirecional entrada e saida do FPGA.
  • Switch Matrix (chaves de interconexoes): Trilhas utilizadas para conectar os CLBS e IOBS. O terceiro grupo e composto pelas interconexoes. Os recursos de interconexoes possuem trilhas para conectar as entradas e saidas dos CLBs e IOBs para as redes apropriadas. Geralmente, a configuracao e estabelecida por programacao interna das celulas de memoria estatica, que determinam funcoes logicas e conexoes internas implementadas no FPGA entre os CLBs e os IOBs. O processo de escolha das interconexoes e chamado de roteamento.

Tecnologia do FPGA [ editar | editar codigo-fonte ]

A FPGA e um chip que suporta a implementacao de circuitos logicos relativamente grandes. Consiste de um grande arranjo de celulas logicas ou blocos logicos configuraveis contidos em um unico circuito integrado. Cada celula contem capacidade computacional para implementar funcoes logicas e realizar roteamento para comunicacao entre elas. O primeiro FPGA disponivel comercialmente foi desenvolvido pela empresa Xilinx Inc, em 1983.

Os FPGAs nao possuem planos OR ou AND, consistem de um grande arranjo de celulas configuraveis que podem ser utilizadas para a implementacao de funcoes logicas. Um FPGA basicamente e constituido por blocos logicos, blocos de entrada e saida, e chaves de interconexao. Os blocos logicos formam uma matriz bidimensional, e as chaves de interconexao sao organizadas como canais de roteamento horizontal e vertical entre as linhas e colunas dos blocos logicos. Os canais de roteamento possuem chaves de interligacao programaveis que permitem conectar os blocos logicos de maneira conveniente, em funcao das necessidades de cada projeto.

No interior de cada bloco logico do FPGA existem varios modos possiveis para implementacao de funcoes logicas. O mais utilizado pelos fabricantes de FPGA como, por exemplo, a empresa Altera Corp, e o bloco de memoria LUT (Look-Up Table). Esse tipo de bloco logico contem celulas de armazenamento que sao utilizadas para implementar pequenas funcoes logicas. Cada celula e capaz de armazenar um unico valor logico: zero ou um.

Nos FPGAs disponiveis comercialmente como, por exemplo, da empresa Altera Corp., os blocos logicos LUTs possuem geralmente quatro ou cinco entradas, o que permite enderecar 16 ou 32 celulas de armazenamento. Quando um circuito logico e implementado em um FPGA, os blocos logicos sao programados para realizar as funcoes necessarias, e os canais de roteamento sao estruturados de forma a realizar a interconexao necessaria entre os blocos logicos.

As celulas de armazenamento dos LUTs de um FPGA sao volateis, o que implica perda do conteudo armazenado, no caso de falta de suprimento de energia eletrica. Dessa forma, o FPGA deve ser programado toda vez que for energizado. Geralmente utiliza-se uma pequena memoria FLASH EEPROM ( Electrically Erasable Programmable Read Only Memory ) cuja funcao e carregar automaticamente as celulas de armazenamento, toda vez que o FPGA for energizado.

Granularidade e uma caracteristica dos FPGAs relacionada com o grao. A fim de classificar os FPGAs quanto ao bloco logico, foram criadas algumas categorias:

a) Grao grande: os FPGAs dessa categoria podem possuir como grao unidades logicas e aritmeticas, pequenos microprocessadores e memorias.

b) Grao medio: os FPGAs de grao medio frequentemente contem duas ou mais LUTs e dois ou mais flip-flops. A maioria das arquiteturas de FPGAs implementam a logica em LUTs de quatro entradas.

c) Grao pequeno: os FPGAs de grao pequeno contem um grande numero de blocos logicos simples. Os blocos logicos normalmente contem uma funcao logica de duas entradas ou um multiplexador 4x1 e um flip-flop .

A arquitetura de roteamento de um FPGA e a forma pela qual os seus barramentos e as chaves de comutacao sao posicionados para permitir a interconexao entre as celulas logicas. Essa arquitetura deve permitir que se obtenha um roteamento completo e, ao mesmo tempo, uma alta densidade de portas logicas. Para uma melhor compreensao dessa arquitetura e necessaria a definicao de alguns conceitos basicos como:

  1. Pinos: entradas e saidas dos blocos logicos.
  2. Conexao: ligacao eletrica de um par de pinos.
  3. Rede: um conjunto de pinos que estao conectados.
  4. Segmento de trilha: segmento nao interrompido por chaves programaveis.
  5. Bloco de Comutacao: utilizado para conectar dois segmentos de trilha.
  6. Canal de roteamento: grupo de duas ou mais trilhas paralelas.
  7. Bloco de conexao: permite a conectividade das entradas e saidas de um bloco logico com os segmentos de trilhas nos canais.

As chaves programaveis de roteamento apresentam algumas propriedades, tais como, tamanho, resistencia, capacitancia e tecnologia de fabricacao, que afetam principalmente a velocidade e o tempo de propagacao dos sinais, e definem caracteristicas como volatilidade e capacidade de reprogramacao.Na escolha de um dispositivo reconfiguravel, esses fatores devem ser avaliados. Basicamente existem tres tipos de tecnologia de programacao das chaves de roteamento:

a) SRAM ( Static Random Access Memory ): nessa tecnologia, a chave de roteamento ou comutador e um transistor de passagem ou um multiplexador controlado por uma memoria estatica de acesso aleatorio SRAM. Devido a volatilidade dessas memorias, os FPGAs que se utilizam dessa tecnologia precisam de uma memoria externa tipo FLASH EEPROM. Essa tecnologia ocupa muito espaco no circuito integrado, entretanto e rapidamente reprogramavel.

b) Antifuse: essa tecnologia baseia-se num dispositivo de dois terminais, que no estado nao programado apresenta uma alta impedancia (circuito aberto). Aplicando-se uma tensao, por exemplo, entre 11 e 20 Vdc, o dispositivo forma um caminho de baixa impedancia entre seus terminais.

c) Gate flutuante: a tecnologia Gate flutuante baseia-se em transistores MOS ( Metal Oxide Semiconductor ), especialmente construido com dois gates flutuantes semelhantes aos usados nas memorias EPROM ( Erasable Programmable Read Only Memory ) e EEPROM ( Electrical EPROM ). A maior vantagem dessa tecnologia e a sua capacidade de programacao e a retencao dos dados. Alem disso, da mesma forma que uma memoria EEPROM, os dados podem ser programados com o circuito integrado instalado na placa, caracteristica denominada ISP ( In System Programmability ).

Tipos [ editar | editar codigo-fonte ]

Atualmente no mercado podemos encontrar tres tipos de FPGA’s, onde cada um tera melhor desempenho dependendo da aplicacao para a qual o mesmo sera utilizado. Os tres tipos sao:

  • RAM Estatica: FPGA na qual suas conexoes entre as portas sao feitas entre blocos logicos por meio de portas de transmissao ou multiplexadores controladas por celulas SRAM . Tem como vantagem a possibilidade de ser rapidamente configurada, porem exige hardware externo auxiliar que deve ser montado junto com os blocos logicos.
  • Transistores de Passagem: Essa e uma opcao mais barata que a opcao de RAM estatica, composta por uma grande concentracao de transistores que sao configurados em modo de corte ou modo de conducao.
  • EPROM / EEPROM : Baseada na tecnologia de criacao de memorias EPROM/EEPROM. Sua principal vantagem e permitir a reprogramacao sem que se precise armazenar a configuracao externa.

FPGAs x CPLDs [ editar | editar codigo-fonte ]

Ambos sao dispositivos logico programaveis e ambos, muitas vezes, sao produzidos pelas mesmas empresas. Porem, existem muitas diferencas entre estas tecnologias:

  • FPGAs contem muitos pequenos blocos logicos com flip-flops (ate da ordem de 1.000.000). CPLDs sao compostos por um pequeno numero (algumas centenas) de grande blocos logicos.
  • FPGAs, tipicamente, sao baseados em RAM. Isto significa que eles precisam ser reconfigurados (ou reprogramados) apos cada corte de energia (existem FPGAs com programacao persistente baseados em Flash ou EEPROM). CPLDs sao, tipicamente, baseados em EEPROM. Eles ja estao ativos ao serem ligados (desde que tenham sido programados pelo menos uma vez).
  • CPLDs tem um tempo de resposta melhor, por ser composto de alguns poucos grande blocos logicos. Em contrapartida esta caracteristica lhe da menos flexibilidade.
  • FPGAs tem recursos de roteamento especiais para implementar de maneira eficiente funcoes aritmeticas e RAM. CPLDs nao tem.
  • FPGAs podem ser usados em projetos grandes e complexos, enquanto CPLDs estao restritos a projetos bem menores.

Imagens e Fotos [ editar | editar codigo-fonte ]

Pesquisas em FPGA [ editar | editar codigo-fonte ]

Fabricantes e especialistas em FPGA [ editar | editar codigo-fonte ]

Ícone de esboço Este artigo sobre eletronica e um esboco . Voce pode ajudar a Wikipedia expandindo-o .