Cómo crear tu primer programa VHDL: Hello World!
Al aprender un nuevo lenguaje de programación, siempre me gusta empezar por aprender a imprimir. Cuando dominas la salida de » Hello World!», sabes que tienes el medio ambiente funcionando. También le muestra el esqueleto básico del lenguaje, el código mínimo requerido para producir cualquier salida.
Puede estar pensando: pero VHDL es un lenguaje de descripción de hardware, ¿cómo puede generar cualquier texto? Necesitarías una pantalla conectada a una FPGA o algo así y todo tipo de lógica en el medio, y eso no sería simple en absoluto. Si bien todo esto es cierto, olvidémonos de FPGA y ASIC por un momento y centremos nuestra atención en el lenguaje VHDL.
Esta entrada de blog es parte de la serie de tutoriales básicos de VHDL.
VHDL se puede considerar como un lenguaje de programación paralelo, y por lo tanto podemos usar el enfoque de este programador para aprenderlo. Dado que usamos el lenguaje para describir circuitos digitales, la única forma en que podemos ejecutarlo en nuestro ordenador es mediante el uso de un simulador, y el simulador es definitivamente capaz de generar » ¡Hola Mundo!»a la pantalla.
Cómo instalar un simulador y editor VHDL gratis
Ejercicio
Este video tutorial le mostrará cómo crear su primer programa VHDL:
El código final que creamos:
entity T01_HelloWorldTb isend entity;architecture sim of T01_HelloWorldTb isbegin process is begin report "Hello World!"; wait; end process;end architecture;
La salida a la consola del simulador cuando pulsamos el botón ejecutar en ModelSim:
VSIM 2> run# ** Note: Hello World!# Time: 0 ns Iteration: 0 Instance: /t01_helloworld
Análisis
En las dos primeras líneas, declaramos la entidad. La entidad de un módulo declara sus entradas y salidas. Para que sea posible ejecutar un módulo en un simulador, no puede tener entradas o salidas. Por lo tanto, nuestro módulo no tiene nada más que una declaración de entidad vacía.
A continuación, declaramos la arquitectura del módulo. Mientras que la entidad es la interfaz de un módulo con el mundo exterior, la arquitectura es su implementación interna. Un módulo puede tener varias arquitecturas que se pueden usar con la misma entidad. No me preocuparía demasiado por estas cosas en este punto, ya que son características avanzadas de VHDL.
Dentro de la arquitectura, declaramos un proceso. Por ahora, podemos pensar en un proceso como un hilo en nuestro programa, donde las cosas suceden secuencialmente.
Dentro del proceso, imprimimos » Hello World!»usando la palabra clave report
. En la siguiente línea, hay un único wait;
. Cuando el simulador llegue a esta línea, no pasará nada más. El proceso esperará aquí para siempre.
Cuando simulamos este diseño en ModelSim, pudimos ver que » Hello World!»se imprimió en la salida de la consola. Después de eso, no pasó nada más.
Comida para llevar
- Puede pensar en un proceso como un hilo de programa
- La instrucción
report
imprime texto en la consola del simulador - La ejecución de un proceso esperará para siempre en una instrucción
wait;
Vaya al siguiente tutorial «