Projeto para aprender VHDL


16

Sou estudante de EE e posso escrever [pelo menos simples] programas em mais idiomas do que os meus dedos. Acabei de começar a aprender VHDL e estava pensando em qual seria um bom projeto para realmente conhecer o idioma e as ferramentas relevantes? Estou tendo problemas para criar um, porque é um estilo de programação realmente diferente para mim.

Eu criei coisas simples como adicionadores, mas estou procurando um projeto a mais longo prazo (ou seja, um mês ou mais).

Caso seja relevante, tenho o Xilinx Webpack e uma placa Digilent Spartan3.

Respostas:


7

Meu projeto FPGA "olá mundo" foi um controlador de matriz de LEDs com entrada PWM e fluxo serial. O resultado final foi bom ( http://lbw.axe-man.org/led1.wmv ), mas admito que fiz uma parte com o Editor esquemático do Altera Quartus para ver como as peças VHDL foram descritas.


Esta é uma ótima idéia; Acabei de pegar uma matriz sem controlador de 16x16 e um controlador seria ótimo. vídeo legal!
Penjuin

Vídeo bonito! E esse editor esquemático está aí para ser usado.
Monica

10

Como você parece interessado em programação, você pode construir um microprocessador simples.


Altamente recomendado. Você acaba aprendendo sobre não só o lado do FPGA e VHDL das coisas, mas também como processadores de trabalho, o que é necessário em termos de ferramentas de desenvolvimento para apoiar um processador, etc.
Chris Stratton


4

Gostei de trabalhar com Hans em hardhack este ano no projeto Rekonstrukt para criar um sintetizador básico em um FPGA. Projetos de LED também são bons, mas não há nada como conectar o FPGA a um aparelho de som. Não está construindo a partir do zero, como faria um projeto de LED, porque o projeto é baseado em um processador de núcleo aberto que suporta. Então, no começo, você está aprendendo a carregar basicamente o FPGA com o projeto, para poder brincar com os envelopes em FORTH. Mas onde você começa a aprender mais sobre os elementos internos do FPGA é quando deseja adicionar funcionalidades, o que exige a inserção no VHDL.


2

Um projeto que eu gostei de fazer foi implementar o Milton Bradley Simon Game em um FPGA.

Na minha universidade, nossa turma da EDA usa o mesmo quadro que você mencionou. Alguns dos projetos implementados incluem:

  • Processamento de imagem: filtro mediano, alongamento do histograma, detecção de bordas
  • Criptografia: AES, vários algoritmos de hash, etc.
  • Comunicação: Ethernet, USB, I2C, etc.
  • Jogos: Pong, invasores espaciais, etc.

Isso pode lhe dar algumas idéias.

Vou secundar a idéia do opencores.org e implementar seu próprio microprocessador. Como você possui um FPGA Xilinx, você também pode tentar fazer algo com microblaze ou picoblaze.

Editar: formatação.


1

Eu escrevi o código vhdl para o xilinx virtex core há algum tempo. foi uma implementação de despertador. Isto é o que eu fiz:

  • Leia muito através do manual vhdl - eu teria que revisar agora, mas achei bastante direto e fácil de usar hdl :-)
  • Conjunto xilinx usado (compilador, sintetizador) para obter o fluxo de bits
  • Carregou os fluxos de bits usando jtag

Enxaguado, repetido 1-3. Eu apontaria que a geração de fluxo de bits está praticamente integrada no IDE da Xilinx. Você só precisa ter um conjunto claro de lógica para implementar no HDL; todo o restante é feito pelo IDE.


1

O oscilador controlado numericamente seria divertido. Acabei de fazer um design com minha placa compatível com Arduino (consulte http://tinyurl.com/ydmz2su ), mas isso seria perfeito para um FPGA.

Aqui estão algumas referências de design.

Snell, John 1988 "Projeto de um oscilador digital que gerará até 256 ondas senoidais de baixa distorção em tempo real" Fundamentos da música por computador. Cambridge, Massachusetts: MIT Press

Moore, F. Richard 1988 "Ruído de pesquisa de tabela para osciladores digitais sinusoidais" Fundamentos da música por computador. Cambridge, Massachusetts: MIT Press


0

O que estou fazendo é fazer um pouco de CPU. É uma ótima maneira de cobrir todos os aspectos básicos.

Você abordará todos os conceitos básicos de um grande projeto em VHDL e será exposto a todos os tópicos principais do design de VHDL (relógios, entradas, saídas, lógica, barramentos e design seqüencial de forma mais proeminente), bem como muitos sistemas eletrônicos e de computadores principais. conceitos de design e arquitetura como registros, operações de dados, memória e aritmética do computador.

Você pode começar com apenas adição e subtração e, em seguida, adicionar mais funcionalidades à medida que for aprendendo, até chegar a um computador totalmente funcional (embora simples ... ou como eu prefiro chamá-lo de "retro"). Pelo menos, esse é o meu plano.

Além disso, ter seu próprio computador personalizado em um chip é simplesmente legal :) Como um Raspberry Pi de 16 bits: P

Outros projetos comuns de FPGA:

-Sintetizador de música

Gerador de efeitos -DSP

-MIDI controlador / interruptor

-Bitcoin miner

Emuladores de console de videogame

Escudos personalizados do Arduino

Processadores paralelos (muito úteis para certos problemas matemáticos nos quais os computadores convencionais não são bons)

-Robótica / sistemas de controle

- Aquisição de dados (poucos projetos de osciloscópios disponíveis para FPGAs, se você souber trabalhar com amplificadores operacionais)

O VHDL por si só não é terrivelmente complicado. A coisa mais importante a lembrar é que você está projetando um circuito digital eletrônico físico, não escrevendo um programa para um microcontrolador. Sua simulação não é um programa que será executado linha por linha, basicamente, portanto, não deixe a semelhança superficial com C enganar você, pois o VHDL é um paradigma muito diferente.

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.