Tipos de Datos en VHDL (Data Types)

Juan Diego Cervantes Suarez

Boolean

Es un tipo enumerado de dos valores: false y true. Soporta operaciones lógicas y de comparación. En términos de números de bis es un escalar. Su definición es:

TYPE BOOLEAN IS (FALSE, TRUE);

Ejemplo:

SIGNAL ready: BOOLEAN; 

x <= “111” WHEN ready ELSE “000”; 

El valor de x cambia de “000” a “111” cuando ready es igual a TRUE


Std_logic/std_ulogic y Std_(u)logic_vector

Los tipos de datos estándar-lógico (standard-logic) son STD_LOGIC y STD_LOGIC_VECTOR. Ambos están definidos en la paquete std_logic_1164. STD_LOGIC y STD_LOGIC_VECTOR son el estándar en la industria. La definición de STD_LOGIC está en función de STD_ULOGIC. El primero es un tipo de dato “resuelto” y el último es “no resuelto”. Su definición es: 

TYPE STD_ULOGIC IS (‘U’, ‘X’, ‘0’, ‘1’, ‘Z’, ‘W’, ‘L’, ‘H’, ‘-’); 

TYPE STD_LOGIC IS resolved STD_ULOGIC;

Unsigned - Signed

Los tipos de datos sin singo (UNSIGNED) y con signo (SIGNED) están definidos en los paquetes numeric_std y std_logic_arith. Estos paquetes son parcialmente equivalentes, por lo tanto, solo uno de ellos puede declararse en el código. 

El rango para el tipo de dato sin signo es de 0 a 2N-1 (limitado a INTEGER’HIGH), donde N es el número de bits. 

El rango para el tipo de dato con signo es de -2 N-1 a 2N-1 -1 (limitado entre INTEGER’LOW y INTEGER’HIGH), y usa la representación en complemento a 2.

Desafortunadamente, los nombre elegidos para los paquetes std_logic_unsigned y std_logic_signed pueden causar confusión. Estos paquetes únicamente definen los operadores (+, -, *, …) sin signo o con singo para STD_LOGIC_VECTOR, y no los tipos de datos SIGNED y UNSIGNED. 


Integer

Soporta operaciones aritméticas y de comparación. Su rango por defecto va de –(231-1) a (231-1). Su definición es:

TYPE INTEGER IS RANGE implementation_defined; 

TYPE INTEGER IS -2147483647 a 2147483647;

Los limites son referidos como INTERGER´LOW (limite inferior) y INTEGER´HIGH (limite superior).Es importante especificar el rango cada vez que se usa este tipo de dato, de lo contrario el sintetizador emplea 32 bits para representarlo.

 Ejemplo

SIGNAL a: INTEGER RANGE 0 TO 15; -- 4 bits 

SIGNAL b: INTEGER RANGE -15 TO 15; -- 5 bits

SIGNAL x: INTENGER RANGE -31 TO 31; -- 6 bits 

X <= a + b;



REFERENCIAS

Tipos de datos en VHDL. (s. f.). .::BIENVENIDO A MATPIC - LA WEB DE MATLAB, SIMULINK, VHDL, FPGA::. http://www.matpic.com/esp/descargas/vhdl_beamer/Clase_3_Tipos%20de%20datos%20en%20VHDL.pdf

admin. (s. f.). Tipos de datos vhdl: algunas clasificaciones y el tipo enumerado - Noticias 2021. Electronics council. https://spa.answersexpress.com/vhdl-data-types-some-classifications-54312


Comentarios

Entradas populares de este blog

Software para programar amiba2 (INTegra)

Amiba 2

¿QUÉ ES UN USART?