Beruflich Dokumente
Kultur Dokumente
Identificadores
Para las denominaciones de los elementos del lenguaje se emplean los identificadores. Se distinguen dos tipos:
bsicos y extendidos. Un identificador bsico es cualquier conjunto de letras, numero, y el carcter _. Las nicas
restricciones son:
- El primer carcter ha de ser necesariamente una letra (a-z, A-Z) del alfabeto ingls.
- El ultimo carcter no puede ser _.
- No pueden utilizarse dos _ seguidos.
Adems, VHDL no hace distincin entre maysculas y minsculas (case insensitive).
En ocasiones interese emplear un conjunto ampliado de caracteres, o bien distinguir entre maysculas y
minsculas. Por ello se introdujeron los identificadores extendidos en la revisin del lenguaje de 1993, los cuales
puede contener cualquier carcter estndar. Un identificador extendido de delimita con el carcter \.
Por ejemplo:
inputA
sig_1
valor_binario_3
\temporal.%123$$-#\
\v.1-2\\beta\
Ntese que es posible emplear el carcter \ en un identificador extendido. Para ello es necesario colocar dos
seguido, lo cual se extendido como uno solamente.
2. Delimitadores
Son caracteres utilizados en determinadas operaciones y sentencias. Los delimitadores simples estn constituidos
por un solo carcter:
3. Comentarios
En las descripciones se pueden introducir comentarios:
-- Esto es un comentario
4. Tipos de datos
Los tipos de datos predefinidos se encuentran casi en su totalidad en el paquete standard de la biblioteca std. La
siguiente tabla muestra los principales:
Por ejemplo:
2.71
43_234.0
0.000_0012
3.27E4
6.0E-3
2E6
3E-3 -- Si el tipo es entero el exponente no puede ser negativo
En cualquier caso, el lenguaje permite expresas un numero en cualquier base, de acuerdo con el siguiente
formato:
base # entero[.entero] [#E exponente]
La base binaria se toma por defecto, es decir, puede prescindirse de indicar B. X representa la base hexadecimal y
O la octal.
5. Operadores
En el lenguaje se encuentran predefinidos una serie de operadores; que se pueden agrupar en cinco categoras:
aritmticos, relacionales, lgicos, de desplazamiento y otros.
Operacin Operador
Igual =
Diferente /=
Mayor >
Mayor o igual >=
Menor <
Menor o igual <=
5.2. Operadores lgicos y de desplazamiento
Los operadores lgicos admiten operandos bit, boolean o arrays de dichos tipos. La siguiente table muestra la
relacin de operadores predefinidos:
Operacin Operador
and and
nand nand
or or
nor nor
xor xor
xnor xnor
not not
Desplazamiento lgico a la izquierda sll
Desplazamiento lgico a la derecha srl
Desplazamiento aritmtico a la izquierda sla
Desplazamiento aritmtico a la derecha sra
Desplazamiento circular a la izquierda rol
Desplazamiento circular a la derecha ror
6. Objetos
6.1. Variables
Las variables almacenan valores que pueden cambiar a lo largo de la simulacin. Por ejemplo:
Las variables solo pueden ser declaradas y utilizadas dentro de procesos o subprogramas y, por tanto, son
locales a los mismo. La nica excepcin la constituyen las variables de tipo compartido o globales (shared),
que puede ser compartida entre procesos
Al declarar una variable puede asignrsele un valor inicial. En caso de no hacerlo, el simular asigna un valor
por defecto.
6.2. Seales
Al igual que las variables, las seales almacenan informacin que puede cambiar a lo largo de una
simulacin, sin embargo, su significado esta intrnsecamente ligado al carcter hardware del lenguaje. Las
seales representan las conexiones o terminales fsicos presentes en un circuito y, por tanto, poseen diversas
propiedades para el correcto modelado de su comportamiento.
Las seales pueden ser utilizadas en todo tipo de sentencias, tanto concurrentes como secuenciales, aunque
solo pueden ser declaradas en aquellas. Las seales clase bus y register constituyen un caso especial