Proyecto para aprender VHDL


16

Soy un estudiante de EE y puedo escribir programas [al menos simples] en más idiomas de los que tengo en los dedos. Acabo de empezar a aprender VHDL y me preguntaba qué sería un buen proyecto para conocer realmente el idioma y las herramientas relevantes. Tengo problemas para encontrar uno porque es un estilo de programación realmente diferente para mí.

He hecho cosas simples como sumadores, pero estoy buscando un proyecto a más largo plazo (es decir, un mes más o menos).

En caso de que sea relevante, tengo Xilinx Webpack y una placa Digilent Spartan3.

Respuestas:


7

Mi proyecto FPGA "hello world" fue un controlador de matriz de LED con PWM y entrada de flujo en serie. El resultado final fue bueno ( http://lbw.axe-man.org/led1.wmv ) pero admito que hice una parte con el editor de esquemas Altera Quartus para ver cómo se describían las partes de VHDL.


esta es una gran idea; Acabo de recoger una matriz sin controlador de 16x16 y un controlador sería genial. buen video!
penjuin

Bonito video! Y ese editor esquemático está ahí para ser utilizado.
Mónica

10

Como parece interesado en la programación, puede construir un microprocesador simple.


Muy recomendable. Se termina por aprender no sólo sobre el lado FPGA y VHDL de las cosas, sino también cómo los procesadores de trabajo, lo que se necesita en el camino de las herramientas de desarrollo para apoyar un procesador, etc.
Chris Stratton


4

Disfruté trabajando con Hans en hardhack este año en el proyecto Rekonstrukt para construir un sintetizador básico en un FPGA. Los proyectos de LED también son buenos, pero no hay nada como conectar el FPGA a un estéreo. No se está construyendo desde cero, como lo haría un proyecto LED, porque el proyecto se basa en un procesador de núcleo abierto que admite. Entonces, al principio está aprendiendo cómo cargar básicamente el FPGA con el proyecto, luego puede jugar con los sobres en FORTH. Pero cuando comienza a aprender más acerca de los aspectos internos de FPGA es cuando desea agregar funcionalidad, que luego requiere profundizar en el VHDL.


2

Un proyecto que disfruté fue implementar el juego Milton Bradley Simon en un FPGA.

En mi universidad, nuestra clase de EDA usa la misma pizarra que mencionas. Algunos de los proyectos implementados incluyen:

  • Procesamiento de imagen: filtro mediano, estiramiento de histograma, detección de bordes
  • Criptografía: AES, varios algoritmos de hashing, etc.
  • Comunicación: Ethernet, USB, I2C, etc.
  • Juegos: Pong, invasores del espacio, etc.

Eso puede darte algunas ideas.

Apoyaré la idea de opencores.org así como también implementaré tu propio microprocesador. Dado que tiene un FPGA Xilinx, también podría considerar hacer algo con microblaze o picoblaze.

Editar: formateo.


1

Escribí el código vhdl para xilinx virtex core hace algún tiempo. fue una implementación de despertador. Esto es lo que hice:

  • Lea mucho a través del manual vhdl: ahora tendría que revisarlo, pero lo encontré bastante sencillo y fácil de usar hdl :-)
  • Se utilizó el paquete xilinx (compilador, sintetizador) para obtener el flujo de bits
  • Subió los flujos de bits usando jtag

Enjuagado, repetido 1-3. Señalaría que la generación de flujo de bits está muy integrada en el IDE de Xilinx. Solo tiene que tener un conjunto claro de lógica para implementar en HDL; todo lo demás lo hace el IDE.


1

Oscilador controlado numéricamente sería divertido. Acabo de hacer un diseño con mi placa compatible con Arduino (ver http://tinyurl.com/ydmz2su ) pero esto sería perfecto para un FPGA.

Aquí hay un par de referencias de diseño.

Snell, John 1988 "Diseño de un oscilador digital que generará hasta 256 ondas sinusoidales de baja distorsión en tiempo real" Fundamentos de la música por computadora. Cambridge, Massachusetts: MIT Press

Moore, F. Richard 1988 "Ruido de búsqueda de tabla para osciladores digitales sinusoidales" Fundamentos de la música por computadora. Cambridge, Massachusetts: MIT Press


0

Lo que estoy haciendo es hacer un poco de CPU. Es una buena forma redondeada para cubrir todos los conceptos básicos.

Cubrirá todos los conceptos básicos de un gran proyecto en VHDL y estará expuesto a todos los temas centrales en el diseño de VHDL (relojes, entradas, salidas, lógica, buses y diseño secuencial de manera más destacada), así como a muchos equipos electrónicos y de computadora centrales. conceptos de diseño y arquitectura como registros, operaciones de datos, memoria y aritmética informática.

Puede comenzar con solo sumar y restar y luego agregar más funcionalidades a medida que aprende, hasta llegar a una computadora completamente funcional (aunque simple ... o como prefiero llamarla "retro"). Al menos, ese es mi plan.

Además, tener tu propia computadora personalizada en un chip es simplemente genial :) Como un Raspberry Pi de 16 bits: P

Otros proyectos comunes de FPGA:

-Sintetizador de música

-Generador de efectos DSP

-Midi controlador / interruptor

-Bitcoin minero

-Emuladores de consola de videojuegos

Escudos personalizados de Arduino

-Procesadores paralelos (muy útiles para ciertos problemas matemáticos en los que las computadoras convencionales no son excelentes)

-Robótica / sistemas de control

-Adquisición de datos (algunos diseños de osciloscopio disponibles para FPGA si sabes cómo trabajar con amplificadores operacionales)

VHDL por sí solo no es terriblemente complicado. Lo más importante para recordar es que está diseñando un circuito digital electrónico físico, no escribiendo un programa para un microcontrolador. Su simulación no es un programa que vaya a ejecutarse línea por línea, básicamente, así que no deje que la similitud superficial con C lo engañe, VHDL es un paradigma muy diferente.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.