informe 1 diseño digital unmsm
DESCRIPTION
Diseño DigitalTRANSCRIPT
DISEÑO DIGITAL
informe n°1 - ESTILO FLUJO DE DATOSBrandon Fernando Soberon Tejada
1219017006/10/15
Facultad de Ingeniería Electrónica y Eléctrica UNMSMS
PROBLEMAS PROPUESTO
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 MULT4X4 is Port ( A : in std_logic_vector(3 downto 0);
B : in std_logic_vector(3 downto 0); Y : out std_logic_vector(7 downto 0));end MULT4X4;
architecture Behavioral of MULT4X4 issignal S1,S2,S3,S4 : std_logic_vector(7 downto 0);signal B0,B1,B2,B3 : std_logic_vector(3 downto 0);
beginB0<=B(0)&B(0)&B(0)&B(0);S1<="0000"&(A and B0);
B1<=B(1)&B(1)&B(1)&B(1);S2<="000"&(A and B1)&"0";
B2<=B(2)&B(2)&B(2)&B(2);S3<="00"&(A and B2)&"00";
B3<=B(3)&B(3)&B(3)&B(3);S4<="0"&(A and B3)&"000";
Y<=S1+S2+S3+S4;
end Behavioral;
1
Facultad de Ingeniería Electrónica y Eléctrica UNMSMS
2. Implementar un comparador de dos números 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:
A < BA > BA = B
library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity COMP4 is Port ( A : in std_logic_vector(3 downto 0);
B : in std_logic_vector(3 downto 0); MAY : out std_logic);
IGU : out std_logic); MEN : out std_logic));
end COMP4;
architecture Behavioral of COMP4 isSIGNAL SIGNO: std_logic;SIGNAL O1: std_logic;SIGNAL O2: std_logic;
beginSIGNO<=A(3) or B(3);IGU <= '1' when A = B else '0';
MAY <= O1 when SIGNO='1'else O2;MEN <= O2 when SIGNO='1'else O1;
O1 <= '1' when A < B else '0';O2 <= '1' when A > B else '0';
end Behavioral;
2
Facultad de Ingeniería Electrónica y Eléctrica UNMSMS
3. Implementar el siguiente circuito:
ENTITY TRIESTATE IS PORT ( P : IN STD_LOGIC; Q : IN STD_LOGIC; R : IN STD_LOGIC;
Z : OUT STD_LOGIC);END TRIESTATE;
ARCHITECTURE SOLUCION OF TRIESTADO ISBEGIN
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;
3
Facultad de Ingeniería Electrónica y Eléctrica UNMSMS
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;
entity ALARMA is Port ( SC,SV,SP : in std_logic; Z : out std_logic);end ALARMA;
architecture Behavioral of ALARMA issignal ACT: std_logic_vector(2 downto 0);
beginACT<=SP&SV&SC;Z <= '1' when ACT="001" else
'1' when ACT="010" else '1' when ACT="110" else '0';
end Behavioral;
4
Facultad de Ingeniería Electrónica y Eléctrica UNMSMS
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 isPort ( PIN1,PIN2,PIN3,PIN8,PIN13,PIN14,PIN15,PIN16 : in
std_logic; DATA1,DATA2: buffer std_logic_vector (3 downto 0));end DEC74139;
architecture Behavioral of DEC74139 issignal SELECT1,SELECT2 : std_logic_vector (1 downto 0);signal ACTIVAR1,ACTIVAR2 : std_logic_vector (2 downto 0);signal OP1,OP2 : std_logic_vector (3 downto 0);
beginSELECT1<=PIN2&PIN3;SELECT2<=PIN14&PIN13;ACTIVAR1<=PIN16&PIN8&PIN1;ACTIVAR2<=PIN16&PIN8&PIN15;
DATA1 <= OP1 WHEN ACTIVAR1 ="101" ELSE "0000";DATA2 <= OP2 WHEN ACTIVAR2 ="101" ELSE "0000";
5
Facultad de Ingeniería Electrónica y Eléctrica UNMSMS
OP1 <= "0001" WHEN SELECT1="00" ELSE"0010" WHEN SELECT1="01" ELSE"0100" WHEN SELECT1="10" ELSE "1000";
OP2 <= "0001" WHEN SELECT2="00" ELSE"0010" WHEN SELECT2="01" ELSE"0100" WHEN SELECT2="10" ELSE "1000";
end Behavioral;
6
Facultad de Ingeniería Electrónica y Eléctrica UNMSMS
6. Explique la diferencia entre un TYPE y SUBTYPE, muestre algunos ejemplos utilizando casos de vivencias diarias.
La diferencia entre TYPE y SUBTYPE es que los SUBTYPE son un subconjunto restringido de un TYPE ya existente.
EJEMPLOS
TYPE hexadecimal IS (‘0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’A’,’B’,’C’,’D’,’E’,’F’);SUBTYPE octal IS hexadecimal RANGE ‘0’ to ‘7’;
TYPE diasdesemana IS (lunes, martes, miércoles, jueves, viernes, sábado, domingo);SUBTYPE diaslaborales IS diasdesemana RANGE lunes to viernes;
TYPE nota IS (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);SUBTYPE aprobado IS nota RANGE ‘11’ to ‘20’;
7. Asumiendo que:
7
Facultad de Ingeniería Electrónica y Eléctrica UNMSMS
Implemente la Tabla mostrada en la parte inferior:
ASSIGMENT DIMENSION LEGAL OR ILLEGALa<=x(2); ambos de 1 bit error por ser que a es del tipo bit
yx(2) es STD_LOGIC
b<=x(2); ambos de 1 bit Correcta asignación de tiposSTD_LOGIC
b<=y(3,5); ambos de 1 bit Correcta asignación de tiposSTD_LOGIC
b<=w(5)(3); ambos de 1 bit Error. Elemento w(5)(3) no existe, wes matriz de 3 x 5
y(1)(0)<=z(7); ambos de 1 bit Correcta asignación de tiposSTD_LOGIC
x(0)<=y(0,0); ambos de 1 bit Correcta asignación de tiposSTD_LOGIC
x<="1110000"; x de 8 bits, el resto de 7 Error. Tamaño de las expresiones
a<="0000000"; a es de 1 bit y el resto de 8
Error. Tamaño de las expresiones
y(1)<=x; ambos de 8 bits correcta y(1) es fila de la matriz,tiene 8 elementos como x
w(0)<=y; w(0) de 8 bits, y es ma-triz 4x8
Error. Tamaño de las expresiones
w(1)<=(7=>'1', others=>'0'); ambos de 8 bits Correcta asignación de tipos.
y(1)<=(0=>'0', others=> '1'); ambos de 8 bits Correcta asignación de tipos.
w(2)(7 downto 0)<=x; ambos de 8 bits Correcta asignación de tipos STD_LOGIC.
w(0)(7 downto 6)<=z(5 down-to4);
ambos de 2 bits Correcta asignación de tipos STD_LOGIC.
x(3)<=x(5 downto 5); ambos de 1 bit Correcta asignación de tipos STD_LOGIC.
b<=x(5 downto 5); ambos de 1 bit Correcta asignación de tipos STD_LOGIC.
y<=((others=>'0'),(others=>'0'),(others=>'0'),"10000001");
ambos matrices de 4x8 Correcta asignación de tipos.
z(6)<=x(5); ambos de 1 bit Correcta asignación de tipos STD_LOGIC.
z(6 downto 4)<=x(5 downto 3); ambos de 3 bits Correcta asignación de tipos STD_LOGIC.
z(6 downto 4)<=y(5 downto 3); de la izq de 3 bits,el otro matriz 4x8
Error. Tamaño de las expresiones y llamado de matriz y
y(6 downto 4)<=z(3 to 5); izq matriz 4x8, dere 3 bits
Error. Tamaño de las expresiones y llamado de matriz y
y(0,7 downto 0)<=z; ambos de 8 bits Correcta asignación de tipos STD_LOGIC.
w(2,2)<='1'; ambos de 1 bit Error. En la forma del llamado
8