Os FPGAs

Existem no mercado os mais diversos tipos de microcontroladores, cada um com um conjunto próprio de periféricos e funções. Ao invés de desenvolver e fabricar seus próprios chips, as empresas passaram a cada vez mais utilizar componentes disponíveis no mercado, que são fabricados em massa e vendidos a preços incrivelmente baixos. Para você ter uma ideia, o STMP3510 custa apenas 6 dólares se comprado em quantidade. Microcontroladores mais simples podem custar menos de um dólar, enquanto chips menores chegam a custar apenas alguns centavos.

A maior parte do custo de um processador ou outro chip qualquer, está em seu desenvolvimento. Mesmo um microcontrolador relativamente simples pode consumir vários milhões para ser desenvolvido. Entretanto, o custo de produção por unidade é relativamente baixo, de forma que os chips mais vendidos acabam tendo o custo inicial amortizado e passam a ser cada vez mais baratos.

Muitos microcontroladores podem ser conectados a dispositivos analógicos, permitindo o uso de sensores diversos. Isso permite a criação de dispositivos simples, que monitoram temperatura, umidade, intensidade da luz, aceleração, campos magnéticos e assim por diante, executando ações predefinidas em caso de mudanças, como ligar o ar condicionado, abrir ou fechar as persianas, ou mesmo disparar o airbag do seu carro em caso de colisão.

Para aplicações em que um chip personalizado é essencial, existe ainda a opção de usar chips programáveis, chamados de FPGAs (Field-Programmable Gate Arrays) ou, mais raramente, de LCAs (Logic-Cell Arrays). Como o nome sugere, eles são chips compostos por um enorme número de chaves programáveis, que podem ser configurados para simular o comportamento de qualquer outro circuito. É muito comum encontrá-los em protótipos de periféricos e placas de desenvolvimento, desempenhando a função de algum chip que ainda se encontra em fase de produção:

shipfpga

Chip FPGA em um SSDChip FPGA em um SSD

Um único FPGA pode simular não apenas um processador simples, mas também outros circuitos de apoio, como o controlador de vídeo, uma interface serial e assim por diante. Os modelos recentes incluem inclusive uma pequena quantidade de memória RAM e circuitos de apoio, de forma que você pode ter um sistema completo usando apenas um chip FPGA previamente programado, um chip de memória EPROM (ou memória Flash) com o software, a placa de circuito com as trilhas e conectores e uma bateria ou outra fonte de energia.

Os projetos dos chips são desenvolvidos usando ferramentas como o Quartus II (https://www.altera.com/products/software/quartus-ii/) que permitem desenvolver e modificar os circuitos através de uma ferramenta gráfica. Com um FPGA de capacidade suficiente e as ferramentas de desenvolvimento, você pode baixar o projeto de um chip, fazer modificações, testar, fazer mais modificações e assim por diante, quase da mesma maneira que com um software.

Assim como no caso dos softwares, existem alguns projetos de hardware aberto, onde você pode obter projetos de livre distribuição. Dois exemplos são o https://www.opencores.org/ (que disponibiliza um grande número de projetos de processadores e controladores dedicados) e o https://www.opensparc.net/ que oferece versões abertas de chips da família Sun SPARC.

Os chips são programados transferindo o projeto para o chip, o que é feito através de um cabo serial ou USB. Assim que recebe o projeto, o FPGA se torna operacional e passa a desempenhar as funções programadas, assim como um chip que acabou de ser ligado.

A programação do FPGA é volátil, por isso ela é perdida sempre que ele é desligado. Para remediar o programa, é usado uma ROM programável, onde o projeto é salvo e transferido para o FPGA sempre que ele é ligado. Como de praxe, é necessário também um chip de memória RAM e interfaces diversas (VGA, rede, etc.) para criar um sistema completo:

placafpga

Placa FPGA com um Altera Cyclone II, chip de boot, RAM e interfaces

A possibilidade de fazer download de projetos de chips e gravá-los em um FPGA pode parecer tentadora, mas é importante ter em mente que os FPGAs são muito mais caros que chips produzidos em série, pois cada célula lógica é um dispositivo relativamente complexo, que é usado para simular um único componente.

O Altera Cyclone II usado na placa da foto anterior, por exemplo, possui somente 68 mil elementos programáveis, o que é apenas uma pequena fração do que seria necessário para simular um Phenom II ou Core i7, que são formados por centenas de milhões de transistores. Apesar disso, ele é mais do que suficiente para simular um chip 8088, um ARM7, ou outro projeto moderadamente complexo.

Embora o custo unitário seja relativamente alto, os FPGAs são uma opção muito usada em situações em que são necessárias apenas algumas centenas de unidades de um design exclusivo, uma quantidade que não justificaria a criação das máscaras de litografia e todo o caro processo de produção comercial de um chip. Imagine o caso do ramo da automação industrial, por exemplo.

Eles são também o caminho para projetos artesanais, que são a nova onda entre quem gosta de eletrônica ou está cursando engenharia da computação. Um bom site dedicado ao assunto é o https://www.fpga4fun.com/, que disponibiliza softwares, layouts de placas e até mesmo projetos prontos, como este que reproduz um jogo de paredão, usando um mouse e um monitor CRT:

mouse monit

Os componentes necessários para construir os projetos podem ser comprados facilmente pela web (basta ter um cartão internacional ou uma conta no PayPal) e a mesma placa de desenvolvimento pode ser usada indefinidamente em diferentes projetos.

Os dois principais fabricantes de FPGAs são a Altera (https://www.altera.com) e a Xilinx (https://www.xilinx.com/). Ambos oferecem tutoriais e cursos de desenvolvimento, que você pode acessar no https://www.altera.com/education/univ/unv-index.html e https://www.xilinx.com/univ/.

Postado por
Siga em:
Compartilhe
Deixe seu comentário
Img de rastreio
Localize algo no site!