TE.1010 Sistemas Digitaleshomepage.cem.itesm.mx/garcia.andres/PDF201411/TE1010 Semana 1 … · El...
Transcript of TE.1010 Sistemas Digitaleshomepage.cem.itesm.mx/garcia.andres/PDF201411/TE1010 Semana 1 … · El...
TE.1010 Sistemas Digitales
Dr. Andrés David García García
Departamento de Mecatrónica
División de Ingeniería y Ciencias
TE 1010 1
TE 1001
➢Objetivo de la materia:
➢Diseñar e implementar un sistema electrónico digital conbase en el Álgebra Booleana y haciendo uso deherramientas de diseño asistido por computadora yplataformas de prototipaje rápido.
➢Aspectos fundamentales de la materia:
➢ Sistemas Lógicos
➢Diseño de Circuitos Combinacionales y Secuenciales
➢Arquitectura computacional
TE 1010 2
TE1001: Temas
✓ Códigos y Bases numéricas✓ Funciones lógicas y Algebra Booleana y métodos de reducción✓ Circuitos lógicos combinatorios✓ Familias lógicas y circuitos MSI✓ Introducción a lógica programable✓ Circuitos aritméticos✓ Latches y Flip Flops✓ Circuitos lógicos secuenciales, contadores, registros de corrimiento,
detectores de secuencias✓ Memorias✓ Unidad de control alambrada✓ Unidad de control micro-programada✓ Convertidores DAC y ADC, sistemas de adquisición de datos
TE 1010 3
Políticas generales
El uso de teléfonos celulares y tabletas electrónicas estáprohibido dentro del salón de clases.
Las LapTops sólo podrán ser usadas cuando las actividadespropuestas por el profesor así lo requieran.
Al inicio de cada sesión se pasará lista.
No se permite el uso de palabras y comportamientosinadecuados, tampoco la burla o la discriminación.
No se permite fumar dentro de las instalaciones académicasdel CEM.
No se permite ingerir ningún tipo de alimento, líquido o dulcedentro del salón de clases.
Contestar la ECOA es OBLIGATORIO.TE 1010 4
Referencias✓ Tocci y Widmer. Sistemas Digitales, Principios y Aplicaciones.
Pearson Educación. 10ª. Ed.
✓ Roth, Ch. Jr. Fundamentals of Logic Design, PWS Publishing Company, 2ª Ed.
✓ Brown, Vranesic. Fundamentals of Digital Logic with VHDL, McGrawHill. 3a edition.
✓ Tokheim. Digital Electronics. McGraw-Hill, 5ª Ed.
✓ Tanenbaum, A. S. Structured Computer Organization. Prentice Hall. 4ª Ed.
✓ Mano, Kime. Logic and Computer Design Fundamentals. Prentice Hall. 3ª Ed.
TE 1010 5
Reseña del Profesor
• IEC, ITESM-CEM,1994.
• Maestría en Electrónica para las Telecomunicaciones. ENST-ParisTech, 1996.
• PhD en Comunicaciones y Electrónica. ENST-ParisTech, 2000.
• Profesor Investigador DIEE, ITESM-CEM, 2001-2005.
• Director de Posgrado, EGIC, ITESM-CEM, 2006-2009.
• Director del DIEE, ITESM-CEM, 2010-2011.
• Director del DMk, ITESM-CEM, 2011-2015.
• Director de la DDIA-CEM, 2015…
• Participación en proyectos europeos.
• Consultor en proyectos nacionales.
• Miembro del comité nacional de la ANFEI.
• Miembro del comité de ingenierías de los CIEES.
TE 1010 6
Varios
• Material del curso: http://homepage.cem.itesm.mx/garcia.andres/index.htm
• Herramientas CAD y plataforma tecnológica: www.altera.com
• Email:
• Redes Sociales:
– Facebook: [email protected]
• El curso será migrado a CANVAS.
TE 1010 7
Antecedentes
➢ Los sistemas de procesamiento y manipulación deinformación que utilizamos en la actualidad basan sufuncionamiento en:
➢Capacidad de realizar cálculos a una gran velocidad.
➢Capacidad de almacenar grandes cantidades de información.
➢Capacidad de intercambiar información de forma rápida y eficaz.
➢ Procesar, Almacenar, Comunicar.
TE 1010 8
Antecedentes
➢ Información:
✓Conjunto de datos organizados, clasificados, agrupados detal suerte que permiten establecer un conocimiento.
✓ La información permite tomar decisiones.
¿Qué es un “Dato”?
TE 1010 10
Antecedentes
➢Dato:
✓ Los datos son símbolos.
✓ Los símbolos tienen un significado particular según elcontexto de la información.
➢Datos, Información, Toma de decisiones.
TE 1010 11
Antecedentes
➢ Ejemplo:➢ Símbolo {A}
✓Primer letra del Alfabeto
✓ Inicio de una matrícula ¿?
✓Número en base 16
✓ Etiqueta ¿?
➢Dato + Contexto = Toma de decisiones
TE 1010 12
Antecedentes
➢ Fuente de información:
➢Entorno: Temperatura, humedad, iluminación, etc.
➢ Físicas: fuerza, presión, velocidad, volumen, masa, peso,etc.
➢ La cantidad de luz natural me permite determinar sirequiero de luz artificial.
➢ Rendimiento de gasolina de un vehículo.
➢ Fuerza requerida para mover un objeto.
TE 1010 13
Arquitectura de computadoras➢ Un microprocesador ejecuta una serie de instrucciones de
forma secuencial.
➢ Estas instrucciones se escriben en un lenguaje llamado“lenguaje ensamblador”, el cual puede ser interpretado por elhumano.
TE 1010 17
Visual C++
C++
JAVA
C
Assembler
HEX
ALTO NIVEL
BAJO NIVEL
Los sistemas Lógicos Digitales
• Se utilizan para poder procesar información:
– Clasificar, almacenar, organizar e intercambiar.
– Tomar decisiones.
• Ejemplo: Encender o apagar un calefactor:
– Control ON/OFF.
– Encendido toma 2 valores: F/V; ‘0’ ó ‘1’
– Dos valores posibles: SISTEMA BINARIO.
TE 1010 18
Los sistemas Lógicos Digitales
• Auto a control remoto simple:
– 2 Motores: Derecho (D) e Izquierdo (I)
TE 1010 19
• Adelante: D = ‘1’ y I = ‘1’
• Derecha: D = ‘0’ y I = ‘1’
• Izquierda D = ‘1’ y I = ‘0’
• ALTO: D = ‘0’ y I = ‘0’
ADELANTE = D and IDERECHA = /D and IIZQUIERDA = D and /IALTO = /D and /I
FUNCIONES LÓGICAS
✓ D e I concatenadas conforman una palabra de 2 bits !!!
Los sistemas Lógicos Digitales
• Control de Temperatura:
– Rango de Temperatura: 0° a 55° (valor analógico)
TE 1010 20
55°
0°
27.5°
20°
“11111111”
“01111111”
“00000000”
¿?X
CUANTIFICAR:
codificar un conjunto
de valores analógicos
en un código binario
T > X = ON
T < X = OFF
✓ En realidad, la decisión no depende de un solo bit, sino del valor de un octeto.
Números
• Base 10 (decimal)
– ¿por qué utilizamos la base 10?
• Otras bases
– Base 2 (binario)
– Base 8 (Octal)
– Base 16 (Hexadecimal)
TE 1010 21
Números
TE 1010 22
• Base 10:
– 10 caracteres (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
• Base 2:
– 2 caracteres (0, 1)
• Base 8:
– 8 caracteres (0, 1, 2, 3, 4, 5, 6, 7)
• Base 16:
– Obvio 16 caracteres (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)
Sistemas Lógicos
➢ Los circuitos lógicos basa su funcionamiento en la “lógica de conjuntos”
➢ Principio fundamental de los circuitos lógicos:➢ Falso: ‘0’ (cero lógico)
➢Verdadero: ‘1’ (uno lógico)
➢Al tratarse de un dispositivo electrónico, estos “estados” se representan por un nivel de tensión eléctrica o “Voltaje”.
TE 1010 23
Sistemas lógicos
➢ Equivalente eléctrico de los niveles lógicos:
➢ Los niveles lógicos pueden ser vistos como un switch:
❖‘0’ es un circuito abierto
❖‘1’ es un circuito cerrado
‘0’
‘1’
S
TE 101024
Sistemas lógicos
➢Ejemplos:➢ Switches en serie:
➢ La función lógica que hace que A=B es una AND.
➢ Switches en paralelo:
➢ La función lógica que hace que A=B es una OR.
S SA B
S
SA B
TE 101025
Sistemas lógicos➢ Fundamentos de teoría de conjuntos:
TE 1010 28
A BC A B
A B
C = A “y” B C = A “ó” B
C = A “ó excluyente” B
A
C = complemento (A)
Sistemas Lógicos
➢Niveles lógicos de voltaje:
TE 1010 29
Umbral de ruido
(nivel indefinido)
5V
0V
‘1’ (estado lógico
“alto”)
‘0’ (estado lógico
“bajo”)
Algoritmos de procesamiento digital de señales
• Los algoritmos de DSP basan su funcionamiento en operadores aritméticos y unidades de almacenamiento temporal.
– Filtros Digitales
– Transformadas Discretas Coseno/Fourier
– Convolución
• Operadores MAC(Multiply And ACcumulate)
30
)()()(1
0
knxkhnyM
k
Algoritmos de DSP
• Diseño de Operadores Aritméticos: crítico en el diseño VLSI de arquitecturas de DSP
• Arquitecturas eficientes de operadores aritméticos funamentales (sumas, restas, multiplidadores y divisores) para aplicaciones VLSI
• Objetivo: Diseñar y Construir arqutiecturas con un mínimo tiempo de propagación (mejorar velocidad de respuesta), y con el menor requerimiento de superficie de silicio (optimizar la densidad y el nivel de integración).
ADGG / LFGP 31
Representación de Números en Binario
• Números positivos en binario: Magnitud:
32
1
0
2N
i
iBiX
i 3 2 1 0
15 1 1 1 1
14 1 1 1 0
: : : : :
2 0 0 1 0
1 0 0 0 1
0 0 0 0 0
Relación entre bases numéricas
• Pregunta: ¿por qué contamos del 1 al 10?
• 2 manos con 5 dedos c.u.
• 10 elementos (números) distintos
• Sin embargo, es importante considerar la cantidad de símbolos que componen a los elementos (números) que componen el subconjunto de valores posibles.
TE 1010 33
Relación entre bases numéricas
• Estableciendo una representación formal de los números en decimal:
TE 1010 34
0 7654321 98
Un solo símbolo por elemento
DecenasUnidades
Unidad: 100Decena: 101Centena: 102Millar: 103
Relación entre bases numéricas
• Leyendo cualquier cifra:
TE 1010 35
103 102 101 100 . 10-1 10-2 10-3
1000 100 10 1 0.1 0.01 0.001
Ejemplo: 12475.326
1*104
2*103
4*102
7*101
5*100
3*10-1
2*10-2
6*10-3
1*10000
2*1000
4*100
7*10
5*1
3*0.1
2*0.01
6*0.001
Relación entre bases numéricas
• Pregunta: ¿Y si solo tuviéramos 4 dedos en cada mano?
• 2 manos con 4 dedos c.u.
• 8 elementos (números) distintos
TE 1010 36
Relación entre bases numéricas
TE 1010 37
• Estableciendo una representación formal de los números en OCTAL:
0 7654321
Un solo símbolo por elemento
DecenasUnidades
Unidad: 80Decena: 81Centena: 82Millar: 83
Relación entre bases numéricas
• Leyendo cualquier cifra:
TE 1010 38
83 82 81 80 . 8-1 8-2 8-3
512 64 8 1 0.125 0.015625 0.001953125
Ejemplo: 475.32
4*82
7*81
5*80
3*8-1
2*8-2
4*64
7*8
5*1
3*0.125
2*0.015625
1
0
8N
i
iBiX
Representación de vectores en binario
• Como mencionamos, una variable física en el tiempo continuo se puede “escalar” en binario. Esto se llama Digitalizar.
• En TI, las variables del entorno se digitalizan con el fin de procesarlas de forma digital.
• La digitalización es producto del proceso de conversión de Analógico (señal continua) a Digital (señal discreta), mediante 2 procesos importantes:
– Muestreo
– Cuantificación
TE 1010 39
Señal en el tiempo continuo
• Se define como una función F(x) en donde la distancia entre cada valor de “x” es muy pequeño, lo que forma una silueta (señal) continua.
TE 1010 40
Amplitud
t
F(x)
Señal continua
Señal en el tiempo continuo
• Si la señal F(x) la multiplico por una señal de impulso unitario U(y), se transforma la línea continua en una línea punteada, esto es MUESTREO.
• Los puntos de la señal estarán separados dependiendo de la escala de resolución de U(y)
TE 1010 41
Amplitud
t
F(x)
F(x)*U(y) = Muestreo
Cada punto de la
señal es una muestra
de F(x) con un valor
específico.
Señal en el tiempo continuo
• Finalmente, si a cada punto de la señal (a cada muestra) se le asigna un valor en una escala de bits, a eso se le llama CUANTIFICAR.
TE 1010 42
Amplitud
t
11111111
11111110
11111101
11111100
11111011
11111010
11111001
11111000
………
………..
………..
……….
…………
00000110
00000101
00000100
00000011
00000010
00000001
00000000
Cada punto de la señal
muestreada es cuantificado en un
valor binario.
Mientras mas grande sea el
vector, más exactitud se tendrá
en la cuantificación (es decir, más
puntos de la señal F(x) podrán
ser representados en binario
Revisar: Teorema de NYQUIST
Señal Digital
• Una señal digital puede ser almacenada, manipulada y modificada en el mundo digital:
– Procesamiento Digital de señales
TE 1010 43
Señal original Señal Digital
2.5 00001110
2.6 00001111
2.7 00001000
2.8 00001001
2.7 00001000
2.8 00001001
2.9 00001010
…… ……..
Mientras más grande es el vector, es
más difícil diferenciar entre sus
símbolos (valores).
Con base a la capacidad de
procesamiento que han tenido los
microprocesadores (4, 8, 16, 32, 64
bits), se utiliza una base numérica
común al binario para representar de
mejor forma los símbolos
Bases numéricas con origen en Binario
• Las bases numéricas que tienen como origen el binario, son múltiplos de 2:
TE 1010 44
Base 2 (21)Binario
Base 4 (22) Base 8 (23)OCTAL
Base 16 (24)Hexadecimal
0000 0 0 0
0001 1 1 1
0010 2 2 2
0011 3 3 3
0100 10 4 4
0101 11 5 5
0110 12 6 6
0111 13 7 7
1000 20 10 8
1001 21 11 9
1010 22 12 A
1011 23 13 B
1100 30 14 C
1101 31 15 D
1110 32 16 E
1111 33 17 F
Bases numéricas con origen en Binario
• La relación entre la base 4 y la base 2 son dos bits.
• Cada símbolo en base 4 se representa con un vector de dos bits.
TE 1010 45
Base 2 (21)Binario
Base 4 (22)
00 00 0
00 01 1
00 10 2
00 11 3
01 00 10
01 01 11
01 10 12
01 11 13
10 00 20
10 01 21
10 10 22
10 11 23
11 00 30
11 01 31
11 10 32
11 11 33
Base 2 (21)Binario
Base 4 (22)
00 0
01 1
10 2
11 3
Bases numéricas con origen en Binario
• La relación entre la base 8 y la base 2 son tres bits.
• Cada símbolo en base 8 se representa con un vector de tres bits.
TE 1010 46
Base 2 (21)Binario
Base 8 (23)OCTAL
0 000 0
0 001 1
0 010 2
0 011 3
0 100 4
0 101 5
0 110 6
0 111 7
1 000 10
1 001 11
1 010 12
1 011 13
1 100 14
1 101 15
1 110 16
1 111 17
Base 2 (21)Binario
Base 8 (23)OCTAL
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
Bases numéricas con origen en Binario
• La relación entre la base 16 y la base 2 son cuatro bits.
• Cada símbolo en base 16 se representa con un vector de cuatro bits.
• Esto, por ejempo permite representar el vector:
– 1100 0111 0010 0010 b
• En Hexadecimal:– C 7 2 2 hex
TE 1010 47
Base 2 (21)Binario
Base 16 (24)Hexadecimal
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F
Convertir números de una base con origen en binario a base 10
• Para convertir un número de una base a otra, hacemos uso de la forma polinomial del número y realizamos las operaciones en la base a la que queremos convertir.
• En este caso, la base de origen ß1 es múltiplo de binario (2, 4, 8, 16), y la base destino ß2 es decimal.
• Se partirá de la expresión general:
TE 1010 Curso FIT 48
Númeroß1 Númeroß2
Forma polinomial
1
0
N
i
i
dec BiX
100012 = ?10
1 0 0 0 1
1x24 + 0x23 + 0x22 + 0x21 + 1x20
10001 = 1710
Convertir números de base 2 a base 10
1
0
2N
i
iBiX
TE 1010 Curso FIT
Convertir números de base 16 a base 10
1
0
16N
i
iBiX
1A16 = ?10
1 A
1x161 + Ax160
1x161 + 10x160
1A16 = 2610
TE 1010 Curso FIT
Convertir de decimal a binario
• Método: Divisiones Sucesivas:
– Ejemplo tomado del curso FIT del ITESM:
TE 1010 Curso FIT 51
Ejemplo: 1710 = ?2
17 2
1 8 2
0 4 2
0 2 2
0 1
1710 = 100012
✓ Se divide entre la base a la cual
se desea convertir (2).
✓ Se continúa dividiendo los
residuos
✓ Se almacenas los cocientes
✓ El residuo final y los cocientes
forman el número en binario
Convertir de decimal a Hexadecimal
• Método: Divisiones Sucesivas:
– Ejemplo tomado del curso FIT del ITESM:
TE 1010 Curso FIT 52
✓ Se divide entre la base a la cual se
desea convertir (16).
✓ Se continúa dividiendo los
residuos
✓ Se almacenas los cocientes
✓ El residuo final y los cocientes
forman el número en hexadecimal
Ejemplo: 3010 = ?16
30 16
14 1
3010 = 1E16
Otros códigos binarios
TE 1010 53
• BCD : Binary Coded Decimal
• Cada dígito en decimal se codifica usando 4 bits.
• El número mínimo de bits que se requieren para representar los valores del 0 al 9 son cuatro.
• Las combinaciones: 1010 (10), 1011 (11), 1100 (12), 1101 (13), 1110 (14) y 1111 (15) no son utilizadas
• Ejemplos:
• 9710 1001 0111BCD 1100001b
• 4510 0100 0101BCD 101101b
Otros códigos binarios
TE 1010 54
• BCD: Cada carácter (dígito) en decimal se representa con un vector de 4 bits:
Decimal Binario BCD
0 0000 0000 0000 0000
1 0001 0000 0000 0001
2 0010 0000 0000 0010
… … ….
9 1001 0000 0000 1001
10 1010 0000 0001 0000
11 1011 0000 0001 0001
.. … ….
31 11111 0000 0011 0001
32 100000 0000 0011 0010
… … …
127 1111111 0001 0010 0111
128 10000000 0001 0010 1000
129 10000001 0001 0010 1001
Otros códigos binarios
• Código Gray: Codificación utilizada para reducir errores en transiciones ascendentes.
– Ejemplo: transición de 3 a 4:• 0011 → 0100 : cambian de valor 3 de los 4 bits de la palabra.
• Al enviar este cambio por medio de un canal de comunicación, podemos tener errores debido al ruido.
– El código Gray elimina la relación entre “símbolos adyascentes” (en una cuenta, números consecutivos).
– En Gray, entre un símbolo y el siguiente, solamente existe la variación de 1 bit.
TE 1010 55
Otros Códigos binarios
• La forma de generar el código Gray:
TE 1010 56
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 0 0
0 0 1
0 1 1
0 1 0
1 1 0
1 1 1
1 0 1
1 0 0
Otros Códigos binarios
• La forma de generar el código Gray:
TE 1010 57
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 0 0
0 0 1
0 1 1
0 1 0
1 1 0
1 1 1
1 0 1
1 0 0
2 Bits
cambian
3 Bits
cambian
Solo
cambia 1
bit
Otros códigos binarios
• ASCII: American Standard Code for InformationInterchange.
– Creado con el fin de intercambiar símbolos entre distintosdispositivos informáticos.
• Ejemplo: Teclado – CPU
– Originalmente se definió sobre 7 bits• Permitía representar todos los caracteres alfanuméricos en idioma
inglés.
– Actualmente se compone de 8 bits• Incluye caracteres en otros idiomas, caracteres y funciones
especiales.
TE 1010 58
Otros códigos binarios
• ASCII: American Standard Code for InformationInterchange.
TE 1010 59
Decimal Hex Símbolo
32 20h Espacio
33 21h !
34 22h “
35 23h #
…. ….. …..
48 30h 0
49 31h 1
50 32h 2
51 33h 3
52 34h 4
53 35h 5
54 36h 6
55 37h 7
Decimal Hex Símbolo
65 41h A
66 42h B
67 43h C
68 44h D
69 45h E
70 46h F
….. ….. …..
97 61h a
98 62h b
99 63h c
100 64h d
101 65h e
102 66h f
Decimal Hex Símbolo
0 00h Carácter nulo
1 01h Inic. Encabezado
2 02h Inicia Texto
3 03h Fin Texto
4 04h Fin Transmisión
5 05h Enquiry
6 06h Acknowledge
7 07h Ring
8 08h Retroceso
9 09h Tab Horizontal
10 0Ah Salto de línea
11 0Bh Tab Vertical
Representación de Números Negativos
• Varios métodos
• Característica común: MSB representa el bit de signo• 0 número positivo• 1 número negative
• Métodos principales• Signo y magnitud• Complemento a 2• Complemento a 1
60
Representación de Números Negativos
• Signo y magnitud poco adaptado al diseño de circuitos digitales:
– Se requiere de N bits para la magnitud y de un bit extra para el signo.
– Las arquitecturas aritméticas son más complejas.
• Complemento a 2 y complemento a 1 permiten un fácil diseño de circuitos aritméticos digitales:
– Objetivo: representar números positivos y negativos usando el mísmo número de bits.
61
Numeración en Complemento a 1
• Número positivo, N,
0 XX…XXX
Donde XX…XXX representa la magnitud del número
• Número negativo, -N,
/N = (2n – 1) – N
Ejemplo: Si n = 4, -N = 15 – N,
-3 = 15 – 3 = 11 = 11002
• Regla: Complementar todos los bits de la palabra.
62
Numeración en Complemento a 2
• Número positivo, N,
0 XX…XXX
Donde XX…XXX representa la magnitud del número
• Número negativo, -N,
N* = 2n – N
Donde n es el tamaño de la palabra o número
Ejemplo: Si n = 4, -N = 16 – N,
-3 = 16 – 3 = 13 = 11012
• Regla: Avanzar de derecha a izquierda. Cuando se localice el primer 1, complementar los siguientes bits.
63
Complemento a 1 y Complemento a 2
64
0-1-2-3-4-5-6-7 7654321
0
1
2
3
4
5
6
7
2 + 4 = 6
2 - 4 = 6 (-2)
Complemento a 2 VS Complemento a 1
• N* = 2n – N = 2n – 1 – N + 1 = /N + 1
• Obtención de N a partir de sus complementos• N = 2n – N*
• N = (2n – 1) – /N
• Complemento a 2: posibilidad de representar unnúmero negativo más que un número positivo.Ejemplo: Para n = 4 podemos representar losvalores [7 .. –8]
65
Representación de Números Negativos
66
N
Enteros
Positivos
(Todos los
sistemas)
-N
Enteros Negativos
Signo y
magnitud
Complemen
to a 2
Complemen
to a 1
+0 0000 -0 1000 ---- 1111
+1 0001 -1 1001 1111 1110
+2 0010 -2 1010 1110 1101
+3 0011 -3 1011 1101 1100
+4 0100 -4 1100 1100 1011
+5 0101 -5 1101 1011 1010
+6 0110 -6 1110 1010 1001
+7 0111 -7 1111 1001 1000
-8 ---- 1000 ----
La Suma en Complemento a 2
• La suma de números con signo de n bits es directa cuando se emplea el sistema en complemento a 2.
• Cualquier carry de la posición de signo se ignora
• La suma siempre será correcta excepto cuando ocurre overflow
• Se dice que ha ocurrido overflow cuando la representación de la suma (incluyendo el bit de signo) requiere más de n bits
67
La Suma en Complemento a 1
• Similar a la suma en complemento a 2
• Diferencia: El carry no se ignora y se suma al resultado de la suma
• También puede ocurrir overflow, lo que indica que la suma necesita más bits para representarse correctamente
68
Ejemplos
• Complemento a 2
– (+3)+(+4) => +7 (0111)
– (+5)+(+6) => +11 (1011)
– (+5)+(-6) => -1 (1111)
– (-5)+(+6) => +1 (0001)
– (-3)+(-4) => -7 (1001)
– (-5)+(-6) => -11 (0101)
69
Ejemplos
• Complemento a 1
– (+3)+(+4) => +7 (0111)
– (+5)+(+6) => +11 (1011)
– (+5)+(-6) => -1 (1110)
– (-5)+(+6) => +1 (0000) ????
– (-3)+(-4) => -7 (0111) ????
– (-5)+(-6) => -11 (0011) ????
70
Igual que el complemento a 2
Overflow
• Con el propósito de obtener una respuesta correcta de un sumador/restador, se debe asegurar que el resultado tiene el número suficiente de bits para representar el resultado
• Si dos números de b-bits se suman y la suma requiere de n+1 bits para ser representada, ocurre un overflow
• El “overflow” es un problema cuando el número de bits para representar el resultado es fijo
• Una Solución: extender el resultado a n+1 bits desperdicio de recursos
71
Overflow
• Otra solución es detectar cuando ocurre el “overflow”
• Dos casos
– Números sin signo
– Números con signo
72
Overflow en números sin signo
• En la suma de 2 números sin signo, el “overflow” se detecta a partir del Carry-Out del MSB.
• En la resta de números sin signo, la magnitud del resultado es siempre igual o menor que el operando de mayor longitud, por lo que no hay posibilidad de “overflow”.
73
Overflow en números con signo
• En 2’complemento, el MSB indica el signo
• Cuando 2 números con signo se suman, el bit de signo se manipula separadamente del número y un Carry-Out de los MSB en ‘1’ no es necesariamente un “overflow”
• En números con signo, un “overflow” no puede ocurrir durante la suma si uno de los operandos es positivo y el otro negativo
74
Overflow en números con signo
011010010150
0000101080
0110001070
75
• Un “overflow” puede ocurrir si los 2 números a sumar son positivos o negativos
– Ejemplo: suma de 2 números de 8-bits
010101101150
0000110180
0101110170
Overflow en números con signo
011010010150
0000101080
0110001070
76
• Rango de valores sobre 8-bits: [-128, 127]
• El resultado (150) excede la capacidad de representación
• El resultado que debería ser positivo tiene un signo negativo y el resultado que debiera ser negativo tiene un signo positivo
010101101150
0000110180
0101110170
Overflow en números con signo
011010010150
0000101080
0110001070
00000010:Carry
77
• El “overflow” se detecta al observar el Carry dentro del bit de signo y el carry-out del bit de signo
• Si ambos no son iguales, un “overflow” ha ocurrido (XOR)
010101101150
0000110180
0101110170
00001101:Carry