View
212
Download
0
Embed Size (px)
DESCRIPTION
SolucionTema3VHDSD
Citation preview
PROBLEMA 3 (Examen Parcial, II Semestre 2014-2015)
Diseñe un circuito digital el cual se activa mediante una señal habilitadora START. El circuito
selecciona lo que mostrará en la salida F binaria de 5 bits. Dos datos binarios de 4 bits, X y Y, son
ingresados al sistema. Además, tiene una entrada de selección S de 2 bits (S1 S0). El sistema
funciona de la siguiente manera: Cuando START.L=L, el sistema se comporta como una calculadora
básica y realiza lo especificado en la tabla siguiente; caso contrario, el sistema determina el mayor
de los datos entre X y Y, presentándolo en F.
S1 S0 F Operación
0 0 0000 Reset
0 1 Y - X Resta
1 0 X - Y Resta
1 1 X + Y Suma aritmética
Escriba el código VHDL equivalente del circuito descrito, mediante la descripción RTL.
Circuito
Digital
4
4
S1.H
S0.H
5 F
X
Y
START.L
Solución
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity tema3 is
port(x,y: in std_logic_vector(3 downto 0);
start: in std_logic;
s1, s0: in std_logic;
f: out std_logic_vector(4 downto 0));
end tema3;
architecture solucion of tema3 is
signal compar,calc,aux1,aux2: std_logic_vector(4 downto 0);
begin
aux1<= '0'&x;
aux2<= '0'&y;
compar<= aux2 when (aux2>aux1) else aux1;
calc<= "00000" when (s1='0' and s0='0') else
aux2-aux1 when (s1='0' and s0='1') else
aux1-aux2 when (s1='1' and s0='0') else
aux1+aux2 when (s1='1' and s0='1') else
Unaffected;
f<= calc when(start='1') else compar;
end solucion;