Sunteți pe pagina 1din 10

Universidad Nacional Mayor de

San Marcos

 Facultad: Ingeniería Eléctrica y Electrónica

 Alumno: Arturo Alejandro Marcañaupa M.

 Curso: Circuitos Digitales I

 Profesor: Dr. Ing. Ruben Alarcon

 Trabajo: Laboratorio 5

13/11/2018
A) Para el circuito:

- Explicar el funcionamiento del sumador-restador de 4 bits en complemento


a2
- Simular para los casos que los números A y B sena positivos y negativos.

Un sumador es un circuito que realiza la operación de la suma, en las


computadoras encontramos dicho circuito, pero llamado ALU. En base a
dicho sumador se han desarrollado restadores multiplicadores y sumador-
restador en complemento a 2.
Su funcionamiento es en base a los minterminos en una tabla de verdad.
Se le puede encontrar en cajas registradoras, calculadoras, computadoras
que realizan operaciones aritméticas básicas.
(+)6 0110 (+)6 0110
1) +(+)2 + 0010 −(+)2 + 0010
(+)8 1000 (+)4 10100

(+)6 0110 (+)6 0110


2) +(−)2 + 1110 −(−)2 − 1110
(+)4 10100 (+)8 1000

(−)6 1010 (−)6 1010


3) +(+)2 + 0010 −(+)2 − 0010
(−)4 1100 (−)8 11000

(−)6 1010 (−)6 1010


4) +(−)2 + 1110 −(−)2 − 1110
(−)8 11000 (−)4 1100
Simulación en vhdl

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity fulladder4bits is
Port ( A : in STD_LOGIC_VECTOR (3 downto 0);
B : in STD_LOGIC_VECTOR (3 downto 0);
Cin : in STD_LOGIC;
S : out STD_LOGIC_VECTOR (3 downto 0);
Cout : out STD_LOGIC);
end fulladder4bits;

architecture Behavioral of fulladder4bits is


signal c1,c2,c3: STD_LOGIC;
-- Full Adder VHDL Code Component Decalaration
component full_adder_vhdl_code is
Port ( A : in STD_LOGIC;
B : in STD_LOGIC;
Cin : in STD_LOGIC;
S : out STD_LOGIC;
Cout : out STD_LOGIC);
end component;

-- Intermediate Carry declaration

begin

-- Port Mapping Full Adder 4 times


FA1: full_adder_vhdl_code port map( A(0), B(0), Cin, S(0), c1);
FA2: full_adder_vhdl_code port map( A(1), B(1), c1, S(1), c2);
FA3: full_adder_vhdl_code port map( A(2), B(2), c2, S(2), c3);
FA4: full_adder_vhdl_code port map( A(3), B(3), c3, S(3), Cout);

end Behavioral;

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity calculadora is
port ( A : in std_logic_vector(3 downto 0);
B : in std_logic_vector(3 downto 0);
C : out std_logic_vector(3 downto 0);
masmenos : in std_logic;
resultado : out std_logic_vector(3 downto 0));
end calculadora;
architecture behavioral of calculadora is
begin
C <=A when A(3)='0' else A - A(3);
resultado <= (A - B) when masmenos ='1' else (A + B);

end behavioral;

mas cerca

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity calculadora is
port ( A : in std_logic_vector(3 downto 0);
B : in std_logic_vector(3 downto 0);
C : out std_logic_vector(3 downto 0);
D : out std_logic_vector(3 downto 0);
E : in std_logic_vector(3 downto 0);
F : in std_logic_vector(3 downto 0);
masmenos : in std_logic;
resultado : out std_logic_vector(3 downto 0));
end calculadora;
architecture behavioral of calculadora is
begin
C <=A when A(3)='0' else A - A(3);
D <=B when B(3)='0' else B - B(3);
C <=E;
D <=F;
resultado <= (E - F) when masmenos ='1' else (E + F);
end behavioral;
B) Diseñar un sumador-restador en complemento a 1, en base al 74LS283.
Simular para los números A y B positivos y negativos.

- Resumen de la hoja de datasheet del CI 74LS283


- Simular el equivalente lógico del CI y definirlo como símbolo
- Mostrar el conexionado y simular el diseño usando el símbolo del CI 74
LS283

C (n – 1) An Bn n Cn
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
C1 – C3 son generados internamente
C0 es una entrada externa
C4 es una salida generada internamente

Sumador-Restador:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity fulladder is
port (a,b,cin: in bit;
s,cout: out bit);
end fulladder;
architecture behavioral of fulladder is
begin
s<= a xor b xor cin;
cout<= (a and b) or (a and cin) or (b and cin);
end behavioral;

C)
El criterio para diseñar este codificador se basa en el hecho de que para los binarios
de 0 a 9 la salid en BCD es igual a la entrada y que para el intervalo de 10 a 19 la
salida BCD es la entrada sumada en 0110 (6 en binario).
Entonces se utilizo un FA de 4 bits para sumar A4A3A2A1 + 110*(M). donde M es 1
para entradas de 10 a 19 y 0 para entradas de 0 a 9. El factor M se multiplico a los 1
del sumando 0110.
Además el ultimo acarreo del FA se suma a A4 para obtener el bit de salida mas
significativo(el bit de las decenas).

M=A4A3A2A1 + A4A3
D) Diseñar una década sumadora expandible para números en exceso a 3.
Usando 2 full adder de 4 bits.

Con el siguiente ejemplo:

1
57 0111
0101
+4𝐴 + 0100 + 1010
74 1101 0001

1101(+3) 0011
(−3)
0111 0111
E) Diseñar un comparador común para 2 numeros de 4 bits en binario natural,
usar solo bloque sumador completo de 4 bits y puertas simples.

Mediante una suma en complemento a 2.

Código VHDL
library ieee;
use IEEE.std_logic_1164.all;
entity Comparador is
port(A,B: in std_logic_vector(3 downto 0);
mayor, menor, igual: out std_logic); --declaración variables de salida
END Comparador;
architecture situacion of Comparador is
begin
mayor <= '1' when (A>B)else '0'; --A > B, salida mayor a 1, resto a 0
menor <= '1' when (A<B)else '0'; --A<B, salida menor a 1, resto a 0
igual <= '1' when (A=B)else '0'; --A=B, salida igual a 1, resto a 0

END situacion;
F) Convertir de BCD (2-4-2-1) AIken a BCD natural. Usar un full adder de 4 bits.

BCD 2-4-2-1 BCD natural

0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 1
0 0 1 0 0 0 1 0
0 0 1 1 0 0 1 1
0 1 0 0 0 1 0 0
1 0 1 1 0 1 0 1
1 1 0 0 0 1 1 0
1 1 0 1 0 1 1 1
1 1 1 0 1 0 0 0
1 1 1 1 1 0 0 1

Para esta simulación haremos que nuestro circuito detecte los 1 del bit más a
la izquierda y actué como sumador, el circuito hace que se le sume (-6) a la
entrada para que se convierta en código BCD natural.
Pero si en la entrada se detecta que el bit de la izquierda es 0, entonces el
número seguirá igual.

S-ar putea să vă placă și