Sunteți pe pagina 1din 102

VHDL

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 10761993,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 and begin case else exit acces architecture block component disconnect function after array body alias asser buffer all attribute bus

configuration constant downto elsif generate inout library


Ing. Julio Gonzalez nand Prado

end file if linkage new

entity for in loop next

generic guarded is map label mod

PALABRAS RESERVADAS
nor open port register severity transport variable xor not or null others of out range Return then until while on package record select to use with

procedure process rem signal type walt report subtype units when
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


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

 ENTEROS:

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
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.
 ahigh(N):

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
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
A(0) U0 B(0) U1 U4 IGUAL A(2) B(2) A(3) B(3) U3 U2

A(1) B(1)

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 sentencias secuenciales.  Para el compilador, todo el PROCESS considera solo un paso de simulacin.  LISTA SENSIBLE: es la relacin de seales que deben cambiar para que ejecute el process.

las se las se

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 asignaciones respectivas a las seales.  Sintaxis: wait on (seales); wait until (condicin); wait for (tiempo);

las

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 elsif (condicion2) then else end if; sentencia 1; sentencia 2; sentencia 3;

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) elsif (s = 0) else end if;

then c <= 0; then c <= a; c <= b;

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.

Ing. Julio Gonzalez Prado

S-ar putea să vă placă și