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.
Robot Modular De Reconfiguración Automática: Ahora, han sido traídos al mundo real, los Transformers toman la forma de robots que pueden transformarse en vehículos.