VHDL

Tipos de Descripción

• Las estructuras condicionales vistas para esta ejecución concurrente le dan al programador un cierto nivel de abstracción. . para diseño de sistemas complejos.DESCRIPCIÓN SERIE COMPORTAMENTAL • La descripción RTL es una descripción bastante cercana al hardware real. se hace necesario un grado de abstracción todavía más elevado. • Sin embargo.

• La diferencia fundamental entre VHDL y estos lenguajes de software. es el modo de ejecución. en una ejecución concurrente.DESCRIPCIÓN SERIE COMPORTAMENTAL • Los lenguajes de programación software son un ejemplo claro de lenguajes de descripción comportamental de alto nivel. de forma directa. . – Lenguajes Software  Ejecución Secuencial • La Ejecución Secuencial permite la utilización de estructuras como bucles que no son posibles. – VHDL  Ejecución Concurrente.

cada uno de ellos es visto como una instrucción concurrente (como un circuito). . • Cuando existen varios bloques PROCESS. la ejecución es concurrente. internamente a los PROCESS la ejecución de las instrucciones es serie.DESCRIPCIÓN SERIE COMPORTAMENTAL • La programación concurrente no es siempre la más cómoda para la descripción de ideas. • En VHDL esta programación secuencial se define dentro de bloques indicados con la palabra clave PROCESS. • Es decir. pero entre bloques PROCESS. • VHDL también permite una programación secuencial. • En un mismo programa pueden haber múltiples bloques PROCESS.

DESCRIPCIÓN SERIE COMPORTAMENTAL Pregunta:……. Si un bloque PROCESS es en realidad una instrucción concurrente ¿Como se activa esta instrucción? ¿Cuándo se ejecuta? .

.DESCRIPCIÓN SERIE COMPORTAMENTAL Respuesta:……. bucles) • Para poder indicarle al programa cuándo activar o ejecutar un bloque PROCESS existen dos procedimientos: – La LISTA SENSIBLE. • En un bloque PROCESS su activación es un poco compleja (dentro de él puede haber instrucciones. condiciones. – La sentencia WAIT. asignaciones.

• Ejemplo: -. -.Con LISTA SENSIBLE p1: PROCESS(b.DESCRIPCIÓN SERIE COMPORTAMENTAL Respuesta:……. WAIT ON a. .a) BEGIN a<=b+a+2. END PROCESS p1.Con Sentencia WAIT p2: PROCESS BEGIN a<=b+a+2. END PROCESS p1.b.

ON interrupcion FOR 25 ns.sensor UNTIL counter=3 FOR 100 ns.DESCRIPCIÓN SERIE COMPORTAMENTAL Estructuras de la Ejecución Serie:  El bloque de Ejecución Serie (PROCESS): proc_id: PROCESS(lista sensible) declaraciones BEGIN instrucciones serie END PROCESS proc_id. primero provocará la UNTIL counter>7. Ejemplos: WAIT WAIT WAIT WAIT WAIT Cualquiera que ocurra ON pulso. . ejecución del proceso FOR 1 ns. ON clk. Esta opción es solo para VHDL de Simulación  Sentencia de espera (WAIT): WAIT ON lista_sensible UNTIL condicion FOR timeout.

. -.THEN..Con WAIT p2: PROCESS BEGIN c<=b+a+2.a) BEGIN c<=b+a+2. ELSE sentencias END IF. Siempre definir todas las posibilidades. WAIT ON a..b. END PROCESS p1.  Sentencia condicional (IF. END PROCESS p1..Con lista sensible p1: PROCESS(b. Se pueden utilizar tantos ELSIF como sea necesario.ELSE): IF condicion THEN sentencias ELSIF condicion THEN sentencias .DESCRIPCIÓN SERIE COMPORTAMENTAL Estructuras de la Ejecución Serie:  Sentencia de espera (WAIT): -..

END PROCESS. ELSIF a>c THEN p<=3. END IF..c) BEGIN IF a>b THEN p<=2..DESCRIPCIÓN SERIE COMPORTAMENTAL DESCRIPCIÓN SERIE COMPORTAMENTAL Estructuras de la ejecución serie:  Sentencia condicional (IF. . ELSE p<=5.THEN. ELSIF (a=c AND c=b) THEN p<=4.b.ELSE): Ejemplo: PROCESS(a.

. y la ultima si “a<b”.ELSE” un comparador de dos entradas (a y b) de 3 bits. Una se activara si “a=b”. El comparador tiene tres salidas activas a nivel bajo. otra si “a>b”...THEN.VHDL Descripción de Flujo de Datos (RTL) • Ejemplo: Describir en VHDL utilizando “IF.. .

se ejecuta cuando a o b cambian BEGIN IF a>b THEN mayor <=‘0'. END comparador. igual. END arq.B : IN bit_vector(2 downto 0). menor : OUT bit). igual <=‘1'. menor <=‘0'. ELSE mayor <=‘1'. END PROCESS.ENTITY comparador IS PORT(A. ELSIF a<b THEN mayor <=‘1'. END IF. menor <=‘1'. igual <=‘1'.b) -. menor <=‘1'. igual <=‘0'. ARCHITECTURE arq OF comparador IS BEGIN PROCESS(a. mayor. .

acta<="No presentado". WHEN OTHERS => instrucciones END CASE.DESCRIPCIÓN SERIE COMPORTAMENTAL DESCRIPCIÓN SERIE COMPORTAMENTAL Estructuras de la ejecución serie:  Sentencia de selección (CASE): : CASE expresión IS WHEN caso1 => instrucciones WHEN caso2 => instrucciones . acta<="Notable". acta<=“Se rajo".. . Valores constantes Ejemplo: CASE puntuación IS WHEN 5 => WHEN 4 => WHEN 3 => WHEN 0 => WHEN OTHERS => END CASE. acta<="Sobresaliente". acta<="Aprobado"..

Una se activara si “a=b”. .VHDL Descripción de Flujo de Datos (RTL) • Ejemplo: Describir en VHDL utilizando “CASE” un comparador de dos entradas (a y b) de 3 bits. El comparador tiene tres salidas activas a nivel bajo. otra si “a>b”. y la ultima si “a<b”.

usarse solo para analizar bucle_id: WHILE condicion LOOP Instrucciones END LOOP. información de vectores y no para operaciones secuenciales. Las construcciones de los bucles FOR y WHILE se dan a continuación: bucle_id: FOR identificador IN rango LOOP Instrucciones Estas estructuras deben END LOOP. .DESCRIPCIÓN SERIE COMPORTAMENTAL DESCRIPCIÓN SERIE COMPORTAMENTAL Estructuras de la ejecución serie:  Sentencias de bucles (FOR y WHILE LOOPs): bucle_id: tipo_de_iteracion LOOP Instrucciones END LOOP.

Lazo WHILE: cuenta:=5. END LOOP. -.DESCRIPCIÓN SERIE COMPORTAMENTAL DESCRIPCIÓN SERIE COMPORTAMENTAL Estructuras de la ejecución serie:  Sentencias de bucles (FOR y WHILE LOOPs): Ejemplos: -. Los identificadores siempre son variables . WHILE cuenta>=0 LOOP tabla(cuenta)<=cuenta*2. END LOOP. cuenta:=cuenta-1.Lazo FOR: FOR cuenta IN 5 DOWNTO 0 LOOP tabla(cuenta)<=cuenta*2.

La salida debe ser activa alta y cuando la paridad sea par debe ser ‘1’. cuando sea impar debe ser ‘0’. utilizando la descripción serie comportamental (algorítmica) y las estructuras cíclicas. .DESCRIPCIÓN SERIE COMPORTAMENTAL EJEMPLO: Construir. un circuito que permita detectar si un dato de entrada de 8 bits posee paridad par o impar.

.

Un Conversor de BINARIO de 4 bits a GRAY. de lo contrario debe de mostrar la salida en el mismo orden de la entrada. los siguientes circuitos: – – – – – – – – – Compuerta AND de 4 Entradas. NOTA: Entregar en formato IEEE. Un circuito que permita desplazar una entrada de 5 bits una posición a la izquierda cuando una entrada de control “Desplazar” sea igual a ‘1’. Diseñar tanto en descripción RTL como en ALGORITMICA. Un Decodificador de 3 a 8. Compuerta NOT. Un Sumador Completo de 4 bits. Multiplexor de 8 a 1.TALLER • • Investigar que es la Descripción Estructural en VHDL y cuales son sus estructuras. Un circuito que presente el mayor de tres valores de entrada de 4bits cada entrada. . Compuerta XOR.

Sign up to vote on this title
UsefulNot useful