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

VHDL

Tipos de Descripción
VHDL
Tipos de Descripción
Introducción
En VHDL existen dos aproximaciones a la descripción
comportamental de un circuito.
1- Se pueden especificar las ecuaciones de transferencia
entre diferentes objetos en VHDL.

ARCHITECTURE RTL of ejemplo is


SIGNAL aux : STD_LOGIC;
BEGIN
aux <= a XOR b;
resultado <= aux XOR c;
END RTL;

Sistemas Digitales Programables AREVALO 2019


VHDL
Tipos de Descripción
Introducción
2- Se pueden especificar el comportamiento del sistema de
manera abstracta. “Como un Algoritmo”

ARCHITECTURE comportamental of ejemplo is


BEGIN
PROCESS (a, b, c)
BEGIN
IF ((a XOR b XOR c)='1') THEN
Resultado <= '1';
ELSE
Resultado <= '0';
END IF;
END PROCESS;
END comportamental;

Sistemas Digitales Programables AREVALO 2019


VHDL
Tipos de Descripción
DIFERENCIAS:
• La ejecución de sentencias en el RTL es concurrente, es decir, las
sentencias indican conexiones o leyes que se ejecutan continuamente.
• En la descripción comportamental abstracta es posible describir
partes con instrucciones que se ejecutan en serie (como en C o Java).
• A nivel de síntesis siempre es más sencillo sintetizar un circuito descrito
al nivel RTL que otro descrito en un nivel más abstracto.
• La mayoría de estructuras de la descripción RTL tienen una
correspondencia casi directa con su implementación hardware.
• Las estructuras comportamentales presentan síntesis automática del
circuito más compleja, debido a la ejecución en serie de las
instrucciones que tienen mucho sentido en la ejecución de programas,
pero cuyo significado hardware es algo difuso.

Sistemas Digitales Programables AREVALO 2019


VHDL
Descripción de Flujo de Datos (RTL)
Ejemplo: Describir en VHDL el siguiente circuito

entity ejemplo_RTL is
port(I: in BIT_VECTOR(1 downto 0);
O: out BIT_VECTOR(3 downto 0));
end ejemplo_RTL;

Sistemas Digitales Programables AREVALO 2019


VHDL
Descripción de Flujo de Datos (RTL)
Ejemplo: Describir en VHDL el siguiente circuito

OBTENER LAS
ECUACIONES
ARCHITECTURE arq OF ejer1_RTL IS
SIGNAL no_I : BIT_VECTOR(1 downto 0);
BEGIN
no_I <= not I;
O(0) <= I(0) nor I(1);
O(1) <= no_I(0) nor I(1);
O(2) <= I(0) nor no_I(1);
O(3) <= no_I(0) nor no_I(1);
END arq;

Sistemas Digitales Programables AREVALO 2019


VHDL
Descripción de Flujo de Datos (RTL)
Estructuras RTL:
1- Asignación condicional: WHEN … ELSE
*Se utiliza en toda expresión condicional que describa hardware de forma
concurrente.
*Se debe incluir todas las opciones posibles y los casos de variación de
una señal.
*Se puede anidar varias condiciones en una misma asignación.
*Es el equivalente al “IF…THEN” del estilo algorítmico.

EJEMPLO:
s <= '1' WHEN a=b ELSE
'0' WHEN a>b ELSE
'X';

Sistemas Digitales Programables AREVALO 2019


VHDL
Descripción de Flujo de Datos (RTL)
Ejemplo: Describir en VHDL del DECO de 2 a 4
utilizando asignación condicional WHEN…ELSE

architecture when_else of DECODER is


begin
O <= "0001" when I = "00" else
"0010" when I = "01" else
"0100" when I = "10" else
"1000" when I = "11" else
"XXXX";
end when_else;

Sistemas Digitales Programables AREVALO 2019


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

ENTITY comparador IS
PORT(A,B : in bit_vector(2 downto 0);
igual, mayor, menor : out std_logic);
END comparador;

ARCHITECTURE arq OF comparador IS


BEGIN
igual <= '1' WHEN A=B ELSE '0';
mayor <= '1' WHEN A>B ELSE '0';
menor <= '1' WHEN A<B ELSE '0';
END arq;

Sistemas Digitales Programables AREVALO 2019


VHDL
Descripción de Flujo de Datos (RTL)
Estructuras RTL:
1- Asignación con selección:
WITH…SELECT…WHEN
*Es una ampliación de la Asignación Condicional.
*Es similar a la estructura “case o switch”.
*La asignación se hace según el resultado de una expresión o el valor de una
señal.
*Se debe incluir todas las opciones posibles y los casos de variación de una
señal.
EJEMPLO:
WITH estado SELECT
semaforo <= "rojo" WHEN "01",
"verde" WHEN "10",
"amarillo" WHEN "11",
"no funciona“ WHEN OTHERS;

Sistemas Digitales Programables AREVALO 2019


VHDL
Descripción de Flujo de Datos (RTL)
Ejemplo: Describir en VHDL del MUX2a1 utilizando
asignación con selección

ARCHITECTURE arq OF ejer1_RTL IS


BEGIN
WITH selec SELECT
y <= a WHEN ‘0’,
b WHEN ‘1’,
‘X’ WHEN OTHERS;
END arq;

Sistemas Digitales Programables AREVALO 2019


VHDL
Descripción de Flujo de Datos (RTL)
ENTITY semaforo IS
PORT( estado : in bit_vector(1 downto 0);
salida : out bit_vector(2 downto 0));
END semaforo;
ARCHITECTURE arq OF semaforo IS
TYPE valores is (rojo, amarillo, verde, nofunciona);
SIGNAL semaforo_signal: valores;
BEGIN
semaforo_signal <= rojo WHEN estado="00" ELSE
amarillo WHEN estado="01" ELSE
verde WHEN estado="10" ELSE
nofunciona;
WITH semaforo_signal SELECT
salida <= "100" when rojo,
"010" when amarillo,
"001" when verde,
"000" when nofunciona;
END;
Sistemas Digitales Programables AREVALO 2019
TALLER 1
1- Investigar utilizando por lo menos 2 (dos) libros de la biblioteca los siguientes conceptos:

➢Que es una CONSTANTE, una VARIABLE, una SEÑAL?


➢Cuales son las diferencias entre ellas?
➢Cual es el lugar dentro del código donde son definidas?
➢Que es la Descripción ALGORITMICA(o COMPORTAMENTAL) en VHDL y cuales son sus
estructuras.
➢Diseñar tanto en descripción RTL como en ALGORITMICA(o COMPORTAMENTAL), los
siguientes circuitos (Utilizar QUARTUS PRIME):
• Compuerta OR de 4 Entradas.
• Compuerta NAND de 3 Entradas.
• Compuerta NOT.
• Multiplexor de 8 a 1.
• Un Decodificador de 4 a 16.
• Un Conversor de GRAY de 4 bits a BCD.
• Un Sumador Completo de 4 bits.
• Un circuito que calcule el mayor entre tres valores de entrada (cada entrada de 3bits).

FECHA DE ENTREGA: MARTES 19 DE FEBRERO DE 2019

Sistemas Digitales Programables AREVALO 2019

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