Está en la página 1de 9

INFORME N1

FechaCarlos
de entrega:
Jose Delgado
22 de sep.
Gutarra
2015
12190093

Diseo Digital

Ejercicios Propuestos
1. Implemente un multiplicador de 4 bits por 4 bits.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity MULTIPLICADOR is

Port (X,Y : in std_logic_vector(3 downto 0);


K : out std_logic_vector(7 downto 0));
end MULTIPLICADOR;
architecture Behavioral of MULTIPLICADOR is
signal P1, P2, P3, P4 : std_logic_vector(7 downto 0);
signal A, B, C, D: std_logic_vector(3 downto 0);
begin
A<=Y(0)&Y(0)&Y(0)&Y(0);
P1<="0000"&(X and A);
B<=Y(1)&Y(1)&Y(1)&Y(1);
P2<="000"&(X and B)&"0";
C<=Y(2)&Y(2)&Y(2)&Y(2);
P3<="00"&(X and C) &"00";
D<=Y(3)&Y(3)&Y(3)&Y(3);
P4<="0"&(X and D)&"000";
K<=P1+P2+P3+P4;
end Behavioral;

Simulacin n1:

2. Implementar un comparador de dos nmeros de 4 bits (A y B) teniendo en


cuenta el bit de signo (bit de mayor peso de cada entrada). Las salidas
debe indicar si:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity COMPARADOR is
Port ( X,Y : in std_logic_vector(3 downto 0);
MAY,IGU,MEN : out std_logic);
end COMPARADOR;

architecture Behavioral of COMPARADOR is


SIGNAL SIGNO: std_logic;
SIGNAL AUX1,AUX2: std_logic;
begin
SIGNO<=X(3) or Y(3);
IGU <= '1' when X = Y else '0';
MAY <= AUX1 when SIGNO='1'else AUX2;
MEN <= AUX2 when SIGNO='1'else AUX1;
AUX1 <= '1' when X < Y else '0';
AUX2 <= '1' when X > Y else '0';

end Behavioral;

SIMULACION N2:

3. Implementar el siguiente circuito:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY PROB3 IS
PORT ( P : IN STD_LOGIC;
Q : IN STD_LOGIC;
R : IN STD_LOGIC;
Z : OUT STD_LOGIC);
END PROB3;

ARCHITECTURE SOLUCION OF PROB3 IS


BEGIN

Z <= 'H' WHEN R='0' AND P='1' ELSE


'H' WHEN R='1' AND Q='1' ELSE

'Z' WHEN R='0' AND P='0' ELSE


'Z' WHEN R='1' AND Q='0' ELSE 'W';

END SOLUCION;

SIMULACION N3

4. Implemente un circuito para activar una ALARMA cuando se tenga las


siguientes condiciones:
- Sensor de corriente superior a 100mA.
- Sensor de voltaje por debajo de 5v e inferior de 100mA.
- Sensor de potencia superior a 10mw y por debajo de 5v.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity ALARMA is
Port( VOLTAJE,CORRIENTE,POTENCIA : in std_logic;
SALIDA : out std_logic);
end ALARMA;
architecture Behavioral of ALARMA is

begin
SALIDA<= '1' when CORRIENTE='1' else
'1' when VOLTAJE = '0' else
'1' when POTENCIA= '1' else '0';
end Behavioral;

SIMULACION N4

5. Implemente el comportamiento del circuito 74139 en VHDL

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity DEC74139 is
Port ( PIN1,PIN2,PIN3,PIN8,PIN13,PIN14,PIN15,PIN16 : in std_logic;
DATA1,DATA2: out std_logic_vector (3 downto 0));
end DEC74139;
architecture Behavioral of DEC74139 is
signal SELECT1,SELECT2 : std_logic_vector (1 downto 0);
signal ENABLE1,ENABLE2 : std_logic_vector (2 downto 0);
signal AUX1,AUX2 : std_logic_vector (3 downto 0);
begin
SELECT1<=PIN2&PIN3;
SELECT2<=PIN14&PIN13;
ENABLE1<=PIN16&PIN8&PIN1;
ENABLE2<=PIN16&PIN8&PIN15;

DATA1 <= AUX1 WHEN ENABLE1 ="101" ELSE "0000";


DATA2 <= AUX2 WHEN ENABLE2 ="101" ELSE "0000";
AUX1 <= "0001" WHEN SELECT1="00" ELSE
"0010" WHEN SELECT1="01" ELSE
"0100" WHEN SELECT1="10" ELSE "1000";
AUX2 <= "0001" WHEN SELECT2="00" ELSE
"0010" WHEN SELECT2="01" ELSE
"0100" WHEN SELECT2="10" ELSE "1000";
end Behavioral;

Simulacin n5:

6. Explique la diferencia entre un TYPE y SUBTYPE, muestre algunos


ejemplos utilizando casos de vivencias diarias.
La diferencia principal entre TYPE y SUBTYPE es que los SUBTYPE son un
subconjunto restringido de un TYPE ya existente.

EJEMPLOS
TYPE INGREDIENTES IS (arroz,pollo,zanahoria,papa,camote,cebolla);

SUBTYPE INGREDIENTES_ARROZCONPOLLO IS INGEDIENTES range


arroz to zanahoria;

TYPE NOTA IS (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);


SUBTYPE JALADO is NOTA range 1 to 10;

TYPE CURSOS is (pds, radiopropagacion, diseo digital, antenas, scd,


circuitos digitales);
SUBTYPE CURSOS_8 is CURSOS range pds to diseo digital;

TYPE VESTIMENTA is (polos, camisas, corbatas, correa, vestido, tacones,


blusas);
SUBTYPE VESTIMENTA_ HOMBRE is VESTIMENTA range polos to correa;

7. Asumiendo que:

Implemente la Tabla mostrada en la parte inferior:

ASSIGMENT
a<=x(2);

DIMENSION
ambos de 1 bit

b<=x(2);

ambos de 1 bit

b<=y(3,5);

ambos de 1 bit

b<=w(5)(3);

ambos de 1 bit

y(1)(0)<=z(7);

ambos de 1 bit

x(0)<=y(0,0);

ambos de 1 bit

x<="1110000";

x de 8 bits, el resto de 7

a<="0000000";

a es de 1 bit y el resto de
8
ambos de 8 bits

y(1)<=x;
w(0)<=y;

LEGAL OR ILLEGAL
error por ser que a es del tipo bit
y
x(2) es STD_LOGIC
Correcta asignacin de tipos
STD_LOGIC
Correcta asignacin de tipos
STD_LOGIC
Error. Elemento w(5)(3) no existe,
w
es matriz de 3 x 5
Correcta asignacin de tipos
STD_LOGIC
Correcta asignacin de tipos
STD_LOGIC
Error. Tamao de las expresiones
Error. X es un bit.
correcta y(1) es fila de la matriz,
tiene 8 elementos como x
Error. Tamao de las expresiones

w(1)<=(7=>'1', others=>'0');

w(0) de 8 bits, y es
matriz 4x8
ambos de 8 bits

y(1)<=(0=>'0', others=> '1');

ambos de 8 bits

Correcta asignacin de tipos.

w(2)(7 downto 0)<=x;

ambos de 8 bits

w(0)(7 downto 6)<=z(5


downto4);
x(3)<=x(5 downto 5);

ambos de 2 bits

b<=x(5 downto 5);

ambos de 1 bit

y<=((others=>'0'),
(others=>'0'),
(others=>'0'),"10000001");
z(6)<=x(5);

ambos matrices de 4x8

Correcta asignacin de tipos


STD_LOGIC.
Correcta asignacin de tipos
STD_LOGIC.
Correcta asignacin de tipos
STD_LOGIC.
Correcta asignacin de tipos
STD_LOGIC.
Correcta asignacin de tipos.

z(6 downto 4)<=x(5 downto 3);

ambos de 3 bits

z(6 downto 4)<=y(5 downto 3);

de la izq de 3 bits,
el otro matriz 4x8
izq matriz 4x8, dere 3
bits
ambos de 8 bits

y(6 downto 4)<=z(3 to 5);


y(0,7 downto 0)<=z;

ambos de 1 bit

ambos de 1 bit

Correcta asignacin de tipos.

Correcta asignacin de tipos


STD_LOGIC.
Correcta asignacin de tipos
STD_LOGIC.
Error. Tamao de las expresiones
y llamado de matriz y
Error. Tamao de las expresiones
y llamado de matriz y
Correcta asignacin de tipos
STD_LOGIC.

También podría gustarte