Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Circuitos Combinacionales
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 1
http://deversys.com/?action=article&id=45
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 2
TALLER DE VHDL
OBJETIVO:
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 3
TALLER VHDL
I Parte: Circuitos combinacionales
II Parte: Circuitos secuenciales
III Parte: Mquinas de secuenciales
Mayo 2006
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 4
I Parte: Circuitos
Combinacionales
OBJETIVO: Dar a conocer y
utilizar los diferentes comandos
del lenguaje de programacin
orientado a hardware (HW) VHDL,
utilizando circuitos
combinacionales
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 5
METODOLOGIA
En cada sesin se realizar una
presentacin del tema.
Se realizar una prctica en la leccin
Se dejar un proyecto a realizar fuera de
la leccin, el cual se evaluar, esto con
el fin de asignar puntos para el cambio
de categora.
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 6
CONTENIDO
Introduccin
Aspectos relacionados con VHDL
Disear un sumador completo
Expresin boleana del sumador
Circuitos con compuertas
Formato para escribir un programa en VHDL
Instrucciones en VHDL
Uso del ISE para sintetizar el circuito
Uso del ModelSim
Uso del Impact
Descarga del modelo a un FPGA
Proyecto
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 7
AGENDA
Introduccin
Diseo de un sumador completo
Estructura de cdigo en VHDL
Bibliotecas
Entidad
Arquitectura
Tipos de datos
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 8
INTRODUCCIN
VHDL
Es un estndar
Es un lenguaje independiente de la
tecnologa y del fabricante
Es transportable
Es reutilizable
APLICACIONES INMEDIATAS
Dispositivos lgicos programables
ASICS (Application Specific Integrated
Circuits)
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 9
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 10
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 11
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 12
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 13
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 14
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 15
VHDL: Evolucin
1980: El departamento de defensa de los EEUU funda el
proyecto para crear un HDL estndar dentro del
programa VHSIC.
1981: Woods Hole Workshop, reunin inicial entre el
Gobierno, Universidades e Industria.
1983: Se concedi a Intermetrics, IBM y Texas
Instruments el contrato para desarrollar VHDL.
1985: Versin 7.2 de dominio pblico.
1987: El IEEE lo ratifica como su estndar 1076
(VHDL-87).
1993: El lenguaje VHDL fue revisado y ampliado,
pasando a ser estndar 107693 (VHDL-93).
2001: Ultima modificacin de VHDL.
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 16
Y en el futuro?
Los lenguajes de descripcin de hardware tienen
tambin limitaciones:
Metodologa de diseo nueva, exige un cambio de
mentalidad con respecto al SW.
No permiten rehusar cdigo SW para HW.
La decisin HW/SW debe hacer antes de la
codificacin.
La simulacin es lenta, siempre hay que recurrir a una
simulacin algortmica usando lenguajes SW, lo que
hace que se descarguen los programas directamente
sobre un FPGA, evadiendo as la simulacin.
Circuitos Combinacionales
COMPILACIN
Netlist
(nivel de
compuertas)
SINTESIS
OPTIMIZACIN
Netlist
optimizada
(nivel de
compuertas)
SIMULACIN
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 17
DISPOSITIVO
FISICO
SIMULACIN
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 18
LO MS IMPORTANTE
No es secuencial, como la ejecucin de
instrucciones (una despus de la otra)
de un programa en un microprocesador.
Es concurrente, es hardware.
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 19
EJERCICIO
Disear un sumador completo
utilizando compuertas lgicas.
Sintetizar el sistema resultante.
Empotrar el circuito en un FPGA
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 20
TABLA DE VERDAD
ENTRA DAS
SALI DAS
MINTERMINO
CI
CO
Circuitos Combinacionales
CI
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 21
B
S(CI,A,B)=CI*B+ A*B+ CI*A
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 22
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 23
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 24
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 25
ESPECIFICACIONES DE DISEO
Lo que se quiere es llegar a empotrar estos
circuitos en una FPGA Spartan III de Xilinx.
Este procedimiento se puede aplicar a
cualquier otro circuito combinacional
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 26
FORMAS DE IMPLEMENTACIN
Compuertas lgicas
RTL
Bloques
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 27
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 28
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 29
Declaraciones
de las entradas
y salidas
Parte declarativa
de la arquitectura
Cuerpo de la
arquitectura
entity toto is
port (
Nombre de la
entidad
);
end toto
architecture test of toto is
begin
end test;
Nombre de la
arquitectura
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 30
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 31
OBSERVACIONES
Al final de cada comando debe
colocarse un (;) para que se ejecute.
Los comentarios se hacen utilizando al
inicio del comentario el los caracteres
(--).
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 32
DECLARACIN DE BIBLIOTECAS
Para declarar bibliotecas se necesitan dos
lneas de cdigo,
Una donde contiene el nombre de la biblioteca, y
Otra donde se indica una clusula de uso
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 33
BIBLIOTECAS
El propsito de las bibliotecas
mencionadas anteriormente es el
siguiente:
El paquete std_logic_1164 especifica un
sistema lgico de mltiples niveles.
std es una biblioteca de recursos (tipos de
datos, texto i/o, etc.) para el entorno de
diseo de VHDL.
work es donde se almacenar el diseo (el
archivo .vhd, as como todos los archivos
que llega a crear el compilador, simulador,
etc.)
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 34
BIBLIOTECAS
Las bibliotecas ieee contienen algunos
paquetes como:
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 35
BIBLIOTECAS
PAQUETES
FUNCIONES
PROCEDIMIENTOS
COMPONENTES
CONSTANTES
TIPOS
DATOS
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 36
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 37
Para describir su
funcionamiento se asocia una
implementacin que se
denomina arquitectura
La ARCHITECTURE describe el
contenido del diseo
.
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 38
ENTITY (entidad)
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 39
Interfaz de dispositivo
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 40
IN
IN
OUT
OUT
std_logic;
std_logic_vector(7 downto 0);
std_logic_vector(7 downto 0);
std_logic);
END mi_componente;
tipo
modo
Mi_componente
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 41
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 42
ARCHITECTURE
Es una descripcin del funcionamiento del circuito.
Los contenidos del circuito se modelan dentro de la
arquitectura.
La ARCHITECTURE tiene dos partes:
Una parte declarative (optional), donde se declaran las
seales y constantes.
Una parte de code, partiendo de BEGIN hasta END.
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 43
EJERCICIO
Realizar un programa en VHDL que
simule un multiplexor de cuatro canales
de entrada, y dos canales de seleccin.
Utilizando compuertas lgicas.
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 44
TIPOS DE DATOS
Son utilizados en la definicin de
elementos dentro de la Entity, as como
en la Architecture.
En la Entity se utilizan para definir el
tipo de entradas y salidas.
En la Architecture se utilizan para
definir algunas seales internas
necesarias para el funcionamiento del
dispositivo.
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 45
Tipos de datos
TIPO es la definicin de los
posibles valores que puede
tomar un objeto
VHDL es un lenguaje
fuertemente tipificado:
Escalares:
integer
floating point
enumerated
Compuestos: array
record
Punteros:
access
Archivos:
file
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 46
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 47
EJEMPLOS
SIGNAL X: BIT; X se declara como una
seal de un solo dgito del tipo bit.
SIGNAL Y: BIT_VECTOR (3 DOWNTO
0); Y es un vector de 4 bits, con el bit
de la izquierda como el MSB.
SIGNAL W: BIT_VECTOR (0 TO 7); es
un vector de 8 bits, con el bit de la
izquierda como el MSB.
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 48
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 49
EJEMPLO
X<=1;
-- X es una seal de un bit, cuyo valor es 1
Y<=0011;
-- Y es una seal de 4 bits, cuyo valor es
0011 el MSB es 0, las comillas dobles se
utilizan en vectores.
W<=01110001;
-- W es una seal de 8 bits, cuyo valor es
01110001 y el MSB es 0
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 50
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 51
Tipo STD_LOGIC
En la realidad los dos valores del tipo bit se quedan
cortos para modelar todos los estados de una seal
digital.
El paquete IEEE.standard_logic_1164 define el tipo
std_logic, que representa todos los posibles estados de
una seal real:
U
X
0
1
Z
W
L
H
-
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 52
Estados metalgicos
Son estados que utiliza la herramienta
en el proceso de sntesis y que no son
utilizados por el usuario.
Estos estados son:
U
W
X
-
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 53
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 54
EJEMPLO
SIGNAL X:STD_LOGIC;
X se declara como una seal de un dgito
(escalar) del tipo STD_LOGIC.
SIGNAL Y:STD_LOGIC_VECTOR (3
DOWNTO O):= 0001;
Se declara Y como un vector de 4 bits, con
el bit de la izquierda como el MSB. El valor
inicial de Y es 0001.
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 55
HOJA DE TRABAJO 1
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 56
BEGIN
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 57
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 58
a<= 0101;
b<= 0101;
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 59
Un solo bit:
tmp(7) <= ' 1;
Un rango de bits:
tmp(7 <= downto 4) <= 1010;
Notacin:
1 bit : comilla simple (')
Mltiples bits : comilla doble ()
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 60
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 61
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 62
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 63
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 64
Subtipos
Los subtipos son tipos con
restricciones.
La razn fundamental para realizar
subtipos en vez de especificar un nuevo
tipo es que realizar operaciones entre
diferentes tipos de datos no es
permitido.
Solo se permiten entre un subtipo y su
tipo base correspondiente.
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 65
Ejemplos
Los siguientes subtipos se basan en los
ejemplos anteriores
Subtype natural is INTEGER RANGE 0 TO INTEGER
HIGH;
Como es de esperarse natural es un sutipo de integer.
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 66
b<=c;
Legal (el mismo tipo base, std_logic)
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 67
Conversin de datos
VHDL no permite operaciones directas
(aritmticas, lgicas, etc.) entre datos
de diferentes tipos.
Por lo que se hace necesario transferir
datos de un tipo a otro.
Esto se puede realizar de dos formas:
Escribiendo un pedazo de cdigo para
realizar lo que se quiere.
Invocando un FUNCTION.
FUNCTION, es un paquete
predeterminado que es capaz de realizar
lo que deseamos.
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 68
Ejemplo
Type long is integer range -100 to 100;
Type short is integer range -10 to 10;
Signal x : short;
Signal y : long;
y <= 2*x+5;
Error, error en tipo
y <= long(2*x+5);
Ok, el resultado se convierte en tipo long.
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 69
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 70
EJEMPLOS
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
..
SIGNAL a: IN UNSIGNED (7 DOWNTO 0);
SIGNAL b: IN UNSIGNED (7 DOWNTO 0);
SIGNAL y: OUT STD_LOGIC_VECTOR (7
DOWNTO 0);
y <= CONV_STD_LOGIC_VECTOR ((A+B), 8);
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 71
Ejercicio
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 72
Arreglos
Los arreglos son colecciones de objetos
del mismo tipo.
Pueden ser:
Unidimensionales (1D)
Bidimensionales (2D)
Unidimensionales por unidimensionales
(1DX1D)
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 73
Arreglos
Un solo valor (escalar)
01000
01001
01100
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 74
Arreglos
Las categoras de los tipos de datos
predefinidos en VHDL son solo escalar (single
bit) o vector (arreglo unidimensional de bits).
Los tipos sintetizables en cada una de estas
categoras:
Escalares: BIT, STD_LOGIC, STD_ULOGIC, y
BOOLEAN.
Vectores: BIT_VECTOR, STD_LOGIC_VECTOR,
STD_ULOGIC_VECTOR, INTEGER, SIGNED y
UNSIGNED.
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 75
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 76
Ejemplo
Se quiere construir un arreglo que
contenga cuatro vectores, cada uno de
ellos de 8 bits.
Se llamar a cada vector por filas y el
arreglo completo como una matriz.
Se asignar el bit de la izquierda como
el MSB.
Se quiere que el vector de arriba sea la
fila 0.
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 77
Implementacin
TYPE row IS ARRAY (7 DOWNTO 0) OF
STD_LOGIC;
- arreglo 1D
SIGNAL x: matrix;
- seal 1Dx1D
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 78
Ejemplo
Otra forma de construir un arreglo de
1Dx1D:
TYPE matrix IS ARRAY (0 to 3) OF
STD_LOGIC_VECTOR (7 DOWNTO 0);
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 79
Ejemplo
Arreglo de 2D
TYPE matrix2D IS ARRAY (0 TO 3, 7
DOWNTO 0) OF STD_LOGIC;
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 80
Inicializacin de un arreglo
El valor inicial es opcional.
Cuando se requiere de inicializacin
debe hacerse:
:=0001; - para un arreglo de 1D
:=(0, 0, 0, 1); - para un arreglo de 1D
:=((0, 1, 1, 1),(1, 1, 1, 0)); -para un arreglo de
1Dx1D o un arreglo de 2D
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 81
PORT ARRAYS
No hay un tipo de datos predefinido para mas
de una dimensin.
Para las especificaciones de los pines (PORT)
de entrada y salida de un circuito, se necesita
especificar los PORT como un arreglo de
vectores.
El comando TYPE no se puede utilizar en la
descripcin del circuito ENTITY.
Se debe utilizar un tipo de datos definida por
el usuario en un PACKAGE.
Esto para que sea visible en todo el diseo,
incluyendo ENTITY.
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 82
Ejemplo
________________________________
Tipo de datos definido por el usuario
LIBRARY ieee;
Que contiene un infinito
USE ieee.std_logic_1164.all;
nmero de vectores
________________________________
de 8 bits
PACKAGE mis_datos_type IS
TYPE vector_array IS ARRAY (NATURAL RANGE <>)OF STD_LOGIC_VECTOR(7
DOWNTO 0);
END mis_datos_type;
_________________________________
-----------------CODIGO PRINCIPAL----------------Almacenados en un paquete
LIBRARY ieee;
llamado mis_datos_type
USE ieee.std_logic_1164.all;
USE work.mis_datos_type.all;
Utiliza la definicin de
___________________________________
tipo de datos
ENTITY mux IS
PORT (inp: IN VECTOR_ARRAY (0 TO 3);
.);
END mux;
;
__________________________________
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 83
RECORDS
Los RECORDS son similares a los
arreglos, con la diferencia en que
contienen objetos de diferentes tipos.
Ejemplo
TYPE cumpleaos IS RECORD
Dia: INTEGER RANGE 1 TO 31;
Mes: nombre_mes;
END RECORD;
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 84
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 85
W <= a AND b;
Ilegal (operacin lgica)
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 86
_____________________________
V <= a+b;
Ilegal (la operacin aritmtica no es correcta)
W <= a AND b;
Legal (la operacin lgica es correcta)
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 87
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 88
Ejemplo
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;
_____________________________
SIGNAL a: IN STD_LOGIC_VECTOR (7 DOWNTO 0);
SIGNAL b: IN STD_LOGIC_VECTOR (7 DOWNTO 0);
SIGNAL x: OUT STD_LOGIC_VECTOR (7 DOWNTO 0);
________________________________
V <= a+b;
-legal (la operacin aritmtica es correcta, unsigned)
W <= a AND b;
-Legal (la operacin lgica es correcta)
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 89
Operadores y atributos
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 90
Operadores
VHDL posee varios tipos de operadores
pre-definidos:
Asignacin
Lgicos
Aritmticos
Comparacin
Desplazamiento
Concatenacin
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 91
Operadores de asignacin
Se utilizan para asignar valores a
seales, variables y constantes:
<= Asignacin de valor a una seal.
:= Asignacin de valor a una variable,
constante o genrica.
=> Usado para asignar valores a elementos
individuales de arreglos
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 92
Ejemplo de asignacin
DECLARACIONES
SIGNAL x : STD_LOGIC;
VARIABLE y : STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL w: STD_LOGIC_VECTOR(0 TO 7);
USO
X<=1; --1 se le asigna a la SIGNAL X utilizando <=
Y:=0000; --0000 es asignado a la VAIRABLE Y utilizando :=
W<=10000000; -- el LSB es 1
W<=(0 =>1,OTHERS => 0); --LSB es 1 los otros son cero
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 93
Operadores lgicos
Usados para realizar operaciones lgicas.
El tipo debe de ser: BIT, STD_LOGIC
STD_ULOGIC y extensiones.
NOT
AND
OR
NAND
NOR
XOR
XNOR
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 94
Operadores Aritmticos
Utilizados para realizar operaciones aritmticas sobre
los tipos: INTEGER, SIGNED, UNSIGNED O REAL.
+ Suma
- Resta
* Multiplicacin
/ Divisin
** Potencia
MOD Mdulo
REM Resto
ABS Valor absoluto
(Sintetiza)
(Sintetiza)
(Sintetiza)
(Solo en potencias de 2)
(Solo valores constantes)
(NO sintetiza)
(NO sintetiza)
(NO sintetiza)
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 95
Operadores de comparacin
Usados para realizar comparaciones.
Prcticamente no hay limitaciones respecto al
tipo.
= Igual a
/= diferente de
< menos que
> mas que
<= menor o igual a
>= mayor o igual a
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 96
Operadores de desplazamiento
Utilizados para desplazar vectores, introducidos en
VHDL93. sintaxis:
<operando> <operacion> <# de desplazamientos>
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 97
Ejemplo de desplazamiento
Se tiene: x<=01001;
Se hace: y<= x sll 2;
Se obtiene y<=00100
Se tiene: x<=01001;
Se hace: y<= x rol 2;
Se obtiene y<=00101;
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 98
Operadores de Concatenacin
Se utilizan para agrupar variables, se
pueden usar con los tipos listados para
operadores lgicos.
&
(,,,,,,)
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 99
Ejemplo de concatenacin
Z <= x & 1000000;
Si x=1 -- entonces z es:
z<=11000000
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 100
Atributos
Le proporcionan flexibilidad al lenguaje
VHDL, permiten la creacin de porciones
genricas de cdigo.
Adems de la lista de atributos ya predefinidos
en el VHDL, el lenguaje permite al usuario
definir atributos.
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 101
Atributos de datos
Los atributos predefinidos y sintetizables son
los siguientes, donde d es un arreglo:
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 102
Se puede obtener:
dLOW=0, dHIGH=7,dLEFT=7,dRIGHT=0,
dLENGTH=8, dRANGE=(7 downto 0),
dREVERSE_RANGE=(0 to 7)
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 103
Atributos de seales
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 104
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 105
Especificacin:
ATTRIBUTE attribute_name OF target_name: class IS value;
Donde:
attribute_type: cualquier tipo de dato
Class: TYPE, SIGNAL, FUNCTION, etc.
Value: 0, 27, 00 11 10 01, etc.
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 106
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 107
Sobrecarga de operadores
Los operadores ya definidos se pueden
utilizar para realizar diferentes
operaciones sobre tipos de datos que no
soportan a los predefinidos.
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 108
END +;
--AHORA EL SIMBOLO + SE PUEDE UTILIZAR
PARA SUMAR ENTEROS CON DATOS TIPO
BIT
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 109
GENERIC
El uso del GENERIC permite la creacin
de programas que pueden ser adaptados
para diferentes aplicaciones. Es
declarado en la ENTITY.
La sintaxis:
GENERIC (parameter_name:
parameter_type := parameter_value);
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 110
END my_entity;
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 111
Adicin
+
suma
resta
&
concatenacin de vectores
Multiplicativos
*
multiplicacin
/
divisin
rem resto
mod mdulo
Signo Unarios)
*, -
Desplazamiento (bit_vector)
sll, srl
sla, sra
rol, ror
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 112
Ejercicio
Circuitos Combinacionales
TALLER
VHDL
Ing. Jos Alberto
Daz Garca
Pgina 113
BIBLIOGRAFIA
Petroni, Volnei A. CIRCUIT DESIGN WITH
VHDL, MIT Press,, primera edicin, 2004,
Massachussetts, USA.
Ashenden, Peter J. THE DESIGNERS GUIDE
TO VHDL, Morgan Kaufmann Publishers,
segunda edicin, 2002, California, USA.