Logo Studenta

Bello Muñoz Edgar Alejandro Práctica 7 - Edgar Bello

¡Este material tiene más páginas!

Vista previa del material en texto

INSTITUTO POLITÉCNICO NACIONAL 
Escuela Superior de Cómputo 
 
 
 
Bello Muñoz Edgar Alejandro 
Fundamentos de Diseño Digital 
 
 
 
Profesor: Fernando Aguilar Sánchez 
 
 
Práctica 7 
Operaciones aritméticas 
 
 
Fecha de entrega: 2 de mayo de 2021 
Introducción 
Circuitos combinatorios 
Un circuito combinacional consiste en compuertas lógicas cuyas salidas en 
cualquier momento están determinadas por la combinación actual de entradas. 
Un circuito combinacional realiza una operación que se puede especificar 
lógicamente con un conjunto de funciones booleanas. Un circuito combinacional 
consta de variables de entrada, compuertas lógicas y variables de salida. Las 
compuertas lógicas aceptan señales de las entradas y generan señales para 
las salidas. Este proceso transforma información binaria, de los datos de entrada 
dados a los datos de salida requeridos. 
Sumadores 
La suma más sencilla que se puede realizar es la de dos números de un bit cada 
uno, de cuatro maneras posibles: 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, 1 + 1 = 10. El 
sumador que se encarga de realizar esta operación (la más simple de todas) se 
llama semisumador o medio sumador 
Las tres primeras operaciones producen una suma de un dígito pero cuando el 
sumando y el consumando son iguales a 1, la suma binaria consta de dos cifras. 
Cuando la suma da lugar a un bit significativo adicional, el acarreo obtenido de la 
suma de dos bits se suma al siguiente par de bits significativos de orden superior. 
Si queremos aumentar el número de bits de los sumandos, debemos tener una 
variable que se ocupe de los acarreos que aparezcan en las sumas parciales. 
La unidad básica de este tipo de sumadores se llama sumador completo. Consta de 
dos entradas de un bit para las variables A y B, y de una entrada correspondiente 
al bit de acarreo de entrada. 
Un grupo de cuatro bits se denomina nibble. Un sumador básico en paralelo de 
4 bits se implementa mediante cuatro sumadores completos, los bits menos 
significativos de cada número que se suma, se introducen en el sumador completo 
que está más a la derecha; los bits de orden más alto se introducen 
sucesivamente en los siguientes sumadores, aplicando los bits más significativos 
de cada número al sumador que está más a la izquierda. 
La salida de acarreo de cada sumador se conecta a la entrada de acarreo del 
siguiente sumador de orden superior. Estos acarreos se denominan acarreos 
internos. 
 
 
 
Restadores 
En la diferencia, cada bit del sustraendo se resta de su correspondiente bit del 
minuendo para formar el bit de la diferencia. El préstamo ocurre cuando el bit del 
minuendo es menor al bit del sustraendo, de tal forma que se presta un 1 de la 
siguiente posición significativa. 
La resta se implementa mediante un sumador. El método consiste en llevar al 
minuendo a una de las entradas y el sustraendo en complemento 2 a la otra entrada. 
Un medio restador es un circuito combinacional que sustrae dos bits y produce su 
diferencia. También tiene la salida para especificar si se ha tomado un 1. Se designa 
el bit minuendo por x y el bit sustraendo mediante y. Para llevar a cabo x – y, tienen 
que verificarse las magnitudes relativas de x y y. Si x >= y, se tienen tres 
posibilidades; 0 - 0 = 0, 1 – 0 = 1 y, 1 - 1 = 0. 
El resultado se denomina bit de diferencia. Si x < y, tenemos 0 – 1 y es necesario 
tomar un 1 de la siguiente etapa más alta. El 1 que se toma de la siguiente etapa 
más alta añade dos al bit minuendo, de la misma forma que en el sistema decimal 
lo que se toma añade 10 a un dígito minuendo. Con el minuendo igual a 2, la 
diferencia llega a ser 2 – 1 = 1. El medio restador requiere dos salidas. Una salida 
genera la diferencia y se denotará por el símbolo D. La segunda salida, denotada B 
para lo que se toma, genera la señal binaria que informa a la siguiente etapa que 
se ha tomado un 1. 
Un restador completo es un circuito combinacional que lleva a cabo una sustracción 
entre dos bits, tomando en cuenta en un 1 se ha tomado por una etapa significativa 
más baja. Este circuito tiene tres entrada y dos salidas. Las tres entradas x, y y z, 
denotan al minuendo, sustraendo y a la toma previa, respectivamente. Las dos 
salidas, D y B, representan la diferencia y la salida tomada, respectivamente. 
 
 
Desarrollo 
Medio sumador 
Tabla de verdad 
# A B Suma Carry 
0 0 0 0 0 
1 0 1 1 0 
2 1 0 1 0 
3 1 1 0 1 
 
Funciones canónicas 
𝑆𝑢𝑚𝑎 (𝐴, 𝐵) = 𝐴 ⊕ 𝐵 
𝐶𝑎𝑟𝑟𝑦 (𝐴, 𝐵) = 𝐴𝐵 
Circuito lógico 
 
 
Circuito a bloques 
 
Simulación del circuito 
 
 
Sumador completo 
Tabla de verdad 
# A B Cin Suma Cout 
0 0 0 0 0 0 
1 0 0 1 1 0 
2 0 1 0 1 0 
3 0 1 1 0 1 
4 1 0 0 1 0 
5 1 0 1 0 1 
6 1 1 0 0 1 
7 1 1 1 1 1 
 
Funciones canónicas 
𝑆𝑢𝑚𝑎(𝐴, 𝐵, 𝐶) = 𝐴 ⊕ 𝐵 ⊕ 𝐶 
𝐶𝑜𝑢𝑡 = 𝐵𝐶 + 𝐴𝐶 + 𝐴𝐵 
Circuito lógico 
 
 
Circuito a bloques 
 
Simulación del circuito 
 
 
Medio restador 
Tabla de verdad 
# X Y Resta Préstamo 
0 0 0 0 0 
1 0 1 1 1 
2 1 0 1 0 
3 1 1 0 0 
 
Funciones canónicas 
𝑅𝑒𝑠𝑡𝑎 (𝑋, 𝑌) = 𝑋 ⊕ 𝑌 
𝑃𝑟é𝑠𝑡𝑎𝑚𝑜 (𝑋, 𝑌) = �̅�𝑌 
Circuito lógico 
 
Circuito a bloques 
 
Simulación del circuito 
 
 
Restador completo 
Tabla de verdad 
# X Y Pin Resta Pout 
0 0 0 0 0 0 
1 0 0 1 1 1 
2 0 1 0 1 1 
3 0 1 1 0 1 
4 1 0 0 1 0 
5 1 0 1 0 0 
6 1 1 0 0 0 
7 1 1 1 1 1 
 
Funciones canónicas 
𝑅𝑒𝑠𝑡𝑎 (𝑋, 𝑌, 𝑍) = 𝑋 ⊕ 𝑌 ⊕ 𝑍 
𝑃𝑜𝑢𝑡(𝑋, 𝑌, 𝑍) = �̅�𝑌 + �̅�𝑍 + 𝑌𝑍 
Circuito lógico 
 
 
Circuito a bloques 
 
Simulación del circuito 
 
 
 
Sumador de 4 bits 
Tabla de verdad (10 combinaciones) 
# Cin A3 A2 A1 A0 B3 B2 B1 B0 Cout ∑3 ∑2 ∑1 ∑0 
0 0 0 1 1 1 0 0 1 0 0 1 0 0 1 
1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 
2 0 1 1 0 1 0 1 1 0 1 0 0 1 1 
3 0 1 1 1 0 0 1 1 1 1 0 1 0 1 
4 0 1 1 1 1 1 0 1 0 1 1 0 0 1 
5 0 0 1 0 0 1 1 0 1 1 0 0 0 1 
6 0 0 0 1 1 1 0 1 0 0 1 1 0 1 
7 0 1 0 0 0 0 1 1 0 0 1 1 1 0 
8 0 1 1 0 1 0 1 0 1 1 0 0 1 0 
9 0 1 1 1 1 1 1 0 0 1 1 0 1 1 
10 0 1 1 0 0 1 0 1 1 1 0 1 1 1 
 
Simulación del circuito 
 
Circuito lógico 
 
Circuito a bloques 
 
 
Implementación del sumador completo de 4 bits en VHD 
 
 
library ieee; 
use ieee.std_logic_1164.all; 
entity suma is 
port(A,B: in std_logic_vector(3 downto 0); 
S: out std_logic_vector(3 downto 0); 
Cout: out std_logic); 
end suma; 
architecture arqsuma of suma is 
signal C: std_logic_vector(2 downto 0); 
ATTRIBUTE synthesis_off OF C: SIGNAL IS true: 
begin 
S(0)<=A(0) xor B(0); 
C(0)<=A(0) and B(0); 
S(1)<=(A(1) xor B(1)) xor C(0); 
C(1)<=(A(1) and B(1)) or (C(0) and (A(1) xor B(1))); 
S(2)<=(A(2) xor B(2)) xor C(1); 
C(2)<=(A(2) and B(2)) or (C(1) and (A(2) xor B(2))); 
S(3)<=(A(3) xor B(3)) xor C(2); 
Cout<=(A(3) and B(3)) or (C(2) ABD (A(3) xor B(3))); 
end arqsuma; 
Implementación de medio sumador, sumador completo, medio restador y restador 
completo en VHDL 
 
 
 
library ieee; 
use ieee.std_logic_1164.all; 
entity suma is 
port(A,B,Cin,Pin: in std_logic; 
Semisuma,Carry,Suma,Cout,Semiresta,Prestamo,Resta,Pout: out std_logic); 
end suma; 
architecture arqsuma of suma is 
signal C: std_logic_vector(2 downto 0); 
ATTRIBUTE synthesis_off OF C: SIGNAL IS true; 
begin 
--Implementación medio sumador 
 Semisuma<=A xor B; 
 Carry<=A and B; 
 --Implementación sumador completo 
 Suma<=A xor B xor Cin; 
 Cout<=(B and C) or (A and C) or(A and B); 
 --Implementación medio restador 
 Semiresta<=Semisuma; 
 Prestamo<= not A and B; 
 --Implementación restador completo 
 Resta<=A xor B xor Pin; 
 Pout<=(not A and B) or (not A and C) or (B and C); 
end arqsuma; 
Conclusiones 
Con esta práctica se aprendió más acerca del el diseño de circuitos sumadores y 
restadores, y como su implementación se basa en el uso de circuitos 
combinacionales y compuertas lógicas parapoder resolver los problemas en binario 
de bits a bits. A pesar de resolver un problema simple de aritmética, son un 
elemento muy útil y el diseño y análisis de circuitos con mayor complejidad, al igual 
que permiten determinar registros y análisis de procesos repetitivos. 
Referencias 
• Floyd, T. (2010). Fundamentos de Sistemas Digitales. México: Pearson 
Educación. 
• Morris, M. (2007). Diseño digital. Cuarta Edición. México: Pearson 
• Educación.Quiroga, P. (2010). Arquitectura de Computadoras. 
México:Alfaomega.

Continuar navegando