/ fpga

A-C8V4 FPGA Development Board: Uma Visão Geral

Alguns anos atrás comecei a utilizar uma placa de desenvolvimento FPGA. Mais especificamente, a placa DE2-115 com Cyclone® IV E modelo EP4CE115 disponível na faculdade. Não demorou muito para eu pensar em comprar uma placa para mim. Infelizmente, o modelo chegava facilmente aos $600.00 e não era um investimento possível naquele momento. Decidi procurar alternativas com um custo menor.

Não demorou muito para que eu me deparasse com um modelo de baixo custo chamado A-C8V4. Ok, não é original e nem tampouco confiável. Além disso, seria necessário importar e passar por todo aquele processo demorado de entrega. Apesar disso, o preço era razoável e parecia possuir tudo que eu precisava naquele momento. Decidi arriscar e comprei.

1

Após alguns meses, o produto chegou (e foi taxado, claro). Animado, corri para desenvolver alguns projetos utilizando a placa. A primeira decepção: não encontrei material de apoio, tampouco manual de instruções. O máximo que encontrei foram alguns documentos em chinês. Apesar disso, tentei arriscar alguns projetos que não deram certo. Desisti e guardei a placa em uma caixa.

Durante os próximos 3 anos utilizei o modelo disponível na faculdade para meus projetos. Porém, recentemente decidi dar uma segunda chance para a minha placa. O cenário era o mesmo: falta de material de apoio e quase nenhum projeto disponível online. Dessa vez persisti tentando utilizar a placa e consegui. Apesar de algumas dificuldades, consegui executar todos os projetos que havia desenvolvido na placa da faculdade na minha placa. Justamente por isso, decidi apresentar minha visão sobre essa placa.

2-2

  1. A placa não possui switches de entrada. Todos os meus projetos utilizando a DE2-115 utilizavam os switches disponíveis como forma de inserção de dados. A A-C8V4 não possui nenhum. Apesar de incômodo, isso está longe de ser um problema. É possível comprar switches buttons e conectá-los aos pinos I\O da placa perfeitamente. No meu caso, eu optei por utilizar um arduino e um teclado matricial conectados à placa como interface de entrada. Funcionou perfeitamente e é bem mais prático do que utilizar os switches da Cyclone® IV.
  2. Os displays de 7 segmentos devem ser multiplexados. Tanto a DE2-115, como a A-C8V4 possuem 8 displays de 7 segmentos. Porém, a DE2-115 possui 64 pinos para controlar os displays. Portanto, cada display pode ser controlado individualmente. Já a placa A-C8V4 possui somente 16 pinos para os 8 displays. Assim, é necessário utilizar um multiplexador para controlar os displays. Novamente, apesar de um certo incômodo para realizar as modificações, isso também não é um problema. Bastou criar um multiplexador e tudo estava resolvido.
  3. Uma quantidade menor de elementos lógicos. Ok, a DE2-115 possui Cyclone® IV e a A-C8V4 possui Cyclone® II. Evidente que a A-C8V4 é inferior. Esbarrei nessa limitação quando migrei os projetos e tive que realizar algumas modificações para encaixar tudo. Não foram muitas e foi até bom pois precisei otimizar meu projeto. No fim, não tive nenhuma perda de funcionalidade no projeto e tudo funcionou normalmente.
  4. Alguns pinos são compartilhados. Alguns pinos da placa são compartilhados e isso pode causar uma certa confusão na hora de realizar a pinagem. Por exemplo, alguns pinos de I\O eram compartilhados com os pinos que controlam o display de 7 segmentos. Demorou um tempo até que eu percebesse que esse era o motivo de algumas coisas sem sentidos acontecerem.
  5. A lógica é invertida. Exatamente. 1 é desligado e 0 é ligado. Aparentemente, os periféricos são controlados por um transistor PNP. Me deparei com esse incomodo quando meu buzzer emitia sons sempre que ligava a placa. Esse é um ponto importante pra considerar durante o desenvolvimento, mas nada que inviabilize seus projetos.
  6. Poucos Leds. Existem poucos leds na placa, e a maioria deles é ligado diretamente a alguns periféricos. Até onde eu sei, só existem 6 que podem ser utilizados.
  7. Não tem material e nem suporte. Foi muito difícil achar material online utilizando essa placa. Além de não existir manual de instruções, o único material que encontrei foi o Datasheet da placa. Apesar de ser um pouco confuso, dá pra usar. Quanto aos projetos, desenvolvi alguns por conta própria e deu tudo certo.

Tem muita coisa que eu ainda não testei, como, por exemplo, RS232 e display LCD. Porém, para os projetos que desenvolvo a placa está me atendendo muito bem. Em geral, apesar de ser uma versão pouco confiável e importada, eu considero o custo-benefício muito bom. Para quem está começando com FPGA ou precisa desenvolver alguns projetos básicos de faculdade, considero uma boa escolha.

Eu integrei minha placa com um arduino para a interface de entrada de dados e um raspberry para comunicação de rede. Um próximo passo talvez seja testar a comunicação utilizando o protocolo RS232 e diminuir a quantidade de jumpers necessários. Em geral, estou satisfeito e sinto que deveria ter dado uma segunda chance para a placa mais cedo. A imagem a seguir é uma foto da minha placa.

20180530_143316