Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Lenguaje VHDL (Powerpoint) (página 2)




Enviado por Pablo Turmero



Partes: 1, 2, 3

Monografias.com

La declaración de los tipos predefinidos se encuentra en el
paquete STANDARD
Existen 5 clases de tipos:
– Scalar (entero, enumerado, físico, punto flotante)
– Composite (array, record)
– File
Access
– Protected
Tipos

Monografias.com

Entero
type WORD_INDEX is range 31 downto 0;
type BYTE_LENGTH_INTEGER is range 0 to 255;
* El único tipo entero predefinido es INTEGER
Enumerado
type BIT is (‘0’, ‘1’);
type estados is (Espera, Inicializacion, Procesamiento, Envio_Datos);
* Los tipos enumerados predefinidos son: CHARACTER, BIT,
BOOLEAN, SEVERITY_LEVEL, FILE_OPEN_KIND, Y
FILE_OPEN_STATUS.
Tipos escalares (ejemplos)

Monografias.com

type DURATION is range -1E18 to 1E18
units
fs; –femtosecond
ps = 1000 fs; –picosecond
ns = 1000 ps; –nanosecond
us = 1000 ns; –microsecond
ms = 1000 us; –millisecond
sec = 1000 ms; –second
min = 60 sec; –minute
end units;
* El único tipo físico predefinido es TIME
Físico
Tipos escalares (ejemplos)

Monografias.com

constant PI: REAL := 3.141592;
* El único tipo punto flotante predefinido es REAL
Punto flotante
Tipos escalares (ejemplos)

Monografias.com

type MY_WORD is array(0 to 31) of bit;
type MEMORY is array(integer range <>) of MY_WORD;

Estos tipos así declarados se pueden usar para describir una memoria de 2N palabras de 32 bits:
signal MY_MEMORY: MEMORY (0 to 2**N-1);
* Los tipos array predefinidos son: STRING, BOOLEAN_VECTOR,
BIT_VECTOR, INTEGER_VECTOR, REAL_VECTOR, and
TIME_VECTOR (definidos en el paquete STANDARD)
Array
Tipos compuestos (ejemplos)

Monografias.com

type DATE is
record
DAY : integer range 1 to 31;
MONTH : MONTH_NAME;
YEAR : integer range 0 to 5000;
end record;
* No existe ningún tipo record predefinido.
Record
Tipos compuestos (ejemplos)

Monografias.com

file of STRING — Define un tipo de archivo que puede
— contener un número indefinido de — strings de largo arbitrario.

file of NATURAL — Define un tipo de archivo que puede — contener sólo valores enteros positivos
File
Tipo file (ejemplos)

Monografias.com

En VHDL existen 4 clases de objetos:
– Constantes
– Señales
Variables
Archivos
Objetos
Un objeto es un elemento que guarda un valor de un tipo de
dato específico. Sólo puede ser parte de operaciones
coherentes con su tipo (lenguaje strong typing).

Monografias.com

Son utilizadas para el manejo de valores que se mantienen
constantes durante el diseño. De esta manera se evita el uso
de números que a simple vista parecen mágicos.
Es una práctica muy recomendable el uso de nombres claros
y que representen algo dentro del diseño.
Para la asignación de un valor a una variable se utiliza el
símbolo “:=“
Se declaran del siguiente modo:
constant identificador: tipo [ := expresión];
Constantes
Objetos

Monografias.com

Se declaran del siguiente modo:
constant identificador: tipo [ := expresión];

Ejemplo:
constant N: integer := 8;
Constantes
Objetos

Monografias.com

Representan las conexiones del hardware. En otras
palabras, representan los cables.
En las simulaciones toman el valor asignado un delta de
tiempo después (salvo que se indique un retardo por medio
de la sentencia after).
Para la asignación de un valor a una señal se utiliza el
símbolo “<=“
Se declaran del siguiente modo:
signal identificador: tipo [ := expresión];
Señales
Objetos

Monografias.com

Nota: Se supone definidas las siguientes variables
signal word: std_logic_vector(3 downto 0);
signal single_bit: std_logic;
Se podría tener las siguientes asignaciones:
– word <= “1110”;
– single_bit <= ‘1’;
– word <= (others => ‘0’);
– word <= single_bit & word(3 downto 1);

Señales: Ejemplos
Objetos

Monografias.com

Son utilizadas para almacenar valores que pueden sufrir
cambios.
No tienen significado físico
Cuando un valor es asignado a una variable esta lo toma
inmediatamente.
Para la asignación de un valor a una variable se utiliza el
símbolo “:=“
Se declaran del siguiente modo:
variable identificador: tipo [ := expresión];
Variables
Objetos

Monografias.com

variable aux: integer := 3; — declaración de variable con
— asignación inicial de un valor

aux := aux + 1; — asignación de un valor a una variable
Variables: Ejemplos
Objetos

Monografias.com

Estos objetos no son sintetizables.
Se utilizan en simulaciones.
Se puede acceder a ellos tanto para lectura como para
escritura
Se declaran del siguiente modo:
file identificador : subtipo [info_apertura];
info_apertura = [open modo_de_apertura] is nombre_archivo
nombre_archivo = string

Archivos
Objetos

Monografias.com

type IntegerFile is file of INTEGER;
file F1: IntegerFile;
— No existe llamado implícito a FILE_OPEN.

file F2: IntegerFile is "test.dat";
— Existe un llamado implícito a:
— FILE_OPEN (F2, "test.dat"). El modo de apertura por defecto
— es READ_MODE.

file F3: IntegerFile open WRITE_MODE is "test.dat";
— Existe un llamado implícito a:
— FILE_OPEN (F3, "test.dat", WRITE_MODE);

(*) IEEE Std 1076™-2008 – IEEE Standard VHDL Language
Archivos: Ejemplos (*)
Objetos

Monografias.com

Lógicos
Operadores
De relación
Aritméticos
Concatenación
and, or, nor, xor, not
= (igual) , < (menor) , > (mayor) , /= (distinto) ,
<= (menor o igual) , >= (mayor o igual)
+ (suma) , – (resta)
&
Ejemplo: a <= b(N-1) & b(N-1 downto 1);

Monografias.com

Instrucciones concurrentes.
Procesos. Se utilizan para implementar una expresión
concurrente utilizando una serie de expresiones secuenciales
Su evaluación se efectúa al mismo tiempo.
Se sitúan dentro de los procesos
Expresiones secuenciales
Se evalúan en orden, una a continuación de la otra.
Expresiones concurrentes
Expresiones concurrentes y secuenciales

Monografias.com

La sentencia if selecciona una o ninguna secuencia de sentencias.

Sintaxis:
[ if_label : ]
if condition then
sequence_of_statements
{ elsif condition then
sequence_of_statements }
[ else
sequence_of_statements ]
end if [ if_label ] ;
Sentencia IF
Sentencias secuenciales

Monografias.com

if x1= '0' and X2 = '1‘ then
sal <= '1' ;
elsif x3= '1' then
sal <= '1';
else
sal <= '0';
end if;
Sentencia IF (ejemplo)
Sentencias secuenciales

Monografias.com

La sentencia case selecciona una entre varias alternativas de secuencia de sentencias.

Sintaxis:
[ label: ] case expression is
when choices => sequential_statements
when choices => sequential_statements

end case [ label ];
choices = choice | …
choice = constant_expression | range | others
Sentencia CASE
Sentencias secuenciales

Monografias.com

C1: case sel is
when 1 => A <= '0';
B <= ‘0';
when 2 => A <= '1';
B <= '1';
when 3 => A <= '0';
B <= '1';
when others => A <= '1';
B <= '0';
end case C1;
Sentencia CASE (ejemplo)
Sentencias secuenciales

Monografias.com

La sentencia Loop incluye una secuencia de sentencias que se ejecutarán reiteradamente, ninguna o varias veces.

Sintaxis:
[ loop _label : ]
[ iteration_scheme ] loop
sequence_of_statements
end loop [ loop _label ] ;

iteration_scheme ::=
while condition
| for loop_parameter_specification

parameter_specification ::=
identifier in discrete_range
Sentencia LOOP
Sentencias secuenciales

Monografias.com

La sentencia For Loop contiene una secuencia de sentencias que se repetirán mientras el parametro_loop se mantenga dentro del rango mencionado (range) en el encabezado de la sentencia .

Sintaxis:
[ etiqueta: ] for parametro_loop in range loop
sequential_statements
end loop [ etiqueta ];
El parámetro parametro_loop no necesita ser declarado. La
declaración del loop lo hace implícitamente.
El parámetro parametro_loop es una constante dentro de un loop lo
que implica que no puede asignársele ningún valor dentro del mismo.
Sentencia FOR LOOP
Sentencias secuenciales

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter