12

Click here to load reader

Informe 1 Diseño Digital UNMSM

Embed Size (px)

DESCRIPTION

Diseño Digital

Citation preview

Page 1: Informe 1 Diseño Digital UNMSM

DISEÑO DIGITAL

informe n°1 - ESTILO FLUJO DE DATOSBrandon Fernando Soberon Tejada

1219017006/10/15

Page 2: Informe 1 Diseño Digital UNMSM

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

Page 3: Informe 1 Diseño Digital UNMSM

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

Page 4: Informe 1 Diseño Digital UNMSM

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

Page 5: Informe 1 Diseño Digital UNMSM

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

Page 6: Informe 1 Diseño Digital UNMSM

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

Page 7: Informe 1 Diseño Digital UNMSM

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

Page 8: Informe 1 Diseño Digital UNMSM

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

Page 9: Informe 1 Diseño Digital UNMSM

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