Está en la página 1de 6

Principales caractersticas VHDL

VHDL significa VHSIC Hardware lenguaje de descripcin. VHSIC


(Muy alta velocidad Circuitos integrados) era un programa de los EE.UU.
Departamento de Defensa a principios de los 80.
Adoptado como una descripcin de la herramienta estndar por el Institute of Electrical e
Ingenieros Electrnicos (IEEE).
Potente lenguaje de descripcin, pero muy riguroso y exigente desde el punto de vista formal.
VHDL describe sistemas digitales, por lo que no es una programacin idioma, es decir, no es una
serie de instrucciones que se ejecutan uno despus de la otra.
El foco principal en VHDL para sntesis.
Conceptos bsicos de VHDL
Como cualquier lenguaje, VHDL gestiona los datos a travs de los tipos y operadores.
Los datos se almacenan en los objetos que contienen valores de un tipo dado. La la mayora de los
objetos comunes son seales, variables y constantes.
Todos los objetos deben ser declaradas antes de su uso.
Un tipo incluye todos los valores de datos posibles, adems de los operadores asociados.
VHDL tiene un conjunto reducido de predefinidos (o estndar) y los tipos de operadores,
almacenados en bibliotecas y paquetes.
Las bibliotecas y los paquetes deben ser declarados y "hacer visibles" antes de su uso en las
descripciones VHDL. La nica excepcin es un defecto biblioteca predefinida llamada std.
Los valores de datos son de un conjunto finito.
Tipos predefinidos ms frecuentes:
Boolean. Desde la biblioteca std. Valores: false, true.
Bit. Desde la biblioteca std. Valores: '0 ', '1'.
Std_logic. Se debe declarar previamente (biblioteca ieee,
std_logic_1164 paquete). Se permite el modelado realista de la tecnologa digital seales a travs
de 9 posibles valores


Los tipos numricos
Los ms comunes son naturales, enteros, reales, ...
Integer es de la biblioteca estndar. Los valores se codifican en dos de se complementan con 32
bits, por lo que las herramientas de sntesis pueden generar grandes las redes. Para minimizar el
tamao, objetos de enteros con rangos reducidos son utilizada (es decir, de 0 a 7 se sintetiza con
3 bits).

Los tipos de matriz conjunto n-dimensional de elementos del mismo tipo.
Los tipos de matriz 1D predefinido ms comunes son bit_vector (std biblioteca) y std_logic_vector
(biblioteca IEEE, ieee.std_logic_1164 paquete).
Las cadenas se definen como conjuntos de caracteres.
Una variable contiene un solo valor. A diferencia de las seales, las asignaciones de variables en
vigor inmediatamente.
Las variables slo se pueden declarar y utilizar dentro de los estados del proceso.
Operadores de asignacin asignan valores de expresin a los objetos.
: = Para las constantes y variables <= para seales
= - Igual a / = - No es igual a
> - Ms de> = - Igual o ms de
<- Menor que <= - Igual o menos de
Los operadores de comparacin dan resultados booleanos (true o false).
El operador de concatenacin (&) se utiliza para concatenar las matrices.
No se puede utilizar en el lado izquierdo de asignaciones.
Operadores lgicos son o, ni, y, NAND, XOR, NOT.
Ellos definen uno a uno las operaciones cuando se aplica a la matriz objetos.
Al contrario que en el lgebra de Boole, en VHDL primaca de la lgica operaciones va de izquierda
a derecha (prioridad ms alta) a derecha (la ms baja prioridad).
Por operadores aritmticos defecto slo trabajar con tipos numricos.

Aunque std_logic y std_logic_vector no son tipos numricos, que puede hacer operaciones
aritmticas con ellos hacer visible la ieee biblioteca y ...
... El paquete std_logic_unsigned para positivo sin signo (es decir binarios) operaciones.
... El paquete std_logic_signed de firma (dos de complementar las operaciones).

Un sistema o un subsistema descrito en VHDL es una entidad de diseo, que es la unidad principal
de la abstraccin.
Una entidad de diseo se compone de varias unidades de diseo diferentes:


Declaracin Entidad: describe las seales de interfaz entre el diseo entidad y el mundo externo.
Se incluye la declaracin de puertos
Entity
Un puerto es una seal que se conecta la entidad con su entorno externo.

Tres tipos de puertos:
in (entrada): Slo se puede leer.
out (salida): Slo se puede escribir.
inout (bidireccional): puede ser ledo y escrito.

La primera seccin es la declaracin de los tipos, objetos y componentes usados en la descripcin
lgica.
La seccin concurrent_statements describe la estructura interna o la operacin de la entidad.
Flujo de datos, estructurales y de comportamiento estilos de modelado son compatibles.
Todas las declaraciones a futuro dentro de la arquitectura son concurrentes. Por lo tanto,
declaraciones orden es irrelevante.
Los paquetes pueden ser agrupados y almacenados como bibliotecas
de diseo.
Para usarlos en las entidades de diseo, libreras y paquetes debe
ser
declarado previamente, de acuerdo con la siguiente sintaxis

library library_name;
use library_name.package_name.item;

elemento indica lo que los componentes del paquete son para ser utilizado. Cuando la opcin est
reemplazado por todos, todos los componentes del paquete son importados.
Despus de la compilacin, formas intermedias de todas las unidades de diseo se almacenan en
un trabajo de biblioteca con nombre, que es siempre visible.
Hay algunas bibliotecas VHDL estndar (ver siguiente diapositiva). std es siempre visible, pero ieee
debe ser importado y hecho visible.
Std : standard : Tipos bsicos de VHDL (booleanos, bits, bit_vector, carcter, cadena, entero, real,
tiempo, ...), adems de los operadores asociados.
Std : textio : Otros tipos, como la lnea y el texto y los procedimientos para leer y escribir archivos
de texto.
Work : Biblioteca por omisin que contiene todas las entidades de diseo de usuario despus
compilacin.
Ieee : std_logic_1164 : std_logic y tipos STD_LOGIC_VECTOR ms bsica
operadores asociados.
std_logic_arith : Con y sin signo tipos ms aritmtico asociado
operadores.
std_logic_signed : Operaciones artihmetic Firmado, funciones de
conversin y operadores de comparacin para el tipo
std_logic_vector.
std_logic_unsigned : Operaciones artihmetic Unsigned, funciones de
conversin y operadores de comparacin para el tipo
std_logic_vector.
std_logic_textio : Tipos y procedimientos para leer y escribir
archivos de datos para la std_logic y STD_LOGIC_VECTOR tipos.
El flujo de datos a travs de una entidad se expresa principalmente mediante el uso de seales y
la seal simultnea sentencias de asignacin.
Instrucciones de asignacin concurrentes se ejecutan cada vez que eventos ocurrir en las seales
que aparecen en sus expresiones.
Valor waveform se calcula y se asigna a signal_identifier.
De waveform incluye una expresin lgica, pero tambin puede incluir retraso informacin. VHDL
tiene dos mecanismos de retardo, llamados de transporte y inercial, para modelar el
comportamiento del tiempo.
De todos modos, no hay informacin de retardo se debe especificar en Quartus II para efectos de
sntesis, ya que el compilador inserta automticamente este informacin en funcin de los
dispositivos utilizados.

Process Statement
Una declaracin de proceso describe un comportamiento secuencial independiente de una parte
del diseo.
Cuando un evento en cualquiera de las seales incluido en el sensitivity_list ocurre, las
declaraciones prospectivas dentro del proceso se ejecutan secuencialmente (en el orden en que
aparecen). Cuando termina la ejecucin, el proceso es suspendido y espera a que nuevos eventos.
Si no hay sensitivity_list est presente, entonces el proceso se ejecuta repetidamente.
Los artculos declarados en la declarative_part estn disponibles para uso solamente dentro el
proceso.
Instrucciones de asignacin secuencial
Las variables pueden declararse y usarse slo dentro de los procesos.
Un nuevo valor se asigna a variable_identifier cuando la variable se ejecuta sentencia de
asignacin.
El trmino expresin puede contener seales, pero ambos lados de la asignacin debe ser del
mismo tipo.
Las variables pueden ser difciles de sintetizar.
La sintaxis de asignacin de seales tanto secuencial y concurrente declaraciones es idntico.
Una asignacin de seales secuencial se ejecuta cuando se produce un evento en una seal
presente en la lista de sensibilidad del proceso.
Asignaciones de seales secuenciales son eficaces slo al final de proceso de ejecucin.
Las seales se utilizan para intercambiar datos entre procesos.
Contamos con cuatro objetos de enteros con los siguientes valores iniciales:
A = 0, B = 1, C = 2, D = 3
Caso 1: A, B, C y D son variables que han sido declaradas dentro de un proceso de que contiene
este conjunto de secuencial sentencias de asignacin:
A: = B + C;
D: = A + C;
A: = C + D;
Cuando el proceso se suspende despus de una ejecucin, valores de las variables son:
A = 7, B = 1, C = 2, D = 5
Caso 2: A, B, C y D son seales que han sido declarados fuera de un proceso de que contiene este
conjunto de secuencial sentencias de asignacin:
A <= B + C;
D <= A + C;
A <= C + D;
Cuando el proceso se suspende despus de una ejecucin, los valores de seal son:
A = 5, B = 1, C = 2, D = 2

También podría gustarte