Como já foi comentado aqui no Embarcados pelo André, FPGAs são ferramentas bastante interessante e poderosas. Não obstante existam diversas ferramentas de desenvolvimento disponíveis, o preço delas acaba ficando inviável para pessoas que queiram aprender e desenvolver com FPGA. Apenas como referência, um desses kits que custam tradicionalmente U$79, custariam em torno de R$500,00 aqui no Brasil contando impostos, frete e custos de desembaraço aduaneiro. Se formos adicionar a margem de lucro e impostos subsequentes, o custo destas placas chega facilmente a R$800,00.
Devido a estes custos impeditivos, FPGAs eram ferramentas bastante inacessíveis para estudantes, hobistas e engenheiros interessados na tecnologia em questão. Tendo este problema em vista, eu desenvolvi em parceria com o Laboratório de Garagem a FPGA 101: uma placa de desenvolvimento de FPGA de baixo custo, contendo tudo que você precisa para começar o aprendizado.
Na placa vem um FPGA EP4CE6 (Cyclone IV da Altera), um J-TAG compatível com o USB-Blaster e uma memória flash de 16Mb para armazenar o bitstream do FPGA. Os bitstreams do FPGA em questão não devem ocupar mais do que 4Mb da memória, ficando disponível 12Mb para o uso pelo usuário em suas aplicações.
Além destes recursos utilizados para gravar e debugar o EP4CE6, a FPGA 101 possuí alguns periféricos disponíveis para o usuário poder começar a desenvolver aplicações sem depender de placas de expansão: 8 leds, 2 push-buttons e uma interface USB que pode ser utilizada como Host ou Device (utilizando recursos lógicos do FPGA). Para poder aproveitar a enorme quantidade de shields de arduíno disponíveis, a placa possuí 4 headers GPIO compatíveis com tais shields. As únicas limitações são que o os shields devem operar em 3.3V e não conter sinais analógicos (FPGAs não tem conversores AD).
Mesmo com uma ferramenta destas em mãos, existe muita carência de informação digerida para aprendizado com FPGAs, em especial em português. De forma a suprir tal carência, serão disponibilizados exemplos e tutoriais para facilitar o inicio do aprendizado dos usuários.
Apenas como demonstração de o que pode ser feito com a placa (me desculpe pela péssima qualidade do vídeo) um projeto que eu desenvolvi e será disponibilizado para os usuários.
Ele consiste de um renderizador de Ray casting (técnica de renderização 3D utilizada nos jogos de FPS antigos) totalmente implementado em hardware. Adicionalmente, também foi implementado um controlador de USB Host e um MSP430, tudo com recursos lógicos do FPGA. O MSP430 faz a leitura do Joystick USB e controla a posição e orientação do usuário em um mapa 2D. O renderizador pega a posição e orientação do usuário, o mapa e textura das paredes, e renderiza a imagem em 60Hz e 480p. Neste exemplo foi utilizado um pequeno adaptador para sinais VGAs baseado em uma DAC R2R de 15 bits.
A placa pode ser atualmente adquirida na loja do Laboratório de Garagem por R$259,00, ou comprada diretamente no balcão da loja física.









