Arranjo de porta programável em campo
Um arranjo de porta programável em campo, em inglês field programmable gate array, é um circuito integrado projetado para ser configurado por um consumidor ou projetista após a fabricação – de onde advém "programável em campo". A grande maioria dos chips que encontramos em nosso dia-a-dia, circuitos que acompanham as televisões, celulares, etc., já vêm todos pré-programados (ASIC), isto é, com as suas funcionalidades todas definidas no ato de fabricação. Surgiu então uma categoria nova de hardware reconfigurável, o qual têm as suas funcionalidades definidas exclusivamente pelos usuários e não pelos fabricantes.
Um FPGA é um dispositivo semicondutor que é largamente utilizado para o processamento de informações digitais. Foi criado pela Xilinx Inc., e teve o seu lançamento no ano de 1985 como um dispositivo que poderia ser programado de acordo com as aplicações do usuário (programador). O FPGA é composto basicamente por três tipos de componentes: blocos de entrada e saída (IOB), blocos lógicos configuráveis (CLB) e chaves de interconexão (Switch Matrix). Os blocos lógicos são dispostos de forma bidimensional, as chaves de interconexão são dispostas em formas de trilhas verticais e horizontais entre as linhas e as colunas dos blocos lógicos.
A FPGA é um chip que suporta a implementação de circuitos lógicos relativamente grandes. Consiste de 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 de um grande arranjo de células configuráveis que podem ser utilizadas para a implementação de funções lógicas. Um FPGA basicamente é constituído 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 dos blocos lógicos. Os 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.
Atualmente no mercado podemos encontrar três tipos de FPGA’s, onde cada um terá melhor desempenho dependendo da aplicação para a qual o mesmo será utilizado. Os três tipos são:
Ambos são dispositivos lógico programáveis e ambos, muitas vezes, são produzidos pelas mesmas empresas. Porém, existem muitas diferenças entre estas tecnologias:


