Вы находитесь на странице: 1из 102

Ing.

Julio Gonzalez Prado


V H D L
SOFTWARE PARA
DISEO DE CIRCUITOS
INTEGRADOS
Ing. Julio Gonzalez Prado
V H D L:
V HSIC
H ARDWARE
D ESCRIPTION
L ANGUAGE
(LENGUAJE DE DESCRIPCION DE
HARDWARE VHSIC)
Ing. Julio Gonzalez Prado
VHSIC:
V ERY
H IGH
S PEED
I NTEGRATED
C IRCUITS
(CIRCUITOS INTEGRADOS DE MUY ALTA
VELOCIDAD)
Ing. Julio Gonzalez Prado
Por lo tanto, el lenguaje VHDL es un lenguaje
que se usa para describir el hardware de
circuito integrados con aplicaciones en alta
velocidad.
Ing. Julio Gonzalez Prado
Es un lenguaje que tiene elementos del C++
y el Pascal que se emplea bsicamente para
realizar implementacin de circuitos de alta
velocidad.
Por lo tanto, si el C++ y el Pascal tienen
aplicaciones para diferentes aspectos, el
VHDL se centra en aplicaciones de
implementacin circuital.

Ing. Julio Gonzalez Prado
ORIGENES
El VHDL naci en el ao 1981 cuando el
Departamento de Defensa de los Estados
Unidos genera un proyecto denominado
VHSIC para generar circuito integrados de
alta velocidad.
El VHDL se desarrolla para estandarizar los
procesos de diseo y optimizar el manejo de
la informacin que se genera.
Ing. Julio Gonzalez Prado
ORIGENES
En 1983, IBM, Texas Instruments e
Intermetrics desarrollan el lenguaje VHDL
La IEEE lo propuso como su estandar en
1984, y en 1987 lo adopt como su lenguaje
HDL (mediante el estndar std 1076 1987)
Ing. Julio Gonzalez Prado
ORIGENES
Como esta versin demostr algunas
carencias relacionadas con la sntesis de
circuitos, debido principalmente a la
evolucin de las herramientas de diseo que
usaban el VHDL y la rpida evolucin de las
tecnologas para implementacin de los
Circuitos Integrados, se plante una segunda
versin en 1993 (que es la vigente) ,
mediante el estndar IEEE std 1076-
1993,conocido como VHDL93.
Ing. Julio Gonzalez Prado
ORIGENES
En esencia la versin de 1987 es un
subconjunto de la versin de 1993, de modo
que cualquier programa de la versin antigua
puede ser procesada por la versin mas
reciente.
Una excepcin de esta norma es lo
relacionado con la declaracin y el uso de
ficheros.
Ing. Julio Gonzalez Prado
AMBIENTE DE DESARROLLO
El diseo con lenguaje VHDL se basa en el
concepto de DISEO CON HERRAMIENTAS
CAD EDA.
Ing. Julio Gonzalez Prado
AMBIENTE DE DESARROLLO
El proceso CAD (Computer Aided Design),
diseo asistido por computador es un
proceso de diseo que emplea tcnicas
graficas de computadora apoyadas en
paquetes de software para ayudar a los
diseadores.
Ing. Julio Gonzalez Prado
AMBIENTE DE DESARROLLO
La aplicacin de las herramientas CAD en el
diseo de circuitos y sistemas electrnicos es
fundamental ya que permite la adicin de
interfases graficas y simuladores.
Ing. Julio Gonzalez Prado
ESCALAS DE INTEGRACION
Los procesos de integracin implican la
continua reduccin del tamao de los
componentes, as como el incremento del
numero de compuertas en cada integrado.
Ing. Julio Gonzalez Prado
ESCALAS DE INTEGRACION
SSI (Small Scale Integrated): menos de 10
compuertas por integrado.
MSI (Medium Scale Integrated): entre 10 y 99
compuertas por integrado.
LSI (Large Scale Integrated): entre 100 y
9999 compuertas por integrado.
VLSI (Very Large Scale Integrated): entre
10000 y 99999 compuertas.
ULSI (Ultra Large Scale Integrated): 100000
compuertas mas.
Ing. Julio Gonzalez Prado
CARACTERISTICAS DE LA
INTEGRACION
Mayor numero de dispositivos por IC.
Menor numero de componentes/sistemas.
Mayor velocidad de calculo.
Menor consumo.
Mayor esfuerzo en diseo.
Mayor costo de fabricacin.
Ing. Julio Gonzalez Prado
CARACTERISTICAS DEL VHDL
Es un lenguaje concurrente aunque permite
definir dominios en los cuales las acciones
son del tipo secuencial.
Permite diseos modulares y jerrquicos, es
til para emplear con la metodologa Top
Down.
Permite simular el diseo y generar formas
de onda.
Ing. Julio Gonzalez Prado
CARACTERISTICAS DEL VHDL
Es un lenguaje que debe ser compilado antes
de ser simulado.
Ing. Julio Gonzalez Prado
CARACTERISTICAS DEL VHDL
Soporta distintos niveles de descripcin:
FUNCIONAL: modelamiento en alto nivel.
ESTRUCTURAL: la descripcin se realiza
mediante interconexin de componentes.
FISICO: se realiza la implementacin real del
circuito.
Ing. Julio Gonzalez Prado
CARACTERISTICAS DEL VHDL
A partir del modelo se puede sintetizar el
Hardware a nivel de compuertas con
herramientas de sntesis:
ALTERA : Max + Plus II
CADENCE : Synergy
CYPRESS : Warp II, III
MENTOR GRAPHICS : Autologic
SYNOPSYS : Design Compiler
VIEWLOGIC : ViewSynthesis
Ing. Julio Gonzalez Prado
CARACTERISTICAS DEL VHDL
VHDL no distingue las maysculas de las
minsculas: CASA, casa son iguales.
Las variables deben empezar con una letra,
no deben contener ni espacios ni smbolos
como &, %, $, #, . Su longitud no esta
limitada. No pueden terminar en _ _ _
Ing. Julio Gonzalez Prado
CARACTERISTICAS DEL VHDL
OBJETO: es un elemento que tiene asignado
un valor de un tipo determinado.
Segn sea el tipo de dato, el objeto poseer
un conjunto de propiedades y se le podr
aplicar un conjunto de operaciones.
Ing. Julio Gonzalez Prado
CARACTERISTICAS DEL VHDL
IDENTIFICADORES: Son un conjunto de
caracteres dispuestos de una forma
adecuada y siguiendo unas normas propias
del lenguaje, para dar un nombre a los
elementos en VHDL.
Ing. Julio Gonzalez Prado
CARACTERISTICAS DEL VHDL
Los identificadores deben empezar con un
carcter alfabtico, no pudiendo terminar en
_
No esta fijada la extensin del identificador,
pero no debe ser extremadamente larga.
Los identificadores pueden tener caracteres
numricos (0 al 9) pero estos no deben
aparecer en el principio.
No puede usarse como identificador una
PALABRA RESERVADA.
Ing. Julio Gonzalez Prado
CARACTERISTICAS DEL VHDL
PALABRAS RESERVADAS: Son un conjunto
de identificadores que tienen un significado
especifico en VHDL.
Son palabras empleadas dentro del lenguaje
para realizar un diseo.
No pueden ser empleadas como
identificadores definidos por el usuario.
Ing. Julio Gonzalez Prado
PALABRAS RESERVADAS
abs acces after alias all
and architecture array asser attribute
begin block body buffer bus
case component configuration constant downto
else disconnect elsif end entity
exit function generate file for
generic guarded inout if in
is label library linkage loop
map mod nand new next
Ing. Julio Gonzalez Prado
PALABRAS RESERVADAS
nor not null of on
open or others out package
port procedure process range record
register rem report Return select
severity signal subtype then to
transport type units until use
variable walt when while with
xor
Ing. Julio Gonzalez Prado
CARACTERISTICAS DEL VHDL
SIMBOLOS ESPECIALES: Son smbolos que
se usan para representar funciones
diferentes y especificas.
Los smbolos especiales son:
+ - / ( ) . , : ; & < > = | # <= => :=
_ _
Ing. Julio Gonzalez Prado
CARACTERISTICAS DEL VHDL
NUMEROS: Se considera que cualquier
numero se encuentra en base 10.
Se admite notacin cientfica para nmeros
en coma flotante.
Para nmeros en otras bases:
2#11000100# 16#C4#
Ing. Julio Gonzalez Prado
CARACTERISTICAS DEL VHDL
TIPO DE DATOS: Delimita los valores que
puede tener un objeto y las operaciones que
se pueden realizar con l.
Ing. Julio Gonzalez Prado
CARACTERISTICAS DEL VHDL
TIPOS ESCALARES: Son tipos que
contienen algn tipo de magnitud.
Pueden ser: Enteros, Reales, Fsicos y
Enumerados.
Ing. Julio Gonzalez Prado
CARACTERISTICAS DEL VHDL
ENTEROS: Son datos cuyo contenido
constituye un valor numrico entero.
Se definen por la palabra reservada range
que indica que esta comprendido entre un
cierto intervalo especificando sus limites.
Ejemplo: type byte is range 0 to 255;
type index is range 7 downto 0;
type integer is range -2147483648 to
2147483647;
Ing. Julio Gonzalez Prado
CARACTERISTICAS DEL VHDL
REALES: Son los que define un numero real.
type nivel is range 0.0 to 5.0;
type real is range -1,0E38 to 1,0E38;
Ing. Julio Gonzalez Prado
CARACTERISTICAS DEL VHDL
FISICOS: Son datos que se corresponden
con magnitudes fsicas, es decir, tienen valor
y unidades.
type long is range 0 to 1,0e9
units
um;
mm=1000um;
m=1000mm;
end units;
Ing. Julio Gonzalez Prado
CARACTERISTICAS DEL VHDL
ENUMERADOS: Son datos que pueden
tomar cualquier valor especificado en un
conjunto finito lista.
Este conjunto se indica mediante una lista
encerrada entre parntesis de elementos
separados por comas.
type nivel _ lgico is (alto,bajo,Z);
type bit is (0, 1);
Ing. Julio Gonzalez Prado
CARACTERISTICAS DEL VHDL
TIPOS COMPUESTOS
MATRICES: Son una coleccin de elementos
del mismo tipo a los que se accede mediante
un ndice.
Pueden ser de una dimensin de varias
dimensiones.
Pueden estar definidas para un rango el
ndice puede ser libre teniendo la matriz una
dimensin terica infinita.
Ing. Julio Gonzalez Prado
CARACTERISTICAS DEL VHDL
MATRICES: EJEMPLOS
type palab is array (31 downto 0) of bit;
type transform is array (1 to 4, 1 to 4) of real;
type bit_vector is array (natural range <>) of
bit;

Ing. Julio Gonzalez Prado
CARACTERISTICAS DEL VHDL
REGISTROS: Es el equivalente al tipo
registro de otros lenguajes.
type alumno is
record
nombre: string;
curso: integer;
end record;
Ing. Julio Gonzalez Prado
CARACTERISTICAS DEL VHDL
ATRIBUTOS: Son condiciones
caractersticas que pueden tomar las seales
variables.
Ing. Julio Gonzalez Prado
ATRIBUTOS
Suponiendo que t es un tipo enumerado,
entero, flotante fisico se tienen:
tleft : limite izquierdo del tipo t
tright : limite derecho del tipo t
tlow : limite inferior del tipo t
thigh: limite superior del tipo t
Ing. Julio Gonzalez Prado
ATRIBUTOS
Suponiendo un tipo t, un miembro x de este tipo y
un entero N :
tpos(x): posicion x dentro del tipo t
tval(N): elemento (N) del tipo t
tleftof(x): elemento que esta a la izquierda de x en
t
trightof(x): elemento que esta a la derecha de x en
t
tpred(x): elemento que esta delante de x en t.
tsucc(x): elemento que esta detrs de x en t
Ing. Julio Gonzalez Prado
ATRIBUTOS
Si a es un tipo matriz, n elemento de este,
N numero entero desde 1 hasta el numero
de dimensiones de la matriz:
aleft(N): limite izquierdo del rango de
dimension N de a.
aright(N):limite derecho del rango de
dimension N de a.
alow(N): limite inferior del rango de
dimension N de a.


Ing. Julio Gonzalez Prado
ATRIBUTOS
ahigh(N): limite superior del rango de
dimension N de a.
arange(N): Rango del indice de dimension N
de a.
alength(N): Longitud del indice de dimension
N de a.
Ing. Julio Gonzalez Prado
ATRIBUTOS
Suponiendo que s es una seal:
sevent: Devuelve V si se ha producido un
cambio en la seal s.
sstable (tiempo): Devuelve V se la seal
estuvo estable durante el ultimo periodo de
tiempo.
El atributo sevent es util en la definicion del
circuitos secuenciales para detectar el flanco
de subida o bajada de la seal de reloj.
Ing. Julio Gonzalez Prado
TERMINOLOGIA
ACCIONES CONCURRENTES: son aquellas
que se realizan en forma simultanea en un
circuito. Un ejemplo son los circuitos
combinacionales.
ACCIONES SECUENCIALES: son aquellas
que se realizan siguiendo una secuencia un
orden determinado, no todas en forma
simultanea. Un ejemplo de ellas son los
procesos que se describen las sentencias de
un programa: CASE, IF-ELSE, DO-WHILE,
FOR.
Ing. Julio Gonzalez Prado
TERMINOLOGIA
PROCESO (PROCESS): son los dominios
que emplea el VHDL para emplear acciones
de tipo secuencial.
La asignacion de eventos secuenciales
dentro de una estructura concurrente se
ejecutar de forma concurrente, es decir, al
mismo tiempo que las dems sentencias.
Ing. Julio Gonzalez Prado
SINTAXIS
MODO: Describe la direccin en la cual la
informacin es transmitida a travs del
puerto.
Puede ser: Modo IN
Modo OUT
Modo BUFFER
Modo INOUT
Ing. Julio Gonzalez Prado
SINTAXIS
MODO IN: Es cuando por el puerto la
informacin solo puede entrar a la entidad.
Se usa generalmente en relojes, entradas de
control (load, reset, enable) y datos de
entrada unidireccionales.
Ing. Julio Gonzalez Prado
SINTAXIS
MODO OUT: Es cuando la informacin en el
puerto fluye hacia fuera de la entidad.
Este modo no permite realimentacin, es
decir, el compilador no puede leer este dato.
Ing. Julio Gonzalez Prado
SINTAXIS
MODO BUFER: Es usado para una
realimentacin interna (se usa como un driver
dentro de la entidad)
Es similar al MODO OUT pero permite
realimentacin.
No es un puerto BIDIRECCIONAL y solo
puede ser conectado directamente a una
seal interna a un puerto de modo buffer de
otra entidad.
Ing. Julio Gonzalez Prado
SINTAXIS
MODO INOUT: Es usado para seales
bidireccionales.
Permite realimentacin interna.
Puede reemplazar a cualquiera de los modos
anteriores.
Ing. Julio Gonzalez Prado
SINTAXIS
TIPO: Son las diferentes clases de valores
que puede tomar la seal.
Pueden haber tantos tipos como se quiera,
ya que en VHDL se pueden definir por el
usuario.
Tambin existen los tipos de forma estndar
y los creados por libreras normalizadas.
La norma internacional IEEE 1076/93 define
4 tipos nativos: BOOLEAN, BIT,
BIT_VECTOR, INTEGER.
Ing. Julio Gonzalez Prado
SINTAXIS
TIPO BOOLEAN: Pueden tomar valores
VERDADERO (TRUE) FALSO (FALSE).
Un ejemplo son las salidas de los
comparadores.
TIPO BIT: Pueden tomar valores 0 (LOW)
1(HIGH).
TIPO BIT_VECTOR: Es un vector de bits.
TIPO INTEGER: Puede manejar nmeros
enteros.

Ing. Julio Gonzalez Prado
SINTAXIS
Posteriormente la norma IEEE 1164 ampli el
mbito del bit definiendo un nuevo tipo
llamado std_logic, std_ulogic y sus derivados:
std_logic_vector, std_ulogic_vector.
Ing. Julio Gonzalez Prado
SINTAXIS
ARCHIVOS DE CABECERA: Se colocan al
inicio de la entidad y permiten al programa
cargar diversas libreras y archivos que
contienen tipos y definiciones que sern
usadas por el programa.
library ieee;
use ieee.std_logic_1164.all;
use work.std_arith.all;
Ing. Julio Gonzalez Prado
library (biblioteca)
Es un lugar al que se tiene acceso para
utilizar las unidades de diseo
predeterminadas por el fabricante
permitiendo agilizar el diseo.
En VHDL existen dos bibliotecas: ieee y
work.

Ing. Julio Gonzalez Prado
library (biblioteca)
La biblioteca work permite almacenar los
programas que el usuario va generando.
Cuando el diseo utiliza algun paquete es
necesario llamar a la biblioteca que lo
contiene.
En el caso de work no se necesita la
declaracion library porque la carpeta siempre
esta presente al desarrolar el diseo.
Ing. Julio Gonzalez Prado
library (biblioteca)
La biblioteca std_logic_1164 contiene:
El paquete numeric_std: define funciones
para realizar operaciones entre diferentes
tipos de datos que pueden representarse con
signo y sin signo.
El paquete numeric_bit: define tipos de datos
binarios con signo sin signo.
El paquete std_arith: define funciones y
operadores aritmeticos tales como = > <
Ing. Julio Gonzalez Prado
SINTAXIS
El programa en VHDL esta formado de dos
partes principales:

Ing. Julio Gonzalez Prado
SINTAXIS
ENTIDAD (entity): Es la interfaz del
dispositivo con el exterior.
Es decir, describe los puertos (ports) que son
las entradas y salidas del circuito.


Ing. Julio Gonzalez Prado
SINTAXIS
Su estructura es:
entity nomb_ent is
[generic (lista de parametros)];
ports(
lista de puertos);
end nomb_ent;
Ing. Julio Gonzalez Prado
EJEMPLO:
Entidad para un comparador de igualdad de dos
nmeros de 4 bits.
a

b
COMP
IGUAL
Ing. Julio Gonzalez Prado
EJEMPLO:
Entidad para un comparador de igualdad de dos
nmeros de 4 bits.
entity comp is port (
a,b: in bit_vector(3 downto 0);
igual: out bit);
end comp;
Ing. Julio Gonzalez Prado
SINTAXIS
ARQUITECTURA (architecture): describe la
funcionalidad del dispositivo, es decir las
transformaciones que se realizaran sobre los
datos que ingresan por los puertos para
producir la salida.
Es decir describe el funcionamiento del
dispositivo.
Ing. Julio Gonzalez Prado
SINTAXIS
Su estructura es:
architecture nomb_arch of nomb_ent is
[declaraciones]
begin
sentencias concurrentes;
end nomb_arch;
Ing. Julio Gonzalez Prado
ESTILOS DE ARQUITECTURA
Son las formas de descripcin que se utilizan
dependiendo cada uno de su propio nivel de
abstraccin.
Ing. Julio Gonzalez Prado
ESTILO BEHAVIORAL
(COMPORTAMIENTO)
Este estilo se caracteriza por incluir
sentencias y ordenes tpicas de un lenguaje
de programacin: when, do-while, if-then.
Como estas sentencias son de tipo
secuencial se usan en el PROCESO
(process).
No interesa la estructura interna del
dispositivo.
Ing. Julio Gonzalez Prado
ESTILO BEHAVIORAL
architecture ejem1of comp is
begin
process(a,b)
begin
if(a=b) then igual <= 1;
else igual <= 0;
end if;
end process;
end ejem1;
Ing. Julio Gonzalez Prado
ESTILO DATAFLOW
(FLUJO DE DATOS)

Describe como la informacin ser
transmitida usando seales a travs del
dispositivo de modo que realice el trayecto
entre entrada y salida SIN USO DE
ASIGNACIONES SECUENCIALES.
En este estilo no se pueden usar procesos.
Ing. Julio Gonzalez Prado
DIAGRAMA CIRCUITAL
IGUAL
U4
B(3)
A(3)
B(2)
A(2)
B(1)
A(1)
B(0)
A(0)
U3
U2
U1
U0
Ing. Julio Gonzalez Prado
ESTILO DATAFLOW
architecture ejem2 of comp is
begin
igual <= (a(0) xnor b(0))
and (a(1) xnor b(1))
and (a(2) xnor b(2))
and (a(3) xnor b(3));
end ejem2;
Ing. Julio Gonzalez Prado
ESTILO STRUCTURAL
(ESTRUCTURAL)
Describe detalladamente como se conectan y
evalan los componentes con seales.
Es el estilo mas difcil de usar ya que detalla
las conexiones y es una forma de descripcin
circuital del dispositivo.
Ing. Julio Gonzalez Prado
ESTILO STRUCTURAL
(ESTRUCTURAL)
Su utilidad se presenta cuando se desea
crear una estructura grande y deseamos
descomponerla en partes para manejarla
mejor y hacer una simulacin de cada parte.
Suele requerir el uso de seales auxiliares,
paquetes y libreras de accesorios se deben
declarar al comienzo de la entidad.
Ing. Julio Gonzalez Prado
ESTILO STRUCTURAL
architecture ejem3 of comp is
signal x: bit_vector(0 to 3);
begin
u0: xnor2 port map(a(0),b(0),x(0));
u1: xnor2 port map(a(1),b(1),x(1));
u2: xnor2 port map(a(2),b(2),x(2));
u3: xnor2 port map(a(3),b(3),x(3));
u4: and4 port map(x(0),x(1),x(2),x(3),igual);
end ejem3;
Ing. Julio Gonzalez Prado
CONSTANTES
Son elementos que se inicializan en un
determinado valor y que no puede ser
cambiado una vez inicializado.
Ejemplos: constant pi: real := 3.14;
constant delay: time := 20 s;
Ing. Julio Gonzalez Prado
VARIABLES
Son elementos cuyo valor puede ser
asignado en cualquier instante y tambin con
un valor inicial.
Ejemplos: variable alfa:natural:= 1;
Ing. Julio Gonzalez Prado
SEALES
Son elementos que se declaran igual que las
variables y las constantes.
Se diferencian de las variables en que
guardan un valor y lo pueden hacer visible en
el momento adecuado.
O sea puede como un elemento que tiene
dos partes: la parte donde se escribe el dato
y la parte donde se lee.
Ing. Julio Gonzalez Prado
SEALES
Pueden ser de tres tipos:
NORMAL: no se pueden desconectar;
BUS: tiene un valor por defecto cuando estn
desconectadas;
REGISTER: no tienen un valor por defecto
pero conservan el ultimo valor que se
escribi.
Ing. Julio Gonzalez Prado
SIGNIFICADO FISICO
Las VARIABLES son elementos abstractos,
es decir, solo tiene significado para el
lenguaje.
Las SEALES tienen significado fsico:
representan las conexiones entre elementos
del circuito.
Ing. Julio Gonzalez Prado
DIFERENCIA
La diferencia principal es que una asignacin
a una variable se realiza en forma
INMEDIATA, o sea toma el valor que se le
asigna en el momento de la asignacin.
En cambio una seal no recibe el valor que
se le ha asignado HASTA EL SIGUIENTE
PASO DE SIMULACION.
Ing. Julio Gonzalez Prado
SENTENCIA PROCESS
Es una instruccin tpica de VHDL, se usa en
el estilo BEHAVIORAL.
Es la forma que tiene el VHDL para incluir las
sentencias secuenciales.
Para el compilador, todo el PROCESS se
considera solo un paso de simulacin.
LISTA SENSIBLE: es la relacin de las
seales que deben cambiar para que se
ejecute el process.

Ing. Julio Gonzalez Prado
PROCESS
Sintaxis:
[etiqueta] process (lista sensible)
[zona de declaracin]
begin
sentencias secuenciales;
end process [etiqueta];
Ing. Julio Gonzalez Prado
FORMA 1:
process (lista sensible)
begin
sentencias secuenciales;
end process;
Se continua ejecutando el process mientras
alguna e las seales de la lista sensible
contine cambiando.
Al llegar a end se suspende el proceso y se
realiza la asignacion de seal.
Ing. Julio Gonzalez Prado
FORMA 2:
process
begin
sentencias secuenciales;
wait;
sentencias secuenciales;
wait;
sentencias secuenciales;
end process;
Ing. Julio Gonzalez Prado
FORMA 2:
No tiene lista sensible.
Usa la palabra wait.
Tiene la forma de lazo infinito.
El proceso se suspende cada vez que se
encuentra un wait, para realizar la asignacin
a seal.
Ing. Julio Gonzalez Prado
SENTENCIA WAIT
Suspende el proceso y realiza las
asignaciones respectivas a las seales.
Sintaxis:
wait on (seales);
wait until (condicin);
wait for (tiempo);
Ing. Julio Gonzalez Prado
SENTENCIA IF
Se usa con then else ejecutar un conjunto
de sentencias segn la evaluacin de una
condicin conjunto de condiciones, cuyo
resultado puede ser verdadero falso.
Ing. Julio Gonzalez Prado
SENTENCIA IF
Sintaxis:
If (condicin) then
sentencia 1;
else
sentencia 2;
end if;

Ing. Julio Gonzalez Prado
SENTENCIA IF
Si la condicin es VERDADERA, se ejecuta
la sentencia 1.
Si la condicin es FALSA, se ejecuta la
sentencia 2.
Ing. Julio Gonzalez Prado
ELSIF
Es una extensin de la sentencia if-then que
permite incluir una segunda condicin
Sintaxis:
If (condicion1) then sentencia 1;
elsif (condicion2) then sentencia 2;
else sentencia 3;
end if;

Ing. Julio Gonzalez Prado
ELSIF
Funcionamiento:
Si condicin 1 es verdadera, se ejecuta la
sentencia 1,
Si la condicin 1 es falsa, se evala la condicin
2,
Si la condicin 2 es verdadera, se ejecuta la
sentencia 2,
Si la condicin 2 es falsa, se ejecuta la
sentencia 3.



Ing. Julio Gonzalez Prado
ELSIF
(EJEMPLO)
process (e,s)
begin
if (e = 0) then c <= 0;
elsif (s = 0) then c <= a;
else c <= b;
end if;

Ing. Julio Gonzalez Prado
SENTENCIA CASE
Es una sentencia que permite ejecutar un
conjunto de opciones de acuerdo a la seal
de seleccin.
Sintaxis:
case (seal a evaluar) is
when (valor1) => accion_1;
when (valor2) => accion_2;
when (valor n) => accion_n;
end case;
Ing. Julio Gonzalez Prado
SENTENCIA CASE
Funcionamiento:
Si seal a evaluar toma valor 1, se ejecuta
accion_1, pasando luego el programa a la
linea siguiente de end, continuando luego el
programa.
Si seal a evaluar toma valor 2, se ejecuta
accion_2 y as sucesivamente.
Ing. Julio Gonzalez Prado
CASE
(EJEMPLO)
case control is
when 00 => d <= a;
when 01 => d <= b;
when 10 => d <= c;
when others => d <= 0;
end case;
Ing. Julio Gonzalez Prado
SENTENCIA LOOP
Se usa para ejecutar un grupo de sentencias
un numero determinado de veces.
Consiste en un ciclo for un ciclo while.
La sentencia for ejecuta un numero
especifico de iteraciones basado en el valor
de una variable.
La sentencia while continuar ejecutando
una operacin mientras una condicin de
control local sea cierta.
Ing. Julio Gonzalez Prado
EJEMPLO 1
process(a)
begin
ciclo1: for i in 7 downto 0
loop
entrada(i) <= 1
end loop;
end process;
Ing. Julio Gonzalez Prado
EJEMPLO 2
process (a)
variable i: integer := 0;
begin
ciclo2: while i < 7 loop
entrada (i) <= 0;
i = i + 1;
end loop;
end process;

Ing. Julio Gonzalez Prado
SENTENCIA EXIT
Se usa dentro del loop y permite salir del lazo
si se alcanza una condicin fijada por
nosotros.
Su verdadera utilidad se encuentra si se
disea controladores de memoria.
Ing. Julio Gonzalez Prado
EJEMPLO
process (a)
begin
ciclo1:for i in 7 downto 0
loop
if alength < i then exit ciclo1;
entrada(i) <= 0;
end if;
end loop;
end process;
Ing. Julio Gonzalez Prado
SENTENCIA NEXT
Se encuentra tambin dentro de un ciclo loop
y sirve para saltarnos una ms de las
ejecuciones programadas.
Ing. Julio Gonzalez Prado
EJEMPLO
process (a)
begin
ciclo1: for i in 7 downto 0
loop
if i=4 then next;
else
entrada (i) <= 1,
end if;
end loop;
end process;
Ing. Julio Gonzalez Prado
SENTENCIA NULL
Se utiliza para que dada una condicin
especial no pase nada, es decir, que ninguna
seal variable cambie y que el programa
siga su curso habitual. Su comportamiento
dentro de un loop es similar al de la
sentencia next.

Вам также может понравиться