Conheça a FPGA 101: Um kit de desenvolvimento de baixo custo

FPGA 101

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.

fpga 101

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. 

 

Referências

 

Guia Rápido de Inicialização

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Luis Filipe Rossi
Engenheiro eletricista (POLI-USP 2008) e mestre em engenharia (POLI-USP 2012), e especialista em projetos de sistemas embarcados, atuando tanto no desenvolvimento de hardware como firmware. É sócio fundador da Condor Instruments Ltda e já trabalhou como consultor em diversos produtos comerciais.

28
Deixe um comentário

avatar
 
13 Comment threads
15 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
13 Comment authors
Henrique RossiAntonio SantosAnderson LizardoGabriel Favero MirandaMichael Silva Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Antonio Santos
Visitante
antonio carlos dos santos Sant

boa noite alguem desse forun trabalha com fpga da marca actel A40MX04 PLG84 ?
na verdade estou a procura de um gravador para esse componente alguem pode me ajudar ?
obrigado pela atenção

Henrique Rossi
Visitante

Olá Antonio! Obrigado pela pergunta.

O que acha de postar essa pergunta no forum mesmo do site?

http://www.embarcados.com.br/forum/perguntar

Você conseguiria muito mais visibilidade para a sua pergunta. 😉

Abraços,
Henrique

Anderson Lizardo
Visitante
Anderson Lizardo

Olá Luis, Eu comprei uma FPGA 101 do LDG, recebi semana passada. Estou desde então tentando fazer os exemplos do site funcionarem (http://www.labdegaragem.org/loja/fpga-101.html). No entanto, estou com um problema estranho. Os exemplos são configurados sem erros usando o Quartus Programmer, mas os LEDs não estao sendo ligados/desligados como esperado... Tentando com meus proprios exemplos, o que parece é que o sinal de clock de 12MHz (que pelo que entendi do esquematico, é gerado pelo microcontrolador que funciona como USB Blaster) não está funcionando... Processos combinatoriais (por exemplo, acender um LED equanto o botao está pressionado) funcionam, mas construcoes sequenciais ("@always… Leia mais »

Luis Filipe Rossi
Visitante
luisfrossi

Anderson boa tarde,

Eu realmente não utilizei o Quartus II 14.1, mas acredito que não seja o problema salvo se nessa versão nova exista algum Bug de incompatibilidade. Se estiver disposto a arriscar visto que o download é bem grande, pode baixar a versão 13.1.

Se os exemplos disponibilizados não estão funcionando corretamente, entre em contato com o LdG. Você pode ter pego uma placa premiada.

Abraços

Anderson Lizardo
Visitante
Anderson Lizardo

Olá Luis, Como os exemplos do site não funcionaram (mesmo usando o SOF já compilado, o que elimina problema com a versão do Quartus), resolvi mandar a placa de volta para o LdG para verificação. De qualquer forma, parabéns esforço de projetar esta placa e deixá-la disponível em uma licença CC. Dentro do espírito de Open Hardware, seria possível disponibilizar os arquivos necessários para conseguirmos estudar o circuito completo, fazer reparos e produzir versões próprias? No site do LdG tem apenas parte do esquemático em PDF, mas não os arquivos EDA. Pelo que entendi, você usou o design do USB… Leia mais »

trackback

[…] Kit de desen­volvi­mento brazuca de baixo custo para tra­bal­har com FPGA.Con­heça o FPGA 101: Um kit de desen­volvi­mento de baixo custo […]

Gabriel Favero Miranda
Visitante
Gabriel

Olá Gostaria de saber onde posso encontar o adaptador de vga, utilizado no projeto

Luis Filipe Rossi
Visitante
luisfrossi

Boa noide Gabriel,

Em tese ele deveria ser comercializado pelo LdG, porém se quiser entrar em contato comigo posso tentar lhe ajudar com isso. Ele só utiliza resistores e o conector VGA, então seu circuito é bem simples.

Abraços

Gabriel Favero Miranda
Visitante
Gabriel

Caro Luis, agradeço pela resposta.

Informo que já consigo solucionar o problema, projetei o adaptador, utilizando um D/A com malha R2R.

Valeu.

Michael Silva
Visitante
Michael Silva

Sou iniciante no uso de FPGAs, então gostaria de tirar uma dúvida com vocês. Minha intenção é usar o NIOS II, um soft processor da altera, porém pelo que tenho lido é preciso usar algum tipo de memória externa com este processador como uma memória SDRAM ou SRAM. Esta placa vem com algum chip de memória SRAM ou DRAM? Caso não, alguém que já tenha usado o NIOS sabe me responder se é possível usar o NIOS II sem estes chips de memória? Desde já obrigado.

André Castelan
Visitante

Olá Michael, não é necessária memória externa para rodar o nios2, é possível roda-lo a partir de memória on-chip utilizando recursos próprios do fpga. Com uma memória de programa de até 64k você não deve ter problemas .
Abraços

Michael Silva
Visitante
Michael Silva

Beleza então. Vou adquirir um kit destes para começar a estudar sobre FPGA. Fico no aguardo de mais material aqui no site. Valeu por tirar minha dúvida andrecas. Abraço.

Sandro Dutra
Visitante
Sandro Dutra

Olá novamente Luís, voltei para dar um retorno do que achei da FPGA 101, tendo em vista que, após 12 dias, ela finalmente chegou em minhas mãos... Bom os elogios que deixei na postagem anterior permanecem, é muito gratificante termos pessoas no Brasil interessadas em difundir esse conhecimento, assim como também reforço o fato de que a documentação está bastante escassa, mas fico muito feliz em saber que você irá postar mais coisas sobre a FPGA 101 e, com certeza, estou aguardando para ler, já que, sem material específico e em português, a FPGA iria acabar virando um instrumento mais… Leia mais »

Luis Filipe Rossi
Visitante
luisfrossi

Sandro, Mil desculpas pela demora na resposta. Por algum motivo. muitas vezes não estou recebendo a notificação destes comentários. Muito obrigado pelo feedback quanto à qualidade da fabricação da placa. Críticas são sempre bem vindas e eu apoio 100% que os potenciais usuários saibam o que estão comprando. De qualquer forma eu não sou parte do Lab de Garagem não tenho controle sobre o processo de fabricação deles. Posso repassar o seu feedback para eles, mas acredito que seia mais valido você o fazer visto que você é o cliente. Diga-se de passagem se a placa não passa confiança, eu… Leia mais »

Sandro Dutra
Visitante
Sandro Dutra

Olá caro Luís, apesar de já ter feito a assinatura para ser avisado quando este produto estiver novamente disponível para compra, eu gostaria de primeiro questionar quando será possível termos novas placas, pois estou muito ansioso para adquirir e aprender. Tenho muito interesse em adquirir uma dessas, estou quase comprando uma Mojo v3 no SparkFun para começar pelo Xilinx Spartan 6 LX9, mas vejo que a sua solução é ainda bem melhor pois está usando um FPGA da Altera Cyclone IV e sairia extremamente mais em conta do que importar um devkit para Spartan 6 ou mesmo algum devkit oficial… Leia mais »

Luis Filipe Rossi
Visitante
luisfrossi

Sandro, me desculpe pela demora. Vou trabalhar bem na documentação da placa e em exemplos no decorrer deste ano. Infelizmente ando tendo menos tempo do que gostaria, porém pretendo começar uma serie de posts aqui no Embarcados com um pequeno curso utilizando a placa. Muito obrigado pelo feedback. Quanto a disponibilidade da placa, as pessoas que sempre terão a informação mais atualizada é o próprio pessoal do Lab de Garagem, pois a logística é toda deles. Se adquirir a placa e tiver alguma dúvida, pode me enviar um e-mail que irei ficar feliz em lhe ajudar dentro do possível. Abraços,… Leia mais »

Sandro Dutra
Visitante
Sandro Dutra

Opa! Muito obrigado pelo retorno Luís. A 15 dias atrás a placa foi novamente disponibilizada no Laboratório de Garagem, não pensei duas vezes e comprei, por coincidência, será entregue amanhã, e irei já testar os exemplos disponibilizados, além disso comprei uma Mojo v3 pelo SparkFun e um kit de CPLD Max II genérico o qual usarei só para testar em um momento mais à frente, por enquanto, irei dar um tempo em microcontroladores e me focar mais em FPGA.

Thales Angelino
Visitante
Thales Angelino

Parabéns Luis, a vc e ao pessoal do Lab Garagem!
Ótima iniciativa, durante a graduação utilizei FPGA em algumas disciplina e deixou saudades 🙂
Com certeza irei comprá-lo!

Helio Coragem
Visitante
Helio Coragem

Só isso? Cadê os monstrinhos do "Doom" e "Duke Nuke".....eh eh eh
Muito legal! Seria possível com esta placa fazer a implementação de um SDR?

Luis Filipe Rossi
Visitante
luisfrossi

Hehehehe, isso fica para os usuários da placa implementarem. Realmente não tenho ideia quais seriam os recursos necessários para um SDR e nem as características técnicas de uma placa para isso (por exemplo equalização da dimensão das trilhas para trabalharem com barramentos em alta frequência).

Rogerio Machado
Visitante
Rogerio

Gostei muito da implementacao do raycasting!. O codigo fonte(HDL,C) do raycasting acompanha o kit? A implementacao do mps430 eh baseada no http://opencores.org/project,openmsp430 ?

Luis Filipe Rossi
Visitante
luisfrossi

Rogerio, fico feliz que tenha gostado. O código será disponibilizado. Ainda não foi pois está um pouco desorganizado e nada didático. A implementação do MSP430 é exatamente esta que você mencionou. O USB host utilizado foi o http://opencores.org/project,usbhostslave . Qualquer dúvida pode perguntar.