Está en la página 1de 28

Universidade Tecnológica de Uruguay

ITR Fray Bentos


Curso de Tecnólogo en Mecatrónica

Unidad Curricular de Técnicas Digitales


Profesor Giovani Bolzan Cogo
2019/II
RESUMEN

 Cálculo y circuitos aritméticos


 Aritmética binaria
 Half adder y full adder
 ALU y prácticas

2 giovani.bolzan@utec.edu.uy 28/08/2019
Aritmética binaria

 BCD: binay-coded decimal


 (0000 1010 1110)b = (174)d = (0AE)h = (256)o

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

binario
octal
tipos de representaciones
hexadecimal

3 giovani.bolzan@utec.edu.uy 28/08/2019
Aritmética binaria

 Suma en numeraciones distintas:


 Decimal: 12 + 9 = 23
 Binario: 1100 + 1001 = 1 0111
 Hexadecimal: C + 9 = 15
 Octal: 14 + 11 = 25

4 giovani.bolzan@utec.edu.uy 28/08/2019
Aritmética binaria

 Diferencia en numeraciones distintas:


 Decimal: 12 – 9 = 3
 Binario: 1100 – 1001 = 11
 Hexadecimal: C–9=3
 Octal: 14 – 11 = 3

5 giovani.bolzan@utec.edu.uy 28/08/2019
Aritmética binaria

 Representación negativa de binarios:


 Señal y magnitud: la diferencia es el bit más significativo, el valor absoluto
permanece igual.
 Complemento a 1: el bit más significativo indica se el valor es positivo o
negativo, pero el valor absoluto también es invertido.
 Complemento a 2: igualmente al complemento a uno, pero se suma 1 al
valor después. (representción más utilizada)

6 giovani.bolzan@utec.edu.uy 28/08/2019
Aritmética binaria
Representación Decimal + Decimal - Binario + Binario -
Señal y magnitud: 0001 0111 1001 0111
Complemento 1: 23 -23 0001 0111 1110 1000
Complemento 2: 0001 0111 1110 1001

Señal y Magnitud Complemento a 2

7 giovani.bolzan@utec.edu.uy 28/08/2019
Aritmética binaria
 Adición y sustracción:
 Señal y magnitud en 4-bit

4 = 0100 -4 = 1100
+ 3 = + 0011 + (- 3) = + 1011
7 0111 -7 (1)0111

4 = 0100 3 0011 = 0100


- 3 = - 0011 - 4 - 0100 = 0011
1 0001 -1 (1)001

8 giovani.bolzan@utec.edu.uy 28/08/2019
Aritmética binaria
 Adición y sustracción:
 Complemento a uno en 4-bit; el end-around carry debe ser sumado al final.

4 0100 -4 1011
+3 + 0011 + (-3) + 1100
7 0111 -7 1 0111
1000

4 0100 0100 -4 - 0100 = 1011


-3 - 0011 = + 1100 +3 + 0011 = + 0011
1 1 0000 -1 1110
0001

9 giovani.bolzan@utec.edu.uy 28/08/2019
Aritmética binaria
 Adición y sustracción:
 Complemento a dos en 4-bit; el carry-out es ignorado al final.

4 0100 -4 1100
+3 + 0011 + (-3) + 1101
7 0111 -7 1 1001

4 0100 0100 -4 - 0100 = 1100


-3 - 0011 = + 1101 +3 + 0011 = + 0011
1 1 0001 -1 1111

10 giovani.bolzan@utec.edu.uy 28/08/2019
Aritmética binária
 Overflow:
 Sobrepaso de representación
 Ejemplo: palabras de 4-bit y la operación 𝟓 + 𝟒 = − 𝟕

11 giovani.bolzan@utec.edu.uy 28/08/2019
Aritmética binária

 Operaciones:
 Adición: 0010 + 0100 = 0110
 Sustracción: 0110 − 0100 = 0010
 Multiplicación: 1000 × 0011 = 0001 1000
 División*: 0010 0010 ÷ 0000 0010 = 0001 0001

12 giovani.bolzan@utec.edu.uy 28/08/2019
Half Adder
 Half Adder:
 2-inputs 2-outputs adder, non considera un bit de carry-in.

 Full Adder:
 3-inputs 2-outputs adder, considera un bit de carry-in.

13 giovani.bolzan@utec.edu.uy 28/08/2019
Full Adder
 4-bit adder/subtractor:

14 giovani.bolzan@utec.edu.uy 28/08/2019
Full Adder
 Ripple carry:
 El concepto de carry es cargar adelante el dato.
 Utilizado cuando se propaga dato oriundo de bloques de mismo tipo.
 El próximo bloque necesita la información de carry-out del bloque
anterior para hacer la suma correctamente.

15 giovani.bolzan@utec.edu.uy 28/08/2019
Full Adder
 Carry lookahead:
 En contrapartida, su propósito es diminuir el tiempo de propagación.
 El delay de ripple carry en un 4-bit adder se da en 8 unidades de
tiempo en cuanto la suma S3 se hace en 7:

16 giovani.bolzan@utec.edu.uy 28/08/2019
Full Adder
 Carry lookahead:
 Se hace un circuito que calcula el valor de carry-in previamente.
 Carry generate: 𝐺𝑖 = 𝐴𝑖 ∙ 𝐵𝑖
 Carry generate: 𝑃𝑖 = 𝐴𝑖 ⊕𝐵𝑖

 𝑆𝑖 = 𝐴𝑖 ⊕𝐵𝑖 ⊕𝐶𝑖 = 𝑃𝑖 ⊕𝐶𝑖


 𝐶𝑖+1 = 𝐴𝑖 𝐵𝑖 + 𝐴𝑖 𝐶𝑖 + 𝐵𝑖 𝐶𝑖 = 𝐺𝑖 + 𝐶𝑖 𝑃𝑖

 𝐶1 = 𝐺0 + 𝑃0 𝐶0
 𝐶2 = 𝐺1 + 𝑃1 𝐶1 = 𝐺1 + 𝑃1 𝐺0 + 𝑃1 𝑃0 𝐶0
 𝐶3 = 𝐺2 + 𝑃2 𝐶2 = 𝐺2 + 𝑃2 𝐺1 + 𝑃2 𝑃1 𝐺0 + 𝑃2 𝑃1 𝑃0 𝐶0
 𝐶4 = 𝐺3 + 𝑃3 𝐶3 = 𝐺3 + 𝑃3 𝐺2 + 𝑃3 𝑃2 𝐺1 + 𝑃3 𝑃2 𝑃1 𝐺0 + 𝑃3 𝑃2 𝑃1 𝑃0 𝐶0

17 giovani.bolzan@utec.edu.uy 28/08/2019
Full Adder
 Carry lookahead:

18 giovani.bolzan@utec.edu.uy 28/08/2019
ALU
 Arithmetic Logic Unity

19 giovani.bolzan@utec.edu.uy 28/08/2019
ALU

 Operaciones aritméticas:
 Add: A y B son sumados y propagados a las salidasY y carry-out.
 Add con carry: A, B y carry-in son sumados y propagados a las salidas Y y carry-
out.
 Sub: B es sustraído de A (o vice-versa) y la diferencia va a Y and carry-out
(borrow-out). También puede ser utilizada para verificar señal y/o magnitud de
las entradas.
 Sub con borrow: : B es sustraído de A (o vice-versa) y con el carry-in (borrow-in).
La diferencia va aY and carry-out (borrow-out).
 2's complement: A (o B) é sustraído de zero y la salida é propagada a Y.
 Increment: A (o B) es incrementado por 1 y la salida é propagada a Y.
 Decrement: A (o B) es decrementado por 1 y la salida é propagada a Y.
 Pass through: todos bits de A (o B) son propagados a Y. Esta operación es
comúnmente utilizada para determinar la paridad del operando o si es zero o
negativo.

20 giovani.bolzan@utec.edu.uy 28/08/2019
ALU

 Operaciones lógicas:
 AND: (A and B) Y
 OR: (A or B) Y
 XOR: (A xor B) Y
 1’s complement: !(A) Y o !(B) Y

21 giovani.bolzan@utec.edu.uy 28/08/2019
ALU

 Operaciones de desplazamiento de bit:


 Desplazamiento aritmético: el operando es tratado como entero en
complemento de 2, entonces el bit más significativo debe ser preservado.
 Desplazamiento lógico: un 0 (zero) lógico es insertado en el operando.
Utilizado en operandos non enteros.
 Rotacionar: el operando es tratado como un buffer circular.
 Rotacionar con carry: el bit de carry es tratado en coyunto con el operando como
un buffer circular.

22 giovani.bolzan@utec.edu.uy 28/08/2019
Bit shift examples for an eight-bit ALU
Type Left shift Right shift

Arithmetic

Logical

Rotate

Rotate through carry

23 giovani.bolzan@utec.edu.uy 28/08/2019
ALU
entity alu is
port ( -- the alu connections to external circuitry:
A : in signed(7 downto 0); -- operand A
B : in signed(7 downto 0); -- operand B
OP : in unsigned(2 downto 0); -- opcode
Y : out signed(7 downto 0)); -- operation result
end alu;
architecture behavioral of alu is
begin
process(A, B, OP)
begin
case OP is -- decode the opcode and perform the operation:
when "000" => Y <= A + B; -- add
when "001" => Y <= A - B; -- subtract
when "010" => Y <= A - 1; -- decrement
when "011" => Y <= A + 1; -- increment
when "100" => Y <= not A; -- 1's complement
when "101" => Y <= A and B; -- bitwise AND
when "110" => Y <= A or B; -- bitwise OR
when "111" => Y <= A xor B; -- bitwise XOR
when others => NULL;
end case;
end process;
end behavioral;

24 giovani.bolzan@utec.edu.uy 28/08/2019
ALU
 CI 74181 implementa 4-bit ALU

 Este representa un sumador completo 4-bit.

 Y para un multiplicador?

25 giovani.bolzan@utec.edu.uy 28/08/2019
ALU
 En una multiplicación M x N, se pude sumarse el operando M en N veces.
 Por ejemplo: 3 x 4 = 3 + 3 + 3 + 3 = 12; 5 x 6 = 6 + 6 + 6 + 6 + 6 = 30
 Como hacer esto en una ALU utilizando instrucciones de RM, LM, ADD y
complemento de 2?

26 giovani.bolzan@utec.edu.uy 28/08/2019
ALU
 Acumulación parcial de producto: circuito combinatorio (sin registradores) que
implementan la multiplicación entera.

 Cada término AND es un producto parcial. La multiplicación, como con


decimales, se hace con el acúmulo de los términos en columnas, pero se consideran
los carry-in de los términos a la izquierda (menos significativos).

27 giovani.bolzan@utec.edu.uy 28/08/2019
ALU
 Cada término AND es un producto parcial. La multiplicación, como con
decimales, se hace con el acúmulo de los términos en columnas, pero se consideran
los carry-in de los términos a la izquierda (menos significativos).

28 giovani.bolzan@utec.edu.uy 28/08/2019

También podría gustarte