Está en la página 1de 6

Carrera: electrnica e instrumentacin

Diseo vlsi
Tipos de datos
seales

Nombre: Daniel castillo

Octubre 2014 febrero 2015

DISEO VLSI
TEMA: TIPOS DE DATOS - SEALES
FECHA: 02/02/2015

TIPOS DE DATOS
Un tipo de datos se utiliza para definir el valor que un objeto puede tomar, as
como las operaciones que se realizan con ese objeto. En VHDL hay dos tipos
bsicos: compuesto y escalar, los cuales agrupan varios subtipos.
A continuacin se muestran estos tipos de datos y la forma en que se
encuentran clasificados:

a) Tipos escalares
En esta seccin se describe a detalle los cuatro tipos escalares que existen en
VHDL; tambin se muestran algunos ejemplos que permiten comprender mejor
su uso.

Tipos enumerados
Este tipo se usa para listar los diversos valores que puede contener un objeto.
Se llaman enumerados debido a que listan todos y cada uno de los valores que
forman el tipo.
La sintaxis para declararlos es:
type identificador is definicin_tipo;

DANIEL CASTILLO
SEXTO ELECTRNICA

Como se puede apreciar, la declaracin del tipo contiene un nombre, el cual


permite hacer referencia a l en el programa; tambin cuenta con el parmetro
llamado definicin del tipo, el cual corresponde a los valores que se le asignan.
Ejemplos
type nombres is (Ana, Mario, Julio, Cecilia);
type mquina is (edo_presente, edo_futuro, estado);
type letras is ('a\'b\ Y, *y\ V);
Los tipos bit y booleano se clasifican entre los tipos enumerados, debido a que
pueden tomar ms de un valor:
type booleano is (verdadero, falso);
type bit is ('0', T ) ;

Tipos enteros y tipos reales


Como su nombre indica, los tipos enteros y reales sirven para representar
nmeros enteros y reales (fraccionarios), respectivamente. VHDL soporta
valores enteros en el intervalo de -2,147-483,647 ( 231 1 ) hasta
2,147,483,647 ( 2311 ), y nmeros reales en el intervalo de -1.0E38 a 1.0E38.
Ambos tipos (enteros y reales) siguen la misma sintaxis:
object identificador : type range [valores];
Un rango (range) es una palabra reservada por VHDL y se usa para definir un
conjunto de valores. Cabe destacar que no todas las herramientas en VHDL
manejan valores con signo. En nuestro caso el compilador utilizado (Warp) slo
maneja valores sin signo.

Tipos fsicos
Se refiere a los valores que se usan como unidades de medida. En VHDL el nico
tipo fsico que se encuentra predefinido es time (tiempo), el cual contiene como
unidad primaria el femtosegundo (fs).
La manera de definir un tipo fsico:
Type time is range 0 to 1E20 units fs;
ps = 1000 fs;
ns = 1000 ps;
us = 1000 ns;
ms = 1000 us;
s = 1000 ms;
min = 60 sec;
DANIEL CASTILLO
SEXTO ELECTRNICA

h = 6 0 min;
end units;
VHDL permite la creacin de otros tipos fsicos como metros, gramos, etc., slo
que en el diseo digital es difcil utilizar estos parmetros. Por esta razn nada
ms se muestran los tipos predefinidos, sin profundizar en el tema.
b) Tipos compuestos
Como ya se mencion, los tipos compuestos pueden tener valores mltiples en
un mismo tiempo al momento de ser simulados. Este tipo est formado por los
arreglos y registros.

Tipo arreglo
El tipo arreglo est formado por mltiples elementos de un tipo en comn.
Estos arreglos se pueden considerar tambin como vectores, ya que agrupan
varios elementos del mismo tipo.
La sintaxis utilizada para declarar un arreglo es:
type identificador is array (rango) of tipo_objetos;
Como se puede observar, en ambas declaraciones es necesario utilizar un valor
(rango) que determine el conjunto de valores que va a tomar el tipo.
En este caso el rango no se ha especificado, pero debe tomarse en cuenta que
al momento de asignarlo se toma como un nmero entero positivo (nmero
natural).
Los estndares IEEE 1076 y 1164 definen dos arreglos importantes, llamados
bit_vector y std_logic_vector, los cuales forman parte de los tipos bit y std_logic,
respectivamente. A continuacin se puede observar la forma en que se declaran
estos arreglos.
type bit_vector is array ( rango) of bit;
type std_logic_vector is array (rango) of std_logic;
El tipo std_logic es mas verstil que el tipo bit, debido a que incluye los valores
de alta impedancia ('Z') y no importa (-).
Como ejemplo observemos las siguientes declaraciones de arreglos
type dgitos is array (9 downto 0) of integer;
type byte is array (7 downto 0) of bit;
type direccin is array (10 to 62) of bit;
Otro aspecto al utilizar arreglos es la facilidad que presentan para crear tablas
de verdad:
type tabla is array (0 to 3, 0 to 2) of bit;
constant ejemplo:
DANIEL CASTILLO
SEXTO ELECTRNICA

tabla := ("00_0",

"01_0",
"10_0",
"11_1");
El arreglo declarado en este ejemplo es de dos dimensiones, ya que tiene un
valor para el nmero binario que toman las entradas (de 0 a 3) y otro para el
nmero de bits de entrada y salida (dos bits de entrada y uno de salida). Los
guiones colocados entre los bits separan las entradas (lado izquierdo) de las
salidas.

Tipo archivo (record)


A diferencia de los arreglos, los tipos archivo estn formados por elementos de
diferentes tipos, los cuales reciben el nombre de campos. Cada uno de estos
campos debe tener un nombre que permita identificarlos con facilidad dentro del
tipo.
Es importante destacar que el nombre de registro no tiene nada que ver con un
registro en hardware utilizado para almacenar valores, ya que aunque los nombres
son similares, en VHDL se toman como conceptos distintos.
La forma de declarar un tipo archivo es:
type identificador is record
Identificador : tipo;
end record;
SEALES

Son objetos utilizados como alambrados que permiten simular la interconexin


de componentes dentro de la arquitectura de diseo. Estas seales permiten
representar entradas o salidas de entidades que no tienen una terminal externa
(patilla) al dispositivo.
Como ejemplo observemos el diagrama de la siguiente figura.

DANIEL CASTILLO
SEXTO ELECTRNICA

Se puede apreciar que las seales etiquetadas como xO y xl no tienen asignada


una terminal en la entidad de diseo, ya que slo funcionan como un medio
para interconectar las compuertas lgicas del circuito.
La forma de declarar una seal es la siguiente:
signal identificador: tipo: [rango} ;
Ejemplos
signal vcc: bit: T;
signal suma: bit_vector (3 downto 0);
1

BIBLIOGRAFIA
Maxinez , D., & Alcal, J. (2002). VHDL El Arte de Programar Sistemas Digitales.
Mexico: Compaa Editorial Continental.

DANIEL CASTILLO
SEXTO ELECTRNICA

También podría gustarte