Tutoriales de VHDL: 13 conceptos importantes

En este tutorial de VHDL, discutiremos algunos de los conceptos básicos relacionados con la tecnología VHDL y algunos ejemplos de codificación. El tutorial de VHDL está segmentado de la siguiente manera:

TEMAS DE DISCUSIÓN

A. ¿Qué es VHDL?

B. Historia y estandarización

C. Procedimientos de diseño de VHDL

D. Algunas reglas e información básica sobre VHDL

E. Sintaxis y algunos conceptos importantes para escribir códigos VHDL

Tutorial de simuladores VHDL para VHDL

VHDL || ¿Qué es VHDL?

La forma completa de VHDL significa Lenguaje de descripción de hardware de circuito integrado de muy alta velocidad (VHSIC-HDL).

Como sugiere el nombre, VHDL es un lenguaje de descripción de hardware o un tipo especial de lenguaje de programación que describe las implementaciones de hardware de sistemas y circuitos digitales. Es un lenguaje fuertemente tipado y se debe recordar que no es un lenguaje de programación.  

Historia y estandarización

El Departamento de Defensa de EE.UU. tiene una contribución significativa al campo tecnológico moderno. Ha dado a luz demasiadas grandes ideas e innovaciones. US Defense también desarrolló VHDL en el año 1983. Fue desarrollado para la documentación del comportamiento de los circuitos integrados específicos de la aplicación.

Posteriormente, se implementaron algunas ideas de los lenguajes de programación Ada. VHDL se estandarizó por primera vez en el año 1987. Se agregó varios tipos de datos de varios tipos, incluidas cadenas y numéricos y lógicos.

Normalización

VHDL o para el lenguaje de descripción de hardware de circuito integrado de muy alta velocidad (VHSIC-HDL) está estandarizado por el estándar IEEE 1076. Se está actualizando desde su nacimiento y ha sufrido muchas revisiones. Veamos algunas de las revisiones estándar y actualizaciones importantes.

RevisionesActualizaciones
IEEE 1076-1987Revisión y estandarización de US Defense.
IEEE 1076-1993Surgió con la mejor versión y es la versión más utilizada.
IEC 61691-1-1-1: 2004IEC adoptó la versión IEEE 1076-2002
IEEE 1076-2008Actualizado con algunos cambios importantes como: Introducción de genéricos en paquetes y uso de nombres externos
IEC 61691-1-1-1: 2011IEC adoptó la versión IEEE 1076-2008
Verifique la estandarización esta página, Tabla de tutoriales de VHDL - 1

Diseño de VHDL

El diseño VHDL tiene algunas unidades de diseño. Se conocen como Entidad, Arquitectura, Configuración y Paquete.

Entidad: La entidad define vistas externas de un modelo que es un símbolo.

arquitectura: La arquitectura define la funcionalidad de un modelo que es esquemático.

Configuración: La configuración se utiliza para asociar la arquitectura con una entidad.

Ruta El paquete es la recopilación de información a la que pueden hacer referencia los módulos VHDL. Un paquete VHDL consta de dos partes. Son: declaración del paquete y cuerpo del paquete.

1200px Vhdl firmado sumador source.svg
Un código básico diseñado en VHDL Tutorial, Image Credit - Vhdl_signed_adder.pngRevRagnarok obra derivada: bernardo ladenthinFuente de sumador firmado vhdlCC BY-SA 3.0

Declaración de entidad

La estructura general de la declaración de entidad se da a continuación:

ENTIDAD < nombre de la entidad > IS

          Declaraciones genéricas

          Declaraciones de puerto

ENTIDAD FINAL <nombre de la entidad>;

  • puede ser alfabético / numérico o alfanumérico.
  • Las declaraciones genéricas sirven para pasar información a un modelo.
  • Las declaraciones de puerto sirven para describir los pines de entrada y salida.
  • Una entidad se puede cerrar de varias formas.
    • ENTIDAD FINAL <nombre de la entidad>;
    • ENTIDAD FINAL;
    • FIN;

Declaraciones portuarias

A continuación se proporciona una estructura general para las declaraciones de puertos:

ENTIDAD < nombre de la entidad > IS

          Declaraciones genéricas

          - Declaraciones portuarias:

PORT (

          SEÑAL CLK, CLR: EN BIT;

          q: FUERA BIT

          - tenga en cuenta que no hay punto y coma en la última línea de declaraciones.

          );

ENTIDAD FINAL <nombre de la entidad>;

La estructura de la declaración del puerto: nombre del objeto : ;

  • Clase: La clase es lo que se le puede hacer a un objeto. Aquí la clase es señal. Un punto para recordar que la SEÑAL no se escribe mientras se escribe el programa; más bien, se asume y no se requiere.
  • Nombre del objeto: Es el identificador.
  • Modo: Especifica la dirección.

EN - Entrada

AFUERA - Salida

ENTRADA - Bidireccional

BUFFER - Salida con retroalimentación interna

  • Tipo: El tipo especifica lo que se puede contener dentro de un objeto.

Declaraciones genéricas

A continuación se proporciona una estructura general de declaraciones genéricas:

ENTIDADnombre_entidad> IS

          GENÉRICO (

                    MEJORA tplh, tphl: tiempo := 5 ns;

                    tphz, tplz: TIME := 3ns;

                    valor_predeterminado: INTEGER: = 1;

                    cnt_dir: STRING := "ARRIBA"

                    - tenga en cuenta que no hay punto y coma en la última línea de declaraciones.

                    );

          Declaraciones de puerto

          ENTIDAD FINALnombre_entidad>;

  • Los valores genéricos se pueden sobrescribir durante la compilación.
  • Genérico debe poseer la tenacidad de una constante durante la compilación de un programa.  

Tenga en cuenta que se asume la palabra clave CONSTANT y no es necesaria para escribir.

Arquitectura

  • Esquema de analogía: El esquema de analogía proporciona la descripción de la funcionalidad de un modelo y el tiempo asociado a él.  
  • La arquitectura de un modelo debe estar asociada a una ENTIDAD.
  • Una entidad puede tener muchas arquitecturas asociadas.
  • Las declaraciones de arquitectura se ejecutan al mismo tiempo.
  • Algunos estilos de arquitectura -
  • Comportamiento: el modelo de comportamiento describe cómo operan los diseños.

RTL: RTL describe cómo se pueden implementar los diseños usando registros.

Funcional: no incluye cronometraje.

  • Estructural: Implementación de estructura a nivel de puerta.
  • Flujo de datos: Implementación de la tabla de verdad.
  • La arquitectura se termina con -
    • ARQUITECTURA FINAL ;
    • ARQUITECTURA FINAL
    • FIN;

Una estructura general de la escritura de una arquitectura:

ARQUITECTURA <identificador> OF <identificador_entidad> IS

          SEÑAL señal_1: INTEGER: = 1;

          MEJORA cnst: = BOOLEAN: = verdadero;

          TIPO proceso ES (W X Y Z);

          - Declaraciones de atributos

          - Especificaciones de atributos

          - Declaraciones de subprogramas

          - Cuerpo del subprograma

EMPEZAR

          Declaraciones de proceso

          Llamadas procedimentales concurrentes

          Asignación de señales

          Generar declaraciones

ARQUITECTURA FINAL <identificador>;

IMG18 1024x576 1
Esquema RTL de una puerta AND, del tutorial de VHDL

Configuración     

Como se discutió, un cLa configuración se utiliza para asociar la arquitectura con una entidad. La asociación o combinación es necesaria porque una ENTIDAD no puede funcionar hasta que la arquitectura esté asociada a ella. A continuación se da una estructura general de configuración.

CONFIGURACIÓN  < identificador > OF < nombre de la entidad > IS

          PARA < nombre_arquitectura >

                    PARA < nombre de instancia >: Nombre del componente > USO < entidad > ( arquitectura >)

                    FIN PARA;

                    PARA < nombre de instancia >: Nombre del componente > USO < nombre_configuración >

                    FIN PARA;

          FIN PARA;

FIN DE CONFIGURACIÓN < identificador >;

Paquetes

Los paquetes VHDL son una unidad completa de un sistema completo. Es el principal objetivo de la implementación de VHDL. Un paquete tiene dos partes. Como se dijo anteriormente, las declaraciones y el cuerpo del paquete forman un paquete completo.

VHDL ofrece dos paquetes integrados.

Algunas reglas e información básica sobre el tutorial de VHDL

Discutamos acerca de echar un vistazo a información básica antes de sumergirnos para explorar el tutorial de VHDL.

1. Palabras clave reservadas: VHDL tiene algunas palabras clave reservadas (que no se pueden usar para declarar una variable).

2 partes: VHDL tiene dos pasos o partes para la creación de un modelo. Uno es simulación y el otro es síntesis y simulación.

3. Lenguaje sensible a mayúsculas y minúsculas: VHDL no es un lenguaje sensible a mayúsculas y minúsculas (en su mayor parte).

4. Comentando: Para comentar una declaración en el editor de código VHDL, comience la oración con -, por ejemplo:

- Este es un comentario en VHDL.

5. Terminación: Los códigos VHDL y cada una de las líneas de códigos se terminan con un punto y coma (cuando sea necesario). 

6. Sensibilidad espacial: VHDL no es sensible a los espacios en blanco.

Sintaxis y algunos conceptos importantes del tutorial VHDL para escribir códigos VHDL

  1. Matriz con ejemplos
  2. Proceso con ejemplos
  3. IF - THEN - Implementación de ELSIF con ejemplos.
  4. Declaración CASE
  5. EN BUCLE

A. Matriz

Array almacena valor. Es un tipo de datos definido por el usuario para almacenar valor. Una matriz puede contener variables de tipo señal, constantes.

A continuación se proporciona una estructura general para declarar una matriz:

TIPO nombre_matriz IS FORMACIÓN (rango) OF tipo de datos;

Para un ejemplo,

TIPO lambdageeks ES ARRAY (0 a 9) OF std_logic_vector (0 HASTA 9);

B. Declaración del proceso

El proceso es una declaración simultánea y sincronizada. Introduce las declaraciones cronológicas. Varios procesos se ejecutan en paralelo si el modelo lo necesita.

Un proceso consta de dos partes. Son la ejecución del proceso y luego esperan la siguiente condición.

SINTAXIS:

lista_sensibilidad

          declaraciones

comenzar

          declaraciones_ cronológicas;

proceso finalizado;

C. SI - ENTONCES - Implementación de ELSIF

Estas declaraciones se utilizan para implementar una condición y para su resultado.

Una condición if puede tener un número infinito de ramas según el requisito. También es posible un número considerable de condiciones elsif. Pero, en un bucle if, solo puede haber una condición else. Un bucle if termina con la instrucción end if. Si se da la condición es verdadera, entonces entrará en el ciclo y ejecutará la declaración. Si falla, vaya a la declaración else o elsif.

La sintaxis de las declaraciones se da a continuación.

SINTAXIS

          if expresión_booleana_condicional luego

                    declaración1

          elsi expresión_booleana_condicional luego

                    declaración2

          . . .

          más

                    declaración3

          final if;

D. Declaración CASE

La instrucción de caso descubre qué instrucción se ejecutará. Una declaración de caso también se puede bifurcar como bucles IF-ELSE.

SINTAXIS

[etiqueta]: case < expresión condicional > is

          cuando < manera?> =>

                    declaración1

          cuando < manera?> =>

                    declaración2

          ...

          cuando < manera?> =>

                    ambiental

final case [etiqueta];

E. Bucle FOR

Un bucle for es una ejecución continua de declaraciones de acuerdo con las condiciones delimitadas.

Para cada ciclo FOR, necesitamos un iterador que realizará las operaciones en el ciclo for a. También se conoce como identificador. Es un número entero por defecto y no es necesario declarar el iterador. Es uno de los bucles más utilizados para realizar modelos complejos. Es más familiar que los bucles while.

SINTAXIS

[etiqueta]: para iterador in distancia loops

          Declaración1

          Declaración2

          ...

          Declaración n

bucle final [etiqueta];

Tutorial de simuladores VHDL para VHDL

Algunos de los famosos simuladores VHDL utilizados para la implementación de VHDL se enumeran a continuación.

  1. Xilinx vivo: El simulador más famoso de VHDL es Xilinx Vivado. Xilinx proporciona dispositivos lógicos programables. Usaremos este simulador para la siguiente parte del tutorial de VHDL. 
  2. Cadencia incisiva: La versión anterior se conocía como NC-VHDL.
  3. Símil VHDL: Symphony EDA lo desarrolla. Es gratis para los consumidores. 
  4. GHDL: Uno de los famosos simuladores VHDL gratuitos. 
  5. Barco La organización Freerangefactory desarrolló el simulador. 
  6. NVC: Nick Gasson desarrolló el compilador VHDL de código abierto. 
  7. Zona de juegos EDA: Otra versión gratuita basada en navegador web. 
  8. Sinopsis VCS-MX.
Simuladores para VHDL, usaremos XILINX para nuestro Crédito de imagen de tutorial de VHDL - ™ / ®Xilinx, Inc., Logotipo de Xilinx, marcado como dominio público, más detalles sobre Wikimedia Commons

Realice su primer proyecto usando VHDL. Consulte la siguiente parte del tutorial de VHDL.

Para obtener más artículos relacionados con la electrónica, haga clic en aquí!

Deja un comentario