Projetos para iniciantes em um FPGA?


11

Faltam duas semanas para concluir meu primeiro curso de design de lógica digital na faculdade e, aparentemente, não haverá um projeto final - apenas um exame final tedioso.

Então, como qualquer aluno curioso faria, examinei o que os FPGAs realmente são e o que eu estava sendo alimentado com colher nas aulas. E eu decidi concluir um projeto FPGA simples. Estou usando um FPGA Basys2 Spartan-3E, e estou familiarizado com a lógica digital e usando o ISE para empurrar as portas lógicas, mas não conheço VHDL / Verilog (tenho certeza de que poderia pegá-lo facilmente).

Alguém tem alguma idéia de projeto para iniciantes? Eu fiz muitas demonstrações de laboratório, mas nada muito chique.


Lista de desejos: 1080p monitor de vídeo, ... o que dizer que eu parar por aí :-)
Russell McMahon

1
Verifique o site fpga4fun.com .
#

3
Cuidado com as placas de desenvolvimento do fpga4fun.com. A documentação deles é péssima e eles se recusam a liberar os esquemas da placa de desenvolvimento .
Connor Wolf

Respostas:


5

Eu achei "Prototipagem FPGA por Verilog Exemplos de Pong Chu: Verilog Exemplos: Xilinx Spartan-3 Version" um livro muito útil. É para uma placa Spartan-3 diferente daquela mencionada, mas ainda deve ser útil.

Há também uma edição VHDL, se você preferir seguir esse caminho


4

Você tem VGA nisso pela aparência. O vídeo sempre desperta interesse na minha experiência :)

Aqui está um plano que você pode querer experimentar (sem necessidade de buffer de estrutura):

  1. Obtenha uma tela VGA em cores puras
  2. exibir um desbotamento horizontal do preto para a cor sólida
  3. Agora desbota verticalmente de preto para vermelho e horizontalmente de preto para verde 3a. (crie um plano de fundo especificado algoritmicamente mais interessante que você pode renderizar em tempo real)
  4. crie um mecanismo de sprite simples que irá sobrepor uma pequena forma arbitrária em um local arbitrário - você pode usar 1 BRAM para os dados do sprite
  5. mostrar alguns sprites diferentes (1 BRAM cada)
  6. crie alguma lógica de atualização para fazer com que os sprites pulem (e se afastem) - adicione detecção de colisão à lógica do sprite.
  7. crie um sprite "remo" que você possa controlar com os interruptores, use-o para impedir que os sprites saiam da tela
  8. Adicione algum mecanismo de pontuação

Eu acho que tudo deve caber em um 250E. (O relógio VGA é lento em termos de FPGA, para que você possa multiplicar por 4-8x com o DCM, o que permitirá que um mecanismo de sprite se multiplexe em mais de uma instância de sprite)


3

Este curso on-line gratuito, escrito por Hamster, é incrível e foi escrito com o Basys 2 e o Nexys 2 em mente.

Pessoalmente, usei o Basys 2 e aprendi bastante ao longo deste curso. Ele abrange todos os aspectos do quadro da Basys e muitos conceitos para levar a maioria dos projetos além do curso realizado.


2

Como em todo o resto, comece com um projeto hello world , neste caso - pisque um LED - e torne seu período variável apenas por diversão.

Para fazer isso, você precisará aprender como criar um contador no Verilog / VHDL. Esse é um bom começo para aprender os meandros do HDL, porque você aprenderá como:

  1. Inferir operações de hardware - usando código RTL em vez de código no nível do portão. Você aprenderá como projetar um contador para cima / baixo pré-carregável e redefinível com código RTL.
  2. Aprenda a fazer o design síncrono - que é para o que a maioria dos FPGAs serve, e é o básico de quase todo o design de sistemas digitais.
  3. Aprenda a interagir com o mundo exterior - usando a E / S do FPGA. Isso ensinará como configurar e implementar as coisas em um FPGA.

Uma vez feito isso, vá para o opencores e comece a cortar projetos maiores. Você encontrará muitos outros projetos divertidos de alguns de nossos membros aqui, incluindo o seu verdadeiramente. :)


1

Martin sugere que você tenha capacidade VGA.

Que tal uma "moldura fotográfica" decente que permita um melhor controle das fotos do que qualquer outra disponível normalmente.

  • A maioria trata mal os subdiretórios.

  • Quase nenhum permite a exibição aleatória de pedidos - o que é uma grande vantagem quando você tem um grande número de fotos.

  • Capacidade de criar um show de slides com base nas fotos selecionadas como um bônus. (Veja Irfanview para exemplos).

  • Pontos extras - adicione capacidade de reprodução de MP3. Intercalar música com fotos.

  • Armazenamento de dados SD Flash.

  • USB?

  • 802.11? (demais para esperar.)



0

O livro de Hamblen et al. Está repleto de projetos interessantes para os painéis Altera Cyclone DE1 e DE2; O código VHDL é fornecido. Implemente alguns deles na sua placa Spartan-3E.


0

Uma das primeiras coisas a fazer é apenas fazer o download (do fornecedor ou do site entusiasta) e criar um projeto básico que prenda as entradas às saídas - isso pode ser extremamente frustrante para trabalhar até que você tenha alguma experiência.

Então você pode começar a colocar a lógica entre máquinas de estado para exemplos planejados, como você tinha na aula, ou mais complicadas, como os geradores de vídeo que outros estão recomendando. Blocos mais complicados, como processadores DIY simples, etc ...


0

Quando fiz meu curso de VHDL, fiz um microprocessador com ALU com algumas instruções, comunicação de memória e seqüenciador de microinstruções. Leva mais tempo do que você imagina, especialmente se você deseja torná-lo robusto.


Idem (deve ser um favorito do palestrante). Foi um desafio surpreendentemente bom e me fez pensar realmente sobre como os processadores realmente funcionam.
Al Bennett
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.