¿Qué es VHDL?
- VHDL es una forma abreviada del lenguaje de descripción de hardware VHSlC, donde VHSIC significa circuitos integrados de muy alta velocidad.
- Es un lenguaje de descripción de hardware: significa que describe el comportamiento de un circuito digital y también se puede utilizar para derivar o implementar un circuito/sistema de hardware digital.
- Puede utilizarse para síntesis de circuitos digitales y también para simulación.
- Se utiliza para construir sistemas/circuitos digitales utilizando dispositivos lógicos programables como CPLD (dispositivo lógico programable complejo) o FPGA (matriz de puerta programable en campo).
- El programa (código) VHDL se utiliza para implementar un circuito digital dentro de CPLD/FPGA, o se puede utilizar para fabricar ASIC (circuito integrado de aplicación específica).
- Es muy útil en el desarrollo de microprocesadores o microcontroladores sofisticados y sofisticados como ASIP (Procesador de instrucciones específicas de aplicación) o PSoC (Sistema programable en chip)
Ahora, antes de entrar en más detalles sobre VHDL, veamos primero cómo y por qué era necesario VHDL.
¿Por qué VHDL?
- En la década de 1980, el Departamento de Defensa de EE. UU. inició el programa VHSIC.
- Diferentes empresas de diseño de hardware comenzaron a desarrollar sus circuitos integrados con su propio HDL. Todas las empresas tenían su propio HDL diferente.
- Entonces el problema es que todas estas diferentes empresas no pueden intercambiar sus códigos y diseños con otros.
- Además, todas las empresas proporcionan el diseño del chip al Departamento de Defensa con diferentes HDL.
- Por lo tanto, existía la necesidad de un lenguaje de descripción de hardware estandarizado para el diseño, documentación y verificación de circuitos/sistemas digitales.
Ventajas de VHDL
- Es independiente del proveedor.
- es portatil
- es reutilizable
- Admite el diseño jerárquico: se puede modelar todo un sistema grande y complejo como una interconexión de componentes pequeños y, nuevamente, los componentes se pueden modelar aún más como una interconexión de subcomponentes.
- Todas las instrucciones del programa VHDL se ejecutan simultáneamente (a menos y hasta que las instrucciones se coloquen dentro de un procedimiento, función o proceso)
- Es legible tanto por humanos como por máquinas.
- Es estándar IEEE y ANSI
- Admite diferentes metodologías de diseño como top-down, bottom-up, mix, etc.
- Se puede utilizar para diseñar circuitos digitales combinacionales, secuenciales o mixtos utilizando tres métodos diferentes 1) flujo de datos 2) conductual 3) estructural
Breve historia del origen del VHDL
- En 1985, IBM, TEXAS INST, desarrolló la primera versión de VHDL 7.2. e Intermatrix bajo un contrato del Departamento de Defensa
- En 1987, IEEE lo estandarizó con el estándar IEEE 1076. Después de eso, se proporcionó el nuevo estándar IEEE 1164 a VHDL, que se usa en todas partes hoy.
- ANSI también reconoce VHDL, y el manual de referencia del estándar VHDL está disponible en IEEE, que tiene una descripción oficial de este VHDL.
Ahora, después de obtener suficiente información sobre VHDL, pasemos al diseño de circuitos digitales usando VHDL.
Una vez más, antes de continuar, les aconsejo que lean dos libros muy buenos sobre VHDL.
- Diseño de circuitos usando VHDL por VA Pedroni
- Una introducción a VHDL por J Bhaskar
Estos libros proporcionarán información completa sobre VHDL y le servirán como compañeros en su viaje para aprender VHDL. La información proporcionada anteriormente también está extraída de estos dos libros. También le recomiendo que consulte continuamente estos libros a medida que avanza en esta serie de tutoriales de VHDL.
Así que creo que ahora todos ustedes están muy emocionados de aprender VHDL. Primero veamos cómo diseñar un circuito digital usando VHDL: " ¿Cuál es el flujo de diseño de VHDL?"
Flujo de diseño VHDL
- El flujo de diseño de VHDL comienza con la escritura del programa VHDL. Varias empresas fabricantes como XILINX, Altera, etc. Proporcionar sus propias herramientas de desarrollo de software como XILINX ISE, Altera Quartus, etc. En este código VHDL, el circuito se describe en RTL (Nivel de transferencia de resistencia)
- Este código VHDL se compila y genera Netlist en el nivel de puerta. El compilador convierte código VHDL de alto nivel a RTL para nivel de puerta
- Esta Netlist se optimiza aún más para obtener una Netlist optimizada nuevamente en el nivel de puerta. La optimización se realiza para obtener una mejor velocidad y menos espacio. La simulación del proyecto se realiza en esta etapa.
- Finalmente, se implementa un dispositivo físico en CPLD/FPGA, o se prepara la MÁSCARA final para ASIC a partir de este software de ruta y Netlist optimizado para la ubicación (instalador). una vez más el dispositivo final puede ser simulado y verificado
Este es el flujo de diseño de circuitos digitales utilizando VHDL. Ahora bien, dado que VHDL también es un tipo de lenguaje de programación, también tiene su estructura de programa (similar a otros lenguajes de programación como la estructura de programa C). Entonces, como siguiente paso, aprendamos cuál es la estructura del programa VHDL.
Estructura del programa VHDL
- Todos los programas VHDL constan de al menos dos componentes: entidad y arquitectura.
- Puede tener componentes adicionales como configuración, declaración de paquete, cuerpo, etc. según los requisitos.
La estructura del programa VHDL es la siguiente:
Declaración de la biblioteca:
- La biblioteca contiene todo el código de uso frecuente. Esto nos permitirá reutilizarlos una y otra vez. También esto se puede compartir con otros diseños.
- Comienza con la palabra clave BIBLIOTECA seguida del nombre de la biblioteca.
- Hay tres bibliotecas comúnmente utilizadas en todos los códigos VHDL.
- IEEE: especifica un sistema lógico multinivel
- std: biblioteca de recursos para el entorno de diseño VHDL
- trabajo: se utiliza para guardar el trabajo de nuestro proyecto y el archivo de programa (.vhd)
- Sin embargo, en el código del programa, solo necesitamos declarar la biblioteca IEEE porque las otras dos bibliotecas son bibliotecas estándar.
- Ahora, para agregar paquetes de biblioteca y sus partes, se usa la palabra clave USE con el nombre de la biblioteca, los paquetes de la biblioteca y las partes del paquete. Por ejemplo, en la biblioteca IEEE, el paquete es std_logic_1164 y para agregar su parte completa podemos escribir
BIBLIOTECA IEEE
UTILICE ieee.std_logic_1164.all
- Por lo tanto, todos los programas VHDL comienzan con las dos declaraciones anteriores para la declaración de biblioteca.
Declaración de entidad:
- La entidad define conexiones de entrada-salida de circuitos digitales con las que puede interactuar con otros componentes/circuitos.
- Indica el número de entradas dadas al circuito y el número de salidas tomadas del circuito.
- Además, declara cualquier señal intermedia utilizada en el propio circuito.
- La declaración de entidad comienza con la palabra clave ENTITY. El usuario debe proporcionar el nombre deseado para la entidad, generalmente relacionado con un circuito que se está diseñando, como " mux", " decodificador", " sumador", " contador" , etc. (La regla general para cualquier programa VHDL es que el nombre del archivo del programa debe ser el mismo que el nombre de la entidad)
- Dentro de la entidad, los pines de entrada y salida de un circuito se declaran utilizando la palabra clave PORT.
- PORT (significa pines de interfaz) se declaran con port_name, port_mode y port_type
- port_name: es un nombre definido por el usuario del pin de entrada-salida
- port_mode: hay cuatro tipos de modo de puerto IN, OUT, INOUT y BUFFER. IN indica un pin de entrada que puede ser de solo lectura. OUT indica un pin de salida y es de solo escritura. Ambos pines son unidireccionales. El pin INOUT es bidireccional y se puede leer y escribir. BUFFER se utiliza para salida intermedia.
- tipo_puerto: puede ser BIT, BIT_VECTOR, STD_LOGIC, etc.
- Después de declarar todas las interfaces, la declaración de entidad termina con la palabra clave END seguida del nombre de la entidad.
- Veamos una entidad de ejemplo para una puerta AND de dos entradas.
- De manera similar, podemos escribir una entidad para medio sumador como
Arquitectura:
- La arquitectura declara las funcionalidades del circuito digital.
- Proporciona detalles internos de una entidad, es decir, cómo se interconectan las entradas y salidas.
- Describe el comportamiento del circuito, significa cómo el circuito genera la salida requerida a partir de entradas dadas.
- La declaración de arquitectura comienza con la palabra clave ARQUITECTURA seguida de nombre_arquitectura y nombre_entidad
- La palabra clave BEGIN indica el comienzo del cuerpo de la arquitectura. El cuerpo incluye instrucciones secuenciales o simultáneas que describen la funcionalidad del circuito.
- El cuerpo de la arquitectura termina con la palabra clave END seguida de nombre_arquitectura.
- Aquí está la arquitectura de 2 entradas Y puertas (la entidad se proporciona arriba).
- De manera similar, escribamos una arquitectura para medio sumador.
- Hay tres estilos de modelado diferentes para la arquitectura corporal.
- Estilo de flujo de datos: en este estilo de modelado, el circuito se describe mediante instrucciones simultáneas.
- Estilo de comportamiento: en este estilo de modelado, el circuito se describe mediante instrucciones secuenciales.
- Estilo estructural: en este estilo de modelado, el circuito se describe utilizando diferentes componentes interconectados.
- Puede haber un estilo de estilo más que sea un estilo de estilo mixto: una combinación de dos o los tres estilos mencionados anteriormente.
Esto completa los fundamentos de VHDL, su flujo de diseño y estructura del programa. En el próximo tutorial veremos diferentes programas VHDL para circuitos digitales y diferentes estilos de modelado para programas VHDL.