You are on page 1of 102

EL-3102

Sistemas Digitales

Introducción y Metodología

¿ Sabe Ud. cómo funciona un computador ?


Podría construir uno?
CPU
Here is your code
and your variables

Here is the core of your CPU,


which performs only one
operations at a time. ALU stands
for Arithmetic Logic Unit.

This connection (BUS)


carries each result back to
memory

1. Se copia A de la RAM a los registros de la CPU


2. Se copia B de la RAM a los registros de la CPU
C = A + B => 3. Se selecciona la operación en la ALU
4. Se guarda el resultado en un registro de la CPU
Que es el Diseño Digital ??
un poco de etimología…

 Digital (del latín digitus, dedo): Circuitos que utilizan


valores discretos para representar información
 Diseño (del latín designare, dar signos, describir con signos)

 Describir una solución que cumpla con requerimientos funcionales


mientras se satisfacen restricciones
 Ejemplo de Requerimientos: función, velocidad, precisión.
 Ejemplo de Restricciones: tamaño, consumo de energía, costo.

EL-4002 Sistemas Digitales

Diseño utilizando Abstracción


 Los circuitos contienen millones de transistores
 ¿Cómo podemos manejar esta complejidad?
 Abstracción
 Enfocarse en los aspectos relevantes, ignorando
otros aspectos
 No olvidar los supuestos que permitieron la abstracción

 Niveles de abstracción:
 Físico (mas bajo)
 Elementos discretos (R,L,C,TR)
 Compuertas lógicas
 Bloques lógicos funcionales
 Sistemas digitales
Ejemplo de un Sistema Digital (abstracción alta):

EL-4002 Sistemas Digitales

Sistemas Digitales
 Circuitos electrónicos que utilizan representaciones
discretas de la información
 Discreto en el magnitud (valor) y en el tiempo
Magnitud

Tiempo

EL-4002 Sistemas Digitales


Señales Analógicas y Digitales

Representación Binaria
 Representación básica para la
forma más simple de la
información (un bit):
43
 Verdadero o Falso
 Si - No
 Abierto - Cerrado
 i.e. un dígito binario (base 2), o
un bit: 0 ó 1 En 1890 Herman Hollerith trabajando para la Oficina
del Censo de EE.UU. desarrolló un dispositivo que
podría leer automáticamente la información que se
había perforado en una tarjeta.

 Cualquier tipo de información se puede reducir a un conjunto de 1s y 0s,


es decir a un alfabeto de dos letras (símbolos).
 Podría ser también un alfabeto de 4 letras…
¿Ejemplo (en la naturaleza) de información digital escrita en un alfabeto de
cuatro símbolos?
Ejemplo de información Binaria
+V

lamp_enabled
lamp_lit

Dark = 1
sensor

Hay dos entradas y una salida de información.


Cada entrada y salida esta codificada en un bit.
 dark: está oscuro?
 lamp_enabled: ampolleta habilitada?
 lamp_lit: lamp_enabled AND dark
Por lo tanto: Si hay luz de día => lamp_lit = 0 (independiente de
lamp_enabled)

Compuerta Lógica: Es un dispositivo electrónico


que implementa una función lógica

 Las más conocidas son: Son todas indispensables?


Se puede construir una a
partir de las otras?
X
6

and or 2
6 X Y
2

Y 6

not xor Todas las funciones lógicas se pueden construir usando las
tres compuertas básicas: and/or/not.
Esto se denomina un conjunto “funcionalmente completo”

--Note que éste no es el único conjunto funcionalmente


completo, ni es mínimo -
Bloques Combinacionales: No son mas que
Compuertas lógicas de mas entradas

in0
Out
in1

s Select
(in 2)

mux
(multiplexer)

Circuitos Combinacionales
 Circuitos cuyos valores de salida dependen
exclusivamente de los valores presentes de sus
entradas. i.e. no hay memoria.
>30°C

vat 0 >25°C

low level (Alarma)


0
1
buzzer

>30°C

+V
vat 1 >25°C select vat 1

select vat 0
low level

EL-4002 Sistemas Digitales


Nos vamos a centrar en el diseño del módulo
de Puertas  Relaciona entradas y salidas de un circuito

above_30_0
>30°C temp_bad_0
or_0a
inv_0 or_0b
above_25_0
>25°C
wake_up_0
below_25_0
low_level_0
low level select_mux
0 buzzer
1
buzzer
above_30_1
>30°C temp_bad_1
or_1a
inv_1 or_1b wake_up_1 +V
above_25_1
>25°C
select_vat_1
below_25_1
low_level_1
low level

EL-4002 Sistemas Digitales

Circuitos Secuenciales
“Circuitos cuyos valores de salida
dependen de los valores de las
entradas actuales (presentes) y de las
anteriores.
 Incluye alguna forma de almacenamiento de valores (memoria)

Casi todos los sistemas digitales cotidianos, son


secuenciales esto es:
 Compuertas y bucles de realimentación o memorias
 Los circuitos secuenciales requieren de los circuitos
combinacionales (como subconjunto)

EL-4002 Sistemas Digitales


Circuito Secuencial Síncrono
 Flip-flop D manejado por flancos (“Edge-
triggered”)
 almacena un bit de información a la vez

D Q

clk

EL-4002 Sistemas Digitales

Un Flip Flop es un circuito digital secuencial, es decir


“Tiene memoria”. Se implementa con compuertas lógicas
convencionales, retroalimentadas.

Flip Flop D implementado


con compuertas NAND

EL-4002 Sistemas Digitales


Otras Consideraciones
 Velocidad de las compuertas y retardo
de las líneas de interconexión:

 Disipación de Energía
 Corriente a través de resistencias => calor
 Debe ser disipada, o el circuito se quema!
 Mas velocidad de reloj -> mas switching -> mas calor (mayor
tasa de fallos, menor vida útil)

 Consumo de potencia (particularmente en dispositivos


móviles)

EL-4002 Sistemas Digitales

Resumen
 Sistemas Digitales utilizan una
representación discreta de la información
 Procesan esta información mediante el uso de compuertas
lógicas y memoria
 Hay circuitos Combinacionales y Secuenciales (síncronos y
asíncronos), todos basados en compuertas lógicas.
 Para simplificar el diseño se ‘abstraen’ las compuertas y
bloques funcionales, sin olvidar las restricciones
(supuestos) de la abstracción.
 Restricciones del mundo real incluyen: retardo
(capacitancía), consumo de potencia, disipación de calor,
etc..
EL-4002 Sistemas Digitales
Al finalizar este curso Ud debiera:
Lograr comprensión continua desde los menores
niveles de abstracción hasta el diseño de
sistemas digitales complejos

Lógica
Transistores Compuertas combinacional Microprocesador
Lógicas y secuencial

Responder un sólido “sí” a la pregunta:


¿Sabe Ud. cómo funciona un computador?

EL-3102

Sistemas Digitales

Representación de la Información
y aritmética booleana
Representación de la Información
 Voltaje alto-bajo en las compuertas se interpreta como 1-0
 un arreglo de 1-0s puede representar:
 Un número (sistema numérico de base 2)
 Una caracter -letra o símbolo- (American Standard
Code for Information Interchange, ASCII)
 La intensidad de luz en cada pixel de una imagen de
escala de grises (greyscale)

128 símbolos y acciones

Sistemas Numéricos – Representación


 Sistemas de números posicionales con base positiva
 Un número A con una base r es representado por
un conjunto de dígitos:
An-1An - 2 … A1A0 . A- 1 A- 2 … A- m  1 A- m
en los cuales 0  Ai < r y "." es el punto de la base
 El conjunto de dígitos representa la serie de
potencias:

  A r   A r 
i=n-1 j=-1

(Número)r = i
i
j
j
i=0 j=-m
(Parte Entera) + (Parte Fraccionaria)

EL-4002 Sistemas Digitales


Bases Más Comunes
Nombre Base Dígitos
Binaria 2 0,1

Octal 8 0,1,2,3,4,5,6,7

Decimal 10 0,1,2,3,4,5,6,7,8,9

Hexadecimal 16 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

 Las seis letras en hexadecimal representan los valores 10, 11, 12,
13, 14 y 15 (dados en decimal), i.e. FF = 1510*161 + 1510*160 = 255

 Un numero Hex de dos posiciones (i.e. de 00 a FF) cabe en 8 bits


(1 Byte)

EL-4002 Sistemas Digitales

Bases Más Comunes


General Decimal Binary Octal (8) Hexadecimal (16)
Digits -> 0 a r-1 0 to 9 0 to 1 0 to 7 0 to F
Roots 0 r0 1 1 1 1
1 r1 10 2 8 16
2 r2 100 4 64 256
3 r3 1000 8 512 4096
4 r4 10000 16 4096 65536
5 r5 100000 32 32768 1048576
-1 r-1 0.1 0.5 0.125 0.0625
-2 r-2 0.01 0.25 0.015625 0.00390625
-3 r-3 0.001 0.125 0.00195313 0.00024414
-4 r-4 0.0001 0.0625 0.00024414 0.00001526
-5 r-5 0.00001 0.03125 0.00003052 0.00000095

EL-4002 Sistemas Digitales


Potencias Positivas de 2
Exponente Valor Exponente Valor
0 1 11 2.048
1 2 12 4.096
2 4 13 8.192
3 8 14 16.384
4 16 15 32.768
5 32 16 65.536
6 64 17 131.072
7 128 18 262.144
8 256 19 524.288
9 512 20 1.048.576
10 1024 21 2.097.152
 210 (1024) es Kilo, designado como "K"
Potencias
 220 (1,048,576) es Mega, designado como "M"
Especiales:  230 (1,073, 741,824) es Giga, designado como "G"
 240 (1,099,511,627,776 ) es Tera, designado como “T"
EL-4002 Sistemas Digitales

Operaciones Aritméticas (Aritmética Binaria)

 Suma de Un Bit con Transporte (“Carry”)


 Suma de Múltiples Bits
 Resta de un Bit con “Pedir Prestado” (“Borrow”)
 Resta de Múltiples Bits
 Multiplicación
 División

EL-4002 Sistemas Digitales


Primero: recordemos como se suma…

Suma Binaria de un Bit con Transporte


Dado dos dígitos binarios (X,Y), un transporte en (Z),
obtenemos la siguiente suma (S) y transporte (C):
Transporte en (Z) de 0:
Z 0 0 0 0
X 0 0 1 1
+Y +0 +1 +0 +1
CS 00 01 01 10
Transporte en (Z) de 1: Z 1 1 1 1
X 0 0 1 1
+Y +0 +1 +0 +1
CS 01 10 10 11

EL-4002 Sistemas Digitales


Suma Binaria de Múltiples Bits
 Extendiendo lo anterior a dos números de múltiples
bits, por ejemplo:
Transporte 0 0
Sumando 01100 10110
Sumando +10001 +10111
Suma 11101 101101
 Nota: El 0 es el Transporte de entrada (por defecto al bit
menos significativo)

EL-4002 Sistemas Digitales

Sabiendo sumar, podemos contar!


Decimal Binario Octal Hexadecimal
(Base 10) (Base 2) (Base 8) (Base 16)
00 00000 00 00
01 00001 01 01
02 00010 02 02
03 00011 03 03
04 00100 04 04
05 00101 05 05
06 00110 06 06
07 00111 07 07
08 01000 10 08
09 01001 11 09
10 01010 12 0A
11 01011 13 0B
12 01100 14 0C
13 01101 15 0D
14 01110 16 0E
15 01111 17 0F
16 10000 20 10

EL-4002 Sistemas Digitales


Recordemos como se resta…

Resta Binaria de un Bit con Pedir Prestado


 Dados dos dígitos binarios (X,Y), un préstamo en (Z)
se obtienen las siguientes diferencias (S) y
préstamos (B):
 Préstamo en (Z) de 0: Z 0 -0 -0 -0

X 0 0 1 1

-Y -0 -1 -0 -1

BS 00 11 01 00

 Préstamo en (Z) de 1: Z -1 -1 -1 -1

X 0 0 1 1

-Y -0 -1 -0 -1

BS 11 10 00 11
EL-4002 Sistemas Digitales
Tabla de verdad de un restador Binario de un Bit

X Y Z X Y B S
(-) (-)
0 0 0 0 0
Restador 0 0 1 1 1
B de 1 bit Z
(sub) 0 1 0 0 1
0 1 1 0 0
1 0 0 1 1
S
1 0 1 1 0
1 1 0 0 0
1 1 1 1 1

Resta Binaria de Múltiples Bits

 Extendiendo lo anterior a dos números de


múltiples bits, por ejemplo:
Préstamos 0 0
Minuendo 10110 10110
Sustraendo - 10010 - 10011
Diferencia 00100 00011
 Notas: El 0 es un Préstamo (“Borrow-In”) al bit menos
significativo.
 Si el Sustraendo > el Minuendo, intercambiar y
agregar un "–" al resultado
EL-4002 Sistemas Digitales
Multiplicación…

Multiplicación Binaria
La tabla de multiplicación binaria es simple:
00=0 | 10=0 | 01=0 | 11=1
Extendiendo la multiplicación a múltiple dígitos:

Multiplicando x multiplicador
1011x101 1011x111
Productos parciales: 1011 1011
0000 - 1011 -
+ 1011 - - +1011- -
Producto: 110111 1001101

EL-4002 Sistemas Digitales


División…

División Binaria: Sabiendo, multiplicar y restar se puede dividir


(a mano), pero es un algoritmo complicado… (requiere
responder la pregunta “cuantas veces cabe”)

Dividendo Divisor
11011001:1011=10011
1011
217:11=19 0010100
-11 1011
107 10011
-99 1011
8 1000

Resto

EL-4002 Sistemas Digitales


- Cuales son las multiplicaciónes/divisiónes binarias más simples?
 Normalmente los microprocesadores incorporar una lista de instrucciones
básicas (AND, OR, XOR, MOV, ADD, SUB, SHL, SHR, etc, [MUL, DIV])-
Assembly language-.
 Algunos procesadores ni siquiera implementan la multiplicación de forma
nativa (ver: RISC: Reduced Instruction Set Computing v/s CISC: complex
instruction set computing).
- Cómo se eleva a potencia?
- Cómo se calcula Seno, Coseno, Tangente, Raiz?
 Funciones más complejas se implementan con Algoritmos - Ej: Series de potencia -
(lo que toma muchos ciclos de reloj - Latency-)
 o Look Up Tables (LUTs), lo que es mas rápido, pero costoso si se quiere buena
precisión.
 Procesadores especiales incorporan estas funciones por hardware -ver:
coprocesadores matemáticos (FPU), GPUs-
 Lenguajes de nivel medio (C) definen operadores a nivel de bit (x=8*y v/s x=y<<3)

CPU vs GPU
Intel x87 Arquitecture

FADD
Op FABS FMUL FDIV FSQRT FCOS FTAN
FSUB

Latency
3 6 8 30-40 30-40 180-280 240-300
(clk ticks)
http://www.intel.com/content/dam/doc/manual/64-ia-32-architectures-optimization-manual.pdf

Nvidia GT200 GPU

FSIN
Op FADD FMUL FDIV FSQRT FTAN
FCOS

Latency 24 26 52 28 48 98

http://www.stuffedcow.net/files/gpuarch-ispass2010.pdf Demystifying GPU Microarchitecture through


Microbenchmarking
A GPU supercomputer

Credits: Architecture and micro-architecture of GPUs Sylvain Collange Arénaire, LIP, ENS de Lyon

Codificación del color

4 bits (16 colors): Tabla (paleta) de colores

8 bits (256 colors): “Direct RGB” 24 bits -16,777,216 colors,


(3x3x2) bits / (8x8x4)niveles "truecolor" (RGB:8x8x8 bits)
Menos niveles para el azul 256 tonos por color primario
Algoritmo Conversion Decimal-Binario “DIV/MOD”:
46.687510
 Convertir 46 a Base 2:
46/2 = 23 => resto = 0
23/2 = 11 => resto = 1
11/2 = 5 => resto = 1
5/2 = 2 => resto = 1
2/2 = 1 => resto = 0
1/2 = 0 => resto = 1
Leyendo en orden inverso: 1011102

 Convertir 0.6875 a Base 2:


0.6875 * 2 = 1.3750 entero = 1
0.3750 * 2 = 0.7500 entero = 0
0.7500 * 2 = 1.5000 entero = 1
0.5000 * 2 = 1.0000 entero = 1
0.0000 (fin)
Leyendo en orden directo: 0.10112

 Juntar los resultados con una coma binaria:


101110.10112
EL-4002 Sistemas Digitales

Algoritmo Conversion Decimal-Binario “DIV/MOD”:


 Convertir 0.65 a Base 2:
0.65 * 2 = 1.30 entero = 1
0.30 * 2 = 0.60 entero = 0
0.60 * 2 = 1.20 entero = 1
0.20 * 2 = 0.40 entero = 0
0.40 * 2 = 0.80 entero = 0
0.80 * 2 = 1.60 entero = 1
0.60 * 2 = 1.20 entero = 1
0.20 * 2 = 0.40 entero = 0
0.40 * 2 = 0.80 entero = 0
0.80 * 2 = 1.60 entero = 1

Leyendo en orden directo: 0.1010011001…2

• En el proceso de conversión, la parte fraccionaria puede llegar a ser 0 como


resultado de la multiplicación repetitiva (mejor caso)
• En general, pueden tomar muchos dígitos para que esto suceda o puede que
nunca suceda
• En la práctica estos números decimales periódicos quedarán truncados al largo de
la representación usada.
EL-4002 Sistemas Digitales
“Overflow”
Realicemos la siguientes sumas binarias:

 Sumar los siguientes


1001
números binarios de
+ 0101
4 bits

 Sumar los siguientes


números binarios de 1011
4 bits
+ 0110

EL-4002 Sistemas Digitales

“Overflow”
El resultado necesita mas de 4 bits!
1
 Sumar los siguientes
1001
números binarios de
+ 0101
4 bits
1110

 Sumar los siguientes 111


números binarios de 1011
4 bits
+ 0110
10001
Overflow!
EL-4002 Sistemas Digitales
Overflow
 A bajo nivel los sistemas digitales operan con un
número fijo de bits (4,8,16,32,64)
 Overflow: cuando el resultado es muy grande
para caber en la cantidad de bits disponibles
 Un chip que realiza operaciones (ALU) tienen un pin de
overflow que avisa del problema
 Normalmente se interpreta como un “error” y se detiene
el programa
 También se puede aproximar al mayor número posible
en la representación (saturación) y seguir corriendo!
En señales esto produce distorsión (harmónicos), pero
es mejor que no “manejar” el overflow

EL-4002 Sistemas Digitales

Overflow visto como una señal 8

111
1011 0

+ 0110
10001
El “Overflow” es una causa bastante común de los fallos de software. Es un error difícil
de descubrir y diagnosticar porque puede manifestarse solamente en caso de grandes
conjuntos de datos de entrada, que son menos susceptibles de ser utilizados en las
pruebas de validación.
Un Overflow no controlado en el software de la dirección del motor fue la causa
principal del accidente del vuelo inaugural del cohete Ariane 5 (ESA). El software había
sido considerado libre de errores, ya que se había utilizado en muchos vuelos anteriores,
pero en cohetes más pequeños que generan aceleraciones menores. (Wikipedia)

“The cause of the failure was a


software error in the inertial
reference system. Specifically a 64
bit floating point number relating
to the horizontal velocity of the
rocket with respect to the platform
was converted to a 16 bit signed
integer. The number was larger
than 32,767, the largest integer
storeable in a 16 bit signed integer,
and thus the conversion failed.“

Problema

Utilizando sumadores de 1 bit y compuertas


lógicas implemente un sumador de 4 bits que
maneje el overflow como saturación
Representación de la Información

Números Binarios con Signo

 Números Signo y Magnitud


 Números Complemento de Dos

EL-4002 Sistemas Digitales

Números Signo y Magnitud (bit de signo)


 1 bit de signo, N-1 bits de magnitud
 Bit de signo es el bit más significativo (el de más
a la izquierda)
A : a N 1 , a N 2 , a2 , a1 ,a 0 
 Número Positivo: bit signo = 0
n2
 Número Negativo: bit signo = 1 A  (1) an1
a 2 i
i

i0

 Ejemplo, representación signo y magnitud de 4


bits de ± 6:
+6 = 0110
- 6 = 1110

 Rango número signo y magnitud de N-bit :


[-(2N-1-1), 2N-1-1]
EL-4002 Sistemas Digitales
Números Signo y Magnitud
 Problemas:
 La suma no funciona, por ejemplo: -6 + 6:
1110
+ 0110
10100 (error!)

 Dos representaciones para el 0 (± 0):


1000
0000
EL-4002 Sistemas Digitales

Binary Two's
Números Complemento de Dos complement
Decimal

0111 7
 MSB tiene peso -2N-1 0110 6
0101 5

A  a n1 2   a 2
n2
n1 0100 4
i
i 0011 3
i0 0010 2
0001 1
 Número de 4 bits más positivo: 0111 0000 0
 Número de 4 bits más negativo: 1000 1111 −1
1110 −2
 El bit más significativo sigue
1101 −3
indicando el signo (1 = negativo, 0 = 1100 −4
positivo) 1011 −5
 Rango número complemento de dos 1010 −6
de N-bits: [-(2N-1), 2N-1-1] 1001 −7
1000 −8
EL-4002 Sistemas Digitales
Números Complemento de Dos
 No tiene los problemas como los números en
Signo y Magnitud:
 La suma funciona en todos los casos
 Hay una única representación para el 0
 Representación mas eficiente

EL-4002 Sistemas Digitales

Suma en Complemento de Dos (en 4 bits)


 Sumar 6 + (-6) utilizando números en
Complemento de Dos 111
0110
+ 1010
10000
 Sumar -2 + 3 utilizando números en
Complemento de Dos
111
1110
+ 0011
10001
EL-4002 Sistemas Digitales
Cambiar el signo de un número complemento de dos es un
poco mas difícil que en el caso con bit de signo.

Método:
 Invertir los bits, y
 Sumar 1
Ejemplos: Cambiar el signo de:

 310 = 00112  610 = 01102


1100 1001
+ 1 + 1
1101 = -310 10102 = -610

EL-4002 Sistemas Digitales

Overflow/underflow en complemento de Dos


 Suma de números de distinto signo no pueden producir
overflow
 Se detecta un over/underflow cuando: “El signo de los
sumando es el mismo, pero el signo de la suma es
distinto”
 En términos de los carry’s: si el Cin y Cout del bit de
signo es distinto, es overflow o underflow.

10 0111
1101 = -3 0111 = +7
+ 1010 = -6 + 0111 = +7
10111 = +7 01110 = -2
underflow overflow
EL-4002 Sistemas Digitales
Complemento de dos: Extensión a más bits

 Bit de signo se copia a los bits más


significativos insertados
 Valor del número es el mismo

 Ejemplo número positivo:


 representación en 4 bits de 3 = 0011
 Extensión a 8 bits: 00000011
 Ejemplo número negativo:
 representación en 4 bits de -5 = 1011
 Extensión a 8 bits : 11111011

EL-4002 Sistemas Digitales

Comparación Sistemas Numéricos

Sistema Numérico Rango


Sin Signo [0, 2N-1]
Signo y Magnitud [-(2N-1-1), 2N-1-1]
Complemento de Dos [-2N-1, 2N-1-1]

Por ejemplo, representación en 4 bits:


-8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Sin Signo 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111 Complemento de Dos

0000
1111 1110 1101 1100 1011 1010 1001 0001 0010 0011 0100 0101 0110 0111 Signo y Magnitud
1000

EL-4002 Sistemas Digitales


Punto Flotante: Permite precisión y rango (pero no ambos) - Ver iPython -

IEEE “Float” (Binary32):

The true significand (mantissa) includes 23 fraction bits to the right of the binary point and an implicit
leading bit (to the left of the binary point) with value 1 unless the exponent (e) is zero. Thus only 23
fraction bits of the significand appear in the memory format but the total precision is 24 bits.
Range: from -2*2^128 to +2*2^128, i.e from -3.4.*10^38 to + 3.4.*10^38

Códigos Binarios en general


 Dados n dígitos binarios (llamados bits), un
código binario es un mapeo entre un conjunto de
elementos representados y un subconjunto de 2n
números binarios
 Ejemplo: Un Color Número Binario
código binario Rojo 000
Naranja 001
para los siete Amarillo 010
colores del Verde 011
arcoíris Azul 101
 Código 100 no Indigo 110
Violeta 111
se utiliza

EL-4002 Sistemas Digitales


Número de Elementos Representados
 Dados n dígitos en la raíz r, hay rn distintos
elementos que pueden ser representados
 Pero, se pueden representar m elementos, m<rn
 Ejemplos:
 Se pueden representar 4 elementos en raíz r = 2 con n
= 2 dígitos: (00, 01, 10, 11).
 Se pueden representar 4 elementos en raíz r = 2 con n
= 4 dígitos: (0001, 0010, 0100, 1000).
 Este segundo código se llama código "one hot"

EL-4002 Sistemas Digitales

BCD: Binary-Coded Decimal

Podemos querer codificar cada digito decimal en 4 bits.


Es menos compacto que la representación binaria, pero es
útil en ciertas aplicaciones (displays):
Métrica (distancia) de Hamming
Se define como el número de bits que tienen
que cambiarse para transformar una palabra
de código en otra:
Distancia de Haming [,]
[0000,0001] = 1
[1010,0100] = 3
[1111,0000] = 4
[0000,1111] = 4

Geométricamente es el camino mínimo por las aristas


de un cubo.
EL-4002 Sistemas Digitales

Cultura general….
Cubo 3D 2D

Teseracto

4D
3D
Teseracto

Proyección de una rotación ‘simple’ en torno


a un plano

Códigos Binarios para Dígitos Decimales


 Hay más de 8.000 maneras de elegir 10 elementos de
un total de 16. Los mas comunes son:

Decimal BCD Exceso 3 Gray


0 0000 0011 0000
1 0001 0100 0001
2 0010 0101 0011
3 0011 0110 0010
4 0100 0111 0110
5 0101 1000 0111
6 0110 1001 0101
7 0111 1010 0100
8 1000 1011 1100
9 1001 1100 1101
• Resuelve el problema • Común en “enconders”
del falso cero (detecta Elimina lecturas falsas de la
falla de potencia o posición
conexión)
Conversión y Codificación
 No hay que confundir conversión de un número
decimal a un número base 2 con codificación de
un número decimal con un CÓDIGO BINARIO
 1310 = 11012 (Esto es conversión a base 2)
 13  0001|0011 (Esto es codificación BCD)

• Por supuesto, los números codificados tendrán una aritmética


distinta a los números representados (convertidos) a base 2.
• Normalmente la codificación se usa para representar (en displays),
manejo de actuadores o transmisión de la información.

EL-4002 Sistemas Digitales

Códigos Alfanuméricos – Código de


Caracteres ASCII
 ASCII: American Standard Code
for Information Interchange
 Es un código muy popular utilizado para
representar información como datos
basados en caracteres. Utiliza 7 bits para
representar:
 94 Caracteres para impresión gráfica
 34 Caracteres no imprimibles

 Algunos caracteres no imprimibles son utilizados para formato de texto (p.e.


BS = Backspace, CR = Carriage Return)
 Otros caracteres no imprimibles son utilizados para marcar registros y
controles de flujo de datos (p.e. STX y ETX, comienzo y término de áreas de
texto)

EL-4002 Sistemas Digitales


UNICODE
 UNICODE extiende ASCII a 65.536 códigos de caracteres universales
 Para codificar caracteres de los lenguajes del mundo
 Disponibles en muchas aplicaciones modernas
 Palabras de código de 2 bytes (16 bits)

Códigos de Detección de Errores:


Bit de Paridad
 Redundancia (es decir, información extra), en la forma de bits
adicionales que pueden ser incorporados en las palabras de código
binario para detectar y corregir errores
 Una forma simple de redundancia es la paridad, un bit adicional
agregado a la palabra de código para hacer par o impar la cantidad
de 1’s. La paridad puede detectar cualquier error en un bit y
algunos errores en múltiples bits
 Una palabra de código tiene una paridad par si la cantidad de 1’s
en la palabra es par
 Una palabra de código tiene una paridad impar si la cantidad de 1’s
en la palabra es impar

EL-4002 Sistemas Digitales


Como se detecta paridad?
Simplemente operando todos los bit con la compuerta
xor (suma módulo 2)
Ejemplo:
1 xor 0 xor 0 xor 1 1 xor 1 xor 0 xor 1
1 xor 1 0 xor 1
0 1
par ! Impar !
Esto hace muy simple agregar un bit de paridad al
transmisor y chequear la paridad al receptor, de hecho, se
puede hacer en tiempo real.
EL-4002 Sistemas Digitales

Generadores de Paridad y Chequeadores


 Vimos que un bit de paridad agregado a un código de n bits,
produce un código de n+1 bits que permite detectar errores de 1 bit.

 Ejemplo: n = 3. Genera código paridad


X
par de largo 4 con generador de paridad
impar: Y
P
 Chequea código paridad par de largo Z
4 con generador
de paridad impar:
 Ejemplo: (X,Y,Z) = (0,0,1) da
X
(X,Y,Z,P) = (0,0,1,1) y E = 0. Y
E
Si Y cambia de 0 a 1, entonces E = 1 Z
indica un error P

EL-4002 Sistemas Digitales


EL-3102

Sistemas Digitales

Circuitos Lógicos Combinacionales


Parte 1: Circuitos de Compuertas y Ecuaciones
Booleanas

El Álgebra Booleana es la base del diseño y


Lógica Binaria análisis de los sistemas digitales.

- Steam Engine (1781)


- Maxwell equations
(1862).
- On the Origin of
Species (1859)
- First practical electric
light system (1880)
- First Automobile
(1885)

( Wikipedia )
Operaciones Lógicas

 Las tres operaciones lógicas básicas son:


 AND
 OR
 NOT
 AND es designado por un punto (·)
 OR es designado por un signo mas (+)
 NOT es designado por una barra ( ¯ ), un
apóstrofe (') o (~) antes de la variable

EL-4002 Sistemas Digitales

Ejemplos de Notación
 Ejemplos:
 Y = A · B, se lee como: “Y es igual a A y B”
 z = x + y, se lee como: “z es igual a x ó y”
 X = Ā, se lee como: “X es igual a no A”
 La declaración:
 1 + 1 = 2 (se lee “uno más uno es igual a dos”) no
es lo mismo que:
 1 + 1 = 1 (se lee “1 ó 1 es igual a 1”)

EL-4002 Sistemas Digitales


Tablas de Verdad
 Tabla de Verdad: un listado tabular de los valores de
la función para todas las posibles combinaciones de
valores en sus argumentos
 La tabla de verdad DEFINE (por extensión) una
función booleana
AND (y) OR (ó) NOT (no)
X Y Z = X·Y X Y Z = X+Y X Z=X
0 0 0 0 0 0 0 1
0 1 0 0 1 1 1 0
1 0 1
1 0 0
1 1 1
1 1 1
EL-4002 Sistemas Digitales

Implementación de las Funciones Lógicas


 Utilizando “Switches” (interruptores)
Switches en paralelo => OR
 Para las entradas:
 1 lógico es switch cerrado
 0 lógico es switch abierto

 Para las salidas: Switches en serie => AND


 1 lógico es luz encendida
 0 lógico es luz apagada

 NOT utiliza un switch tal


que: Switch normalmente cerrado => NOT
 1 lógico es switch abierto
 0 lógico es switch cerrado
C
EL-4002 Sistemas Digitales
Implementación de las Funciones Lógicas

 Ejemplo: Lógica utilizando switches


B C
A

D
 La luz se enciende (L = 1) para
_ _
L(A, B, C, D) = A·((B·C) + D) = A·B·C + A·D
y se apaga para (L = 0) en caso contrario

Diagramas y expresiones lógicas


Tabla de Verdad
XYZ F  X  Y  Z
Ecuación
000 0
001 1
F  X  Y· Z
010 0
Diagrama Lógico
011 0
X
100 1
Y F
101 1
Z
110 1
111 1
 Las ecuaciones booleanas, las tablas de verdad y los diagramas
lógicos describen la misma función
 Las tablas de verdad son únicas; las expresiones y los diagramas
lógicos no lo son. Esto da flexibilidad en la implementación de una
función.
EL-4002 Sistemas Digitales
Álgebra de Boole (Axiomas)
 Un Álgebra Booleana es un conjunto de elementos B
con dos operaciones binarias (+) y (•), satisfaciendo los
siguientes postulados o axiomas:
Los axiomas no se demuestran, no se discuten, no hay
uno mas importante que otro. Los Axiomas SON.
(A1) a ≠1 → a = 0 (A1’) a ≠ 0 → a = 1
(A2) a=0 → a’=1 (A2’) a=1 → a’=0
(A3) 0•0=0 (A3’) 1 + 1 = 1
(A4) 1•1=1 (A4’) 0 + 0 = 0
(A5) 0•1=1•0=0 (A5’) 1 + 0 = 0 +1 = 1

EL-4002 Sistemas Digitales

Postulados de Euclides (300 AC)


Álgebra de Boole: Teoremas de una variable
 Los teoremas de derivan desde los axiomas.
 Son resultados importantes (útiles) de los axiomas

(T1) a+0=a (T1’) a • 1 = a Identidad


(T2) a+1=1 (T2’) a • 0 = 0 Elemento nulo
(T3) a+a=a (T3’) a • a = a Idempotencia
(T4) (a’)’ = a Involución
(T5) a + a’ = 1 (T5’) a • a’ = 0 Complementos

EL-4002 Sistemas Digitales

Álgebra de Boole: Teoremas de dos o mas variables

Conmutatividad
(T6) a+b=b+a (T6’) a • b = b • a
Asociatividad
(T7) (a + b) + c = a + (b + c) (T7’) (a • b) • c = a • (b • c)
Distributividad
(T8) a • (b + c) = a • b + a • c (T8’) a + (b • c) = (a + b) • (a + c)
Absorción
(T9) a + (a • b) = a (T9’) a • (a + b) = a
Combinación
(T10) a • b + a • b’ = a (T10’) (a + b) • (a + b’) = a
Álgebra de Boole: Teoremas de dos o mas variables

Consensus
(T11) (a • b) + (a’ • c) + (b • c) = (a • b) + (a’ • c)
(T11’) (a + b) • (a’ + c) • (b + c) = (a + b) • (a’ + c)
Impotencia generalizada
(T12) (a + a + a + … + a) = a
(T12’) (a • a • a • … • a ) = a
DeMorgan
(T13) (a1 • a2 • a3 • … • an)’ = (a1’ + a2’ + a3’ + … + an’)
(T13’) (a1 + a2 + a3 + … + an)’ = (a1’ • a2’ • a3’ • … • an’)

EL-4002 Sistemas Digitales

Ejemplo: Demostraciones en Álgebra Booleana


 A + A·B = A (Teorema Absorción)

A + A·B
=A·1+A·B X = X · 1 (Identidad)
= A · ( 1 + B) X · Y + X · Z = X ·(Y + Z) (Distributividad)
=A·1 1 + X = 1 (Elemento Nulo)
=A X · 1 = X (Identidad)

 Demostrar es un arte que trata de:


 Aprender a usar los axiomas y teoremas del álgebra (Booleana)
 Identificar el camino lógico que lleva a la expresión buscada
 No caer en loops lógicos

EL-4002 Sistemas Digitales


Problema:

Demuestre el teorema DeMorgan (T13)

(a1 • a2 • a3 • … • an)’ = (a1’ + a2’ + a3’ + … + an’)

Hint: Demuestre primero para dos variables

Complementar (negar) Funciones

 Se utiliza el Teorema de DeMorgan para


complementar una expresión:
 Intercambiar operadores AND y OR
 Complementar cada valor constante y literal

 Ejemplo: Complementar F = xyz + xyz

F = (x + y + z)(x + y + z)
EL-4002 Sistemas Digitales
Precedencia de los Operadores Booleanos

 El orden de evaluación en una expresión Booleana


es:
 Paréntesis
 NOT (´)
 AND (•)
 OR (+)
 Consecuencia: los paréntesis definen los
operandos de los OR o NOT
 Ejemplo: F = A •(B + C) • (C' + D)'

EL-4002 Sistemas Digitales

En este momento ya tenemos


las herramientas para:

 Manipular (reducir) expresiones lógicas


 Construir un circuito en base a compuertas
lógicas que tenga el mismo comportamiento que
una expresión booleana

Pero: ¿como obtenemos la expresión lógica


equivalente a una tabla de verdad?

-- Recordemos que la tablas de verdad es la forma como se define el


comportamiento deseado de una función –

EL-4002 Sistemas Digitales


Formas Canónicas

 Minitérminos and Maxitérminos

 Representación mediante Sumas de


Minitérminos (SdM)
 Representación mediante Productos de
Maxitérminos (PdM)
 Conversiones entre Representaciones

Minitérminos
 Los Minitérminos son la operación AND entre
cada variable de una función, ya sea en su
forma normal o complementada (negada)
 Hay 2n minitérminos para n variables

 Ejemplo: Dos variables (X e Y) producen 22


= 4 miniterminos:
 XY
 XY
 XY
 XY

EL-4002 Sistemas Digitales


Maxitérminos
 Los Maxitérminos son la operación OR con
cada variable en forma normal o
complementada.
 Hay 2n maxitérminos para n variables

 Ejemplo: Dos variables (X e Y) producen 22 =


4 maxitérminos:
X+Y
X+Y
X+Y
X+Y

Maxitérminos y minitérminos para una función de 3 Variables

Hay un teorema que los


relaciona: cual?
Para cualquier función booleana 𝐹 𝑋1 … 𝑋𝑛 se
tiene que:

F(X1 … Xn) = mi
i|Fi=1

Es decir la suma de los minitérminos donde la función es 1. Esta representación se


denomina suma canónica, suma de miniterminos suma de productos (SDP).
Y también,

F(X1 … Xn) = Mi
i|Fi=0

Es decir la suma de los maxitérminos donde la función es 0. Esta representación se


denomina producto canónico o producto de maxitérminos, o producto de sumas (PDS).

Veamos un ejemplo
Tabla de verdad
Índice X Y Z F (X,Y,Z)
0 0 0 0 1
1 0 0 1 0
2 0 1 0 0
3 0 1 1 1
4 1 0 0 1
5 1 0 1 0
6 1 1 0 1
7 1 1 1 1

F(X1 … Xn) = mi = x’•y’•z’ + x’•y•z + x•y’•z’ + x•y•z’ + x•y•z


i|Fi=1

F(X1 … Xn) = Mi = (x+y+z’) • (x+y’+z) • (x’+y+z’)


i|Fi=0
Comprobemos para la expresión más simple
(maxitérminos)

F(X1 … Xn) = Mi = (x+y+z’) • (x+y’+z) • (x’+y+z’)


i|Fi=0

Tabla de verdad M1 M2 M5
Indice X Y Z F (X,Y,Z) (x+y+z’) (x+y’+z) (x’+y+z’) F(X,Y,Z)
0 0 0 0 1 1 1 1 1
1 0 0 1 0 0 1 1 0
2 0 1 0 0 1 0 1 0
3 0 1 1 1 1 1 1 1
4 1 0 0 1 1 1 1 1
5 1 0 1 0 1 1 0 0
6 1 1 0 1 1 1 1 1
7 1 1 1 1 1 1 1 1

Como se implementa?
F(X1 … Xn) = (x+y+z’) • (x+y’+z) • (x’+y+z’)

x
y
z

x
y
z

x
y
z

Será óptimo??...
Observaciones a las SdP y PdS
 Los ejemplos previos muestran que:
 Las Formas Canónicas (Suma de Minitérminos,
Producto de Maxitérminos) (SdP, PdS) difieren en
complejidad
 El Álgebra de Boole puede ser utilizada para
manipular las expresiones para obtener expresiones
más simples
 Preguntas pendientes:
 ¿Cómo se puede obtener la expresión “más simple”?
 ¿Hay solamente un circuito de mínimo costo?
 Para responder esta pregunta se debe definir
costo.

EL-4002 Sistemas Digitales

Ahora usted tiene las herramientas


para:
 Construir la función lógica
correspondiente a una tabla de verdad
cualquiera
 Manipular (reducir) expresiones lógicas
 Construir un circuito en base a compuertas lógicas que
tenga el mismo comportamiento que una expresión
booleana

Es decir, todo lo necesario para diseñar un circuito


combinacional que haga lo que usted desee!

EL-4002 Sistemas Digitales


Problema 1:
Implemente la función XOR usando compuertas AND, OR
y NOT.

Problema 2:
Un contenedor posee un sensor de 8 niveles (3bits) que mide el nivel
de un líquido. Diseñe un circuito que genere una alarma si el nivel esta
en alguno de los dos valores mas bajos (niveles 0,1); o en alguno de
los dos mas altos (6,7).
EL-3102

Sistemas Digitales

Circuitos Lógicos Combinacionales


Parte 2: Optimización de Circuitos

Circuitos Combinacionales
 Un circuito combinacional en general tiene:
 Un conjunto de m entradas Booleanas,
 Un conjunto de n salidas Booleanas, y
 n funciones de “switching”, cada una mapeando las 2m
combinaciones de entrada a una salida tal que la salida depende
solamente de los valores de la entrada

EL-4002 Sistemas Digitales


Optimización de Circuitos

 Objetivo: Obtener la implementación más


simple de una función dada
 La optimización es un enfoque más formal
que la simplificación y es realizado utilizando
procedimientos específicos o algoritmos
 La optimización requiere un criterio de costo
para medir la simplicidad de un circuito
 Se utilizarán diferentes criterios de costo :
 Costo de literales (L)
 Costo entrada de compuertas (G)
 Costo entrada de compuertas con NOT (GN)

EL-4002 Sistemas Digitales 3

Costo de Literales

 Literal – una variable o su complemento


 Costo Literal – el número de literales que
aparecen en una expresión Booleana
 Ejemplos:

 F1 = BD + ABC + ACD L=8


 F2 = BD + ABC + ABD + ABC L = 11
 F3 = (A + B)(A + D)(B + C + D)(B + C + D) L = 10

EL-4002 Sistemas Digitales 4


Costo Entradas de Compuertas
 Costo entrada compuerta: Corresponde al número de entradas de las
compuertas de una implementación. Hay dos tipos:
G – sin contar inversores, GN – contando inversores
 Para ecuaciones SdP y PdS, se puede obtener de las
ecuaciones, sumando:
 todos los literales que aparezcan
 el número de (mini o maxi) términos excluyendo los términos de
literales solos, (G)
 y, opcionalmente, el número de literales
complementados distintos(GN).
 Ejemplo:

 F1 = BD + ABC + ACD G = 11, GN = 14


 F2 = BD + ABC + ABD + ABC G = 15, GN = 18
 F3 = (A+B)(A+D)(B+C+D)(B+C+D) G = 14 ,GN = 17

EL-4002 Sistemas Digitales 5

Criterio de Costos
 Ejemplo 1: GN = G + 2 = 9
L=5
 F=A+BC+BC
G=L+2= 7

B
C
A F

 L (cuenta literales) cuenta las entradas a las AND y la entrada sola


a la compuerta OR
 G (cuenta entrada compuertas) suma las restantes entradas a la
compuerta OR (miniterminos, excluyendo literales solos)
 GN (cuenta entrada compuertas con NOTs) suma las entradas
complementadas
EL-4002 Sistemas Digitales 6
Criterio de Costos
A
 Ejemplo 2: B
C
 F=ABC +ABC
F
L = 6 G = 8 GN = 11
 F = (A + C)(B + C)(A + B)
L = 6 G = 9 GN = 12
 La misma función y el
A
mismo costo de literales B
 Pero el primer circuito C
tiene mejor cuenta de F
entradas de compuerta y
mejor cuenta de
entradas de compuerta
incluyendo NOTs
EL-4002 Sistemas Digitales 7

Optimización de Funciones Booleanas


 Minimizando el costo de las entradas de las compuertas
de una expresión Booleana, se reduce el costo ($) del
circuito (menos transistores).
 El Álgebra Booleana y técnicas gráficas son las
herramientas para minimizar los valores del criterio de
costos
 Algunas preguntas importantes:
 ¿Cuándo nos detenemos al tratar de reducir los costos?
 ¿Sabemos cuándo el costo es mínimo?
 Trataremos las funciones de costo óptimos y
cercanos al óptimo para circuitos SdP (miniterminos)
 Introduciremos una técnica gráfica denominada Mapas
de Karnaugh (Mapas K)

EL-4002 Sistemas Digitales 8


Maurice Karnaugh
Ingeniero de telecomunicaciones.
Born: October 4, 1924 (97 años)

Graduado en la universidad de Yale


en el 1952. Ha trabajado como
investigador en los Laboratorios
Bell desde 1952 a 1966 y en el
centro de investigación de IBM de
1966 a 1993. Ha impartido
informática en el Politécnico de
Nueva York de 1980 a 1999.

Publications
1. The Map Method for Synthesis of Combinational Logic Circuits, Trans. AIEE. pt I, 72(9):593-599,
November 1953
2. Issues in Computer Communications, IEEE Trans. Comm., pp. 495–498, 1972
3. A New Class of Algorithms for Multipoint Network Optimization, IEEE Trans. Comm., May 1976,
pp. 505–505
4. Generalized quicksearch for expert systems, in Proc. Artificial Intelligence for Applications, pp.
30–34. 1992
5. Symbolic Sets and the Real Line, online at symbolicsets.com, 2015

Mapa K y Tabla de Verdad


 El Mapa K es sólo una forma diferente de una Tabla de Verdad
 Ejemplo – Función de dos variables:
 Elegimos a, b, c y d para implementar una función particular, F(x,y).

Tabla de Verdad Mapa de Karnaugh

Valores Valores y=0 y=1


Entradas Función
(x,y) F(x,y)
x=0 a b
0 0 a
0 1 b x=1 c d
1 0 c
1 1 d

EL-4002 Sistemas Digitales 12


Representación de una Función en un Mapa de
Karnaugh
y 0 1
 Ejemplo: F(x,y) = x
0 0 1
0 1

1 1 0
2 3

F(x,y) = x y + x y

EL-4002 Sistemas Digitales 13

Representación de una Función en un Mapa de


Karnaugh
 Ejemplo: F(x,y) = x
 Para la función F(x,y), las dos y 0 1
x
celdas adyacentes que
contienen 1’s pueden ser 0 0 0
“combinadas” utilizando el la
0 1

propiedad x + x = 1 1 1 1
F(x,y) = x y + x y 2 3

= x (y + y)
=x

EL-4002 Sistemas Digitales 13


Representación de una Función en un Mapa de
Karnaugh

 Ejemplo: G(x,y) = x + y y 0 1
x
 Para G(x,y), dos pares de 0 1
0
celdas adyacentes contienen
1’s que se pueden combinar 1 1 1
utilizando el Teorema de
Minimización:
G(x,y) = x y + x y + x y
= xy + xy + xy + xy
= x(y + y) + y(x + x)
=x+y

EL-4002 Sistemas Digitales 14

Representación de una Función en un Mapa de


Karnaugh

 Ejemplo: G(x,y) = x + y y 0 1
x
 Para G(x,y), dos pares de 1 0
0
celdas adyacentes contienen
1’s que se pueden combinar 1 1 1
utilizando el Teorema de
Minimización:
G(x,y) = x y + x y + x y
= xy + xy + xy + xy
= x(y + y) + y(x + x)
=x+y

EL-4002 Sistemas Digitales 14


Mapa de Karnaugh de Tres Variables
 Un Mapa K de tres variables tiene 8 celdas:

yz
F(x, y, z) 00 01 11 10
x
m0 m1 m3 m2
0
m4 m5 m7 m6
1

 Donde cada minitérmino corresponde a los términos productos:


x y z, x y z, x y z, etc.
 Se construye de tal manera que los minitérminos son adyacentes
(en la métrica de Hamming) en el Mapa de Karnaugh
 Se deben encontrar agrupaciones (implicantes) de tamaño 2n
 Cada implicante representará un término de la suman de productos

EL-4002 Sistemas Digitales 15

Ejemplos de Funciones
 Por convención, se representan los minitérminos de F
por un "1" en el mapa y se dejan los minitérminos F
en blanco yz
00 01 11 10
x
 Ejemplo: 1 1 0
F(x, y,z)  m(2,3,4,5) 1
1
1

F(x, y,z) = x y z + x y z + x y z + x y z

F(x, y,z) = x y + x y

EL-4002 Sistemas Digitales 17


Ejemplos de Funciones
yz
00 01 11 10
x
 Ejemplo: 0 1
G(x, y, z)  m(3,4,6,7) 0 1 3 2

1 1 1 1
4 5 7 6

G(x, y,z) = x y z + x y z + x y z + x y z
G(x, y,z) = y z + x y + x y z
G(x, y,z) = y z + x y + x z Métrica de Hamming !

EL-4002 Sistemas Digitales 17

Combinación de Celdas
 Al combinar celdas, se reduce el número de
literales en un término producto, reduciendo el
costo de literales, por lo tanto reduciendo los otros
dos criterios de costo
 En Mapas de Karnaugh de 3 variables:
 Una celda representa un minitérmino con tres
variables (literales)
 Dos celdas adyacentes representa un término
producto con dos variables
 Cuatro celdas “adyacentes” representa un término
producto con una variable
 Ocho términos “adyacentes” es la función (sin
variables) = 1.
EL-4002 Sistemas Digitales 18
Ejemplo: Combinación de Celdas
yz
 Ejemplo: x
00 01 11 10

0
1 1

F  m(2,3,6,7) 1 1 1

 Minimizando tres veces:


F(x,y,z) = x y z + x y z + x y z + x y z
= x y(z + z) + x y(z + z)
= x y + x y = y(x + x)
=y
 Los cuatro términos forman un cuadrado de 2 x 2
correspondiente al término “y”
EL-4002 Sistemas Digitales 19

Simplificación con Mapa K de Tres Variables


 Utilizar un Mapa de Karnaugh para obtener la
expresión óptima SdP para la función:
F(X,Y, Z)  m(0,1,2,4,6,7)
yz
00 01 11 10
x
0 1 1 1
1
0 3 2

1 1 1 1
4 5 7 6

 Expresión óptima: F (x, y, z) = z + x y + x y

EL-4002 Sistemas Digitales 25


Mapa de Karnaugh de Cuatro Variables
 Mapa y ubicación de minitérminos:
yz
wx 00 01 11 10
0 1 3 2
00

4 5 7 6
01
F(w, x, y, z)
12 13 15 14
11

8 9 11 10
10

EL-4002 Sistemas Digitales 26

Términos de Cuatro Variables


 Mapas de 4 variables pueden tener celdas
correspondiente a:
 Un solo 1 = 4 variables (i.e. Minitérmino)
 Dos 1’s = 3 variables
 Cuatro 1’s = 2 variables
 Ocho 1’s = 1 variable
 Dieciséis 1’s = sin variables (i.e. Constante "1")

EL-4002 Sistemas Digitales 27


Simplificación Mapa de Cuatro Variables
F(w,x,y,z)= 𝑚(3,4,5,7,9,13,14,15)
yz
wx 00 01 11 10
wyz
00 1
0 1 3 2
wxy
01 1 1 1
4 5 7 6 xz
wxy
11 1 1 1
wyz 12 13 15 14

10 1
8 9 11 10

EL-4002 Sistemas Digitales 31

Simplificación Mapa de Cuatro Variables


F(w,x,y,z) = 𝑚(0,2,4,5,6,7,8,10,13,15)
yz
wx 00 01 11 10
wz
00 1 1
0 1 3 2

01 1
4
1
5
1
7
1
6
wx

11 1 1
12 13 15 14 xz
10 1 1
8 9 11 10

xz
Qué implicantes escojo?
EL-4002 Sistemas Digitales 30
Un mapa de Karnaugh de 4 variables puede ser
entendido como un toro al disponer las celdas en
3 dimensiones usando la métrica de Hamming

Simplificación Sistemática (definiciones)


 Por que implicante? Implicante viene de “implica”

Logical Implication
yz 00 01 11 10
p q p→q x
1 1 1 0 1 1 1
1
0 3 2
1 0 0
1 1 1 1
0 1 1 4 5 7 6
0 0 1

La implicancia se puede extender a funciones: Una función P implica


una función Q si por cada entrada tal que P=1 entonces Q=1.

 Un Implicante Primo (de primario) es un término


producto obtenido al combinar el máximo posible de
celdas adyacentes (rectangular) con una cantidad
de celdas igual a una potencia de 2.
EL-4002 Sistemas Digitales 32
Simplificación Sistemática (definiciones)
 (Def) Suma Mínima de una función: Es una suma de
productos que expresa una función F tal que no otra
suma de productos tiene menos términos, y cualquier
suma de productos con el mismo número de términos
tiene el mismo número o más literales.

Teorema de los implicantes primos:

Una suma mínima es una suma de


implicantes primos
EL-4002 Sistemas Digitales 32

Ejemplo de búsqueda de suma mínima


F(w,x,y,z)= 𝑚(1,4,5,7,12,13,15,9)
yz
wx 00 01 11 10

00 1
0 1 3 2

01 1 1 1
4 5 7 6

11 1 1 1
12 13 15 14

10 1
8 9 11 10

Es esta una buena elección ?


EL-4002 Sistemas Digitales 31
Ejemplo de búsqueda de suma mínima
F(w,x,y,z)= 𝑚(1,4,5,7,12,13,15,9)
yz
wx 00 01 11 10

00 1
0 1 3 2

01 1 1 1
4 5 7 6

11 1 1 1
12 13 15 14

10 1
8 9 11 10

Es esta una buena elección ?


EL-4002 Sistemas Digitales 31

Ejemplo de búsqueda de suma mínima


F(w,x,y,z)= 𝑚(1,4,5,7,12,13,15,9)
yz
wx 00 01 11 10

00 1
yx 0 1 3 2
xz
01 1 1 1
4 5 7 6

11 1 1 1
12 13 15 14

10 1
8 9 11 10
yz

Es esta una buena elección ?


EL-4002 Sistemas Digitales 31
Mas definiciones: Un implicante primo es llamado Implicante Primo
Esencial si es el único implicante primo que cubre (incluye) uno o más
minitérminos
Implicantes Primos ESENCIALES
yz yz
wx 00 01 11 10 wx 00 01 11 10
xy
00 00
1 1 1 1 1 1
yz
01 1 1 01 1 1 xz
11 1 1 wx 11 1 1

10 1 1 1 1 10 1 1 1 1

xz
wz
EL-4002 Sistemas Digitales 33

Simplificación Identifico todos


los implicantes
Sistemática: primos

Identifico todos los


implicantes primos
esenciales

Cubren Si
todos los Fin
1’s?

No

Cubro los 1’s faltantes


con la menor cantidad de Solución
Fin
implicantes primos única

Varias soluciones

Escojo implicantes
Fin
primos de menor costo

32
Ejemplo de Regla de Selección
 Simplificar F(A, B, C, D) dado el Mapa K

Seleccionados Esenciales
CD 00 01 11 10
AB

00 1 1 1 1

01 1 1 1 1 1 1 1 1

11 1 1

10 1 1 1 1

Mintérminos cubiertos por implicantes primos esenciales

EL-4002 Sistemas Digitales 43

Ahora si sabemos decidir que implicantes escoger !

F(w,x,y,z) = 𝑚(0,2,4,5,6,7,8,10,13,15)
yz
wx 00 01 11 10
wz
00 1 1
0 1 3 2

01 1
4
1
5
1
7
1
6
wx

11 1 1
12 13 15 14 xz
10 1 1
8 9 11 10

xz
F(w,x,y,z)=xz + xz +wx 30
Términos "No Importa" (“Don't Cares”) en Mapas de
Karnaugh
 A veces una tabla de verdad o un mapa contiene entradas para
las cuales se sabe que:
 La combinación de entrada para el minitérmino nunca va a ocurrir, o
 El valor de salida para el minitérmino no se utiliza
 En esos casos, el valor de salida no necesita ser definida
 Por lo tanto, el valor de salida se define como “no importa”
(“don't care”)
 Al colocar “don't cares” ( se ingresa “Φ” o “x”) en la tabla de
verdad o en el mapa.
yz 00 01 11 10
 Utilizo el valor de verdad de Φ x
que mas me convenga : 0 x 1 1 x
0 1 3 2

1 1 x
4 5 7 6

EL-4002 Sistemas Digitales 38

Ejemplo: Sistema con términos “no importa”

x
>30°C

y
<25°C Alarma

Nivel z
bajo yz 00 01 11 10
x
0 1 1
1 1
0 3 2
Función alarma
x y z F 1 1 1 x x
4 5 7 6
0 0 0 0
0 0 1 1 F=x+y+z
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 x
1 1 1 x
Funciones de múltiples salidas
Entradas Salidas
XY XY XY
X Y Z S0 S1 S2 00 01 11 10 00 01 11 10
00 01 11 10
Z Z Z
0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0
0 1 0 0 1 0
S0 K-map S1 K-map S2 K-map
1 1 1 1
1 0 0 0 0 0
1 0 0 0
S0 = Y Z + X Y
1 1 0 0 0 0 S1 = Z X + X Y + Y Z
1 1 1 1 S2 = Y Z + Z X

X XYYZ Z X XYYZ Z

X S0 X S0

Y Y
S1 S1
Z Z

S2 S2

Ejemplo de Diseño de multiples salidas


Entrada Salida Ex-3
Problema: Diseñar un ABCD2
0000
WXYZ
0011
conversor BCD a Excess-3 0001 0100
0010 0101
0011 0110
 Entradas 0100 0111
0101 1000
A,B,C,D
0110 1001
 Salidas Excess-3 0111 1010
W,X,Y,Z 1000 1011
 “Don’t Cares” 1001 1100
- BCD 1010 1010 X
to 1111 1011 X
1100 X
1101 X
1110 X
1111 X
EL-4002 Sistemas Digitales
Optimizamos usando maps de K
Z CD Y
CD 01
00 01 11 10 00 11 10
AB AB
00 00

01 01

11 11

10 10

CD CD
AB AB

EL-4002 Sistemas Digitales

Continuemos optimizando…

G = 2 + 4 + 6 + 4 + 0= 16

G = 2 + 4 + 7 + 6 + 0= 19

EL-4002 Sistemas Digitales


Proceso de Especificaciones
Diseño
Formulación
Derivar una tabla de verdad o expresiones
booleanas

Optimización
Mapas de K, Algebra
booleana

Implementación
Construir diagrama circuital con las compuertas disponibles
en la tecnología a implementar

Verificación
Simulaciones o tablas de verdad

Fin

Peligros de sincronización (Timing hazards)

• En general podemos olvidar los riesgos


de sincronización al esperar un tiempo
suficiente antes de leer las salidas
(circuitos síncronos)
• En el diseño (interno) de circuitos
secuenciales es necesario comprender
y resolver los peligros de sincronización
Peligros de sincronización (Timing hazards)

xy 00 01 11 10
z
0 1 1

F(x,y,z)=xz +yz 1 1 1

• Como se ven los peligros de sincronización en el mapa


de K ?
• Dos 1’s adyacentes que no pertenecen al mismo
implicante representan un peligro de sincronización
• Como se resuelve ?

Peligros de sincronización (Timing hazards)

xy 00 01 11 10
z
0 1 1
F(x,y,z)=xz +yz + xy
1 1 1

• Cubrimos los 1’s adyacentes con su propio implicante


• Esto elimina el peligro (aunque agranda la
implementación)
• Este término adicional es el termino de Consensus
Peligros de sincronización (Timing hazards)
Ejemplo de 4 variables

wx wx
yz yz

Peligros de sincronización (Timing hazards)


Ejemplo de 4 variables

wx wx
yz yz
Peligros de sincronización (Timing hazards)
Ejemplo de 4 variables

wx wx
yz yz

Peligros de sincronización (Timing hazards)


Ejemplo de 4 variables

wx wx
yz yz

Diseño libre de peligros !


EL-3102

Sistemas Digitales

Circuitos Secuenciales
Parte 1: Elementos de Memoria, Latch,
Flip-flop y Registros

Entradas Salidas

Tipos de Circuitos Secuenciales Lógica


Combinacional

Estado Estado
 Síncronos Actual Siguiente

 Salidas definidas por su entrada y estado en instantes


discretos en el tiempo. (pulsos de reloj -Clock ticks-)
 El estado también se actualiza sólo en tiempos discretos

 Asíncronos
 Comportamiento definido por el conocimiento de las entradas y
estado en cualquier instante de tiempo y del orden del cambio de
las entradas a todo tiempo posterior
 Si el reloj se considerara como otra entrada, todos los circuitos
serían asíncronos!
 Sin embargo, la abstracción síncrona (tiempo discreto) hace
manejable (analizable) diseños complejos.

EL-4002 Sistemas Digitales


Estado A In0

almacenado en Y
B In1
un Mux
S

B S Y Comentarios
Tiempo 1 0 0 Y=0
1 1 1 Y = B cuando S = 1
1 0 1 Ahora Y “recuerda” B = 1
para S = 0
0 0 1 No hay cambios en Y cuando
B cambia
0 1 0 Y = B cuando S = 1 ¿ Donde queda
0 0 0 Y “recuerda” B = 0 para S = almacenado el valor
0
1 0 0 No hay cambios en Y cuando el sistema esta
cuando B cambia “recordando”?

“Latch” S–R (Set-Reset) NOR Básico

 “Cross-Coupling” R (reset)
Q
de dos compuertas
NOR se obtiene un
“Latch” S-R: S (set) Q

Tiempo R S Q Q Comentario
0 0 ? ? Estado desconocido
0 1 1 0 “Set” Q a 1
0 0 1 0 Ahora Q “recuerda” 1
1 0 0 1 “Reset” Q a 0
0 0 0 1 Ahora Q “recuerda” 0
1 1 0 0 Ambos se van a 0 (prohibido)
0 0 ? ? Inestable!

EL-4002 Sistemas Digitales


“Latch” S–R (NAND) Básico
 “Cross-Coupling” S (set)
Q
de dos compuertas
NAND se obtiene
un “Latch” S-R:
R (reset) Q

 S = 0, R = 0 es R S Q Q Comentario
Tiempo
prohibido como 1 1 ? ? Estado desconocido
patrón de 1 0 1 0 “Set” Q a 1
1 1 1 0 Ahora Q “recuerda” 1
entrada 0 1 0 1 “Reset” Q a 0
1 1 0 1 Ahora Q “recuerda” 0
0 0 1 1 Ambos se van a 1 (prohibido)
1 1 ? ? Inestable!
EL-4002 Sistemas Digitales

“Latch” S–R (Set-Reset) con Reloj

 Agregando dos S
Q
compuertas NAND al
Latch S - R básico, C
se obtiene el Latch
Q
S – R con Reloj: R

 Tiene un comportamiento de
Tiempo
secuencia en el tiempo similar al R S Q Q Comentario
Latch S-R básico, excepto que 1 1 ? ? Estado desconocido
las entradas S-R son solamente 1 0 1 0 “Set” Q a 1
observadas cuando la línea C es 1 1 1 0 Ahora Q “recuerda” 1
“high” 0 1 0 1 “Reset” Q a 0
 C significa “control” o “reloj 1 1 0 1 Ahora Q “recuerda” 0
(Clock)”. 0 0 1 1 Ambos se van a 1
1 1 ? ? Inestable!
EL-4002 Sistemas Digitales
“Latch” S–R (Set-Reset) con Reloj
 El Latch S-R con Reloj puede ser descrito por una
tabla de estado ‘actual’ y ‘siguiente':
Q(t) S R Q(t+1) Comentario
S
Q 0 0 0 0 No hay cambios
0 0 1 0 Clear Q
C
0 1 0 1 Set Q
Q 0 1 1 ??? Indeterminado
R
1 0 0 1 No hay cambios
1 0 1 0 Clear Q
 La tabla describe qué 1 1 0 1 Set Q
sucede cuando el reloj se 1 1 1 ??? Indeterminado
hace 1 en función de:
Hay dos configuraciones
 entradas actuales (S,R), y
en la que no hay
 estado actual Q(t).
cambios, Es decir es
EL-4002 Sistemas Digitales
“Biestable”

Latch D (Data)
 Agregando un decoder, se S
obtiene el Latch D D
 Ya no hay estados Q
indeterminados !
Q
R

Q D Q(t+1) Comentario
El símbolo gráfico
0 0 0 No hay cambios
para el Latch D es:
0 1 1 Set Q
1 0 0 Clear Q D Q
1 1 1 No hay cambios
C Q

EL-4002 Sistemas Digitales


Ejemplo: Aplicación Latch D con reloj

Latch Resumen

• Un Latch es el elemento mas básico de memoria


• Alamcena un bit de información en uno de sus dos
estados “estables” (biestable)
• Es un elemento de memoria “volatil”, es decir mantiene
el estado mientras esté energizado.
• En su versión más simple es un circuito secuencial
asíncrono
• Se puede incorporar una señal de control o “reloj”
• Sus salidas son afectadas por las entradas (y el estado
anterior) mientras el control (reloj) sea “1”
Flip-Flops

Contenido:

 El problema de tiempo del Latch


 Flip-Flop “Master-Slave”
 Flip-Flop activado por flanco (“Edge-triggered Flip-Flop”)
 Flip-Flop J-K
 Símbolos estándares para elementos de memoria
 Entradas directas (S-R) a los Flip-Flops
 Aplicaciones

EL-4002 Sistemas Digitales

S
D
Q
El Problema de C
Tiempo del Latch Q
R

 Para un Latch-D con reloj, la salida Q copia a


la entrada D siempre que la entrada de reloj C
tenga el valor 1.
 Podría ocurrir que la entrada variara mientras el
reloj es 1 (por ruido o hazards).
 O que una línea de realimentación haga
cambiar el estado del latch varias veces dentro
de (medio) ciclo de reloj.
EL-4002 Sistemas Digitales
El Problema de Tiempo del Latch
 Considere el siguiente circuito:
D Q Y
 Supongamos que inicialmente
Y=0 Reloj C Q

Reloj

Y
 Mientras C = 1, el valor de Y sigue cambiando!
 Los cambios están basados en el retardo presente en el
loop a través de la conexión de realimentación de Y a Y
 Este comportamiento es inaceptable
 Comportamiento deseado de la logica sincrona: 'Y'
cambia sólo una vez por pulso de reloj
EL-4002 Sistemas Digitales

El Problema de Tiempo del Latch

 Una solución al problema


de tiempo del Latch es D Q Y

romper el camino
Reloj C Q
"combinacional” de D a Y

 La solución es usar otro elemento de memoria


(Latch) lo que convierte el conjunto en un:
 Flip-Flop SR “Master-Slave”
 Flip-Flop D Activado por Flancos (“edge-triggered”)

EL-4002 Sistemas Digitales


Flip-Flop S-R Master-Slave
Master Slave
 Consiste de dos Latches S-R 1 1 0 >1
S S Q Ss Q Q
en serie con reloj invertido C
1 >0
C 0 >1 Cs
en el segundo Latch. R R Q 0 Rs
Q Q
 La entrada es observada por
el primer Latch cuando C = 1

 La salida es cambiada por el segundo Latch cuando C = 0


 El camino (combinacional, asíncrono) de la entrada a la salida se
rompe por la diferencia en los valores del reloj (C = 1 y C = 0)
 El flip-flop S-R asegura que la salida cambia solo una vez por ciclo
de reloj.

EL-4002 Sistemas Digitales

Problema del Flip-Flop SR


Master Slave
0>1>0 0>1 S 0>1 Q
 El cambio en la salida del S S Q Q al bajar
1
C C C el reloj
Flip-Flop es retardado por el 0
R R Q R Q
ancho del pulso lo cual hace Q

al circuito más lento, y


 S y/o R pueden cambiar mientras C = 1
 Supongamos que Q = 0 y S cambia a 1 y luego a 0 con R
permaneciendo en 0
 El Latch Master se pone en 1
 Un 1 es transferido al Slave

 Supongamos que Q = 0 y S cambia a 1 y luego a 0 y R cambia a 1 y


luego a 0
 El Master hace un “set” y luego un “reset”
 Un 0 es transferido al Slave

 Este comportamiento se llama “1s catching”

EL-4002 Sistemas Digitales


Solución para los problemas del Flip-Flop SR
 Utilizar flip-flop D “edge-triggering” en vez de “master-slave”
 Un Flip-Flop D activado por flanco o “edge-triggered”, ignora
la entrada mientras está el reloj esta en un nivel constante y
actúa solamente durante una transición de la señal de reloj.

EL-4002 Sistemas Digitales

Flip-Flop D Edge-Triggered
Master Slave
0>1>0 0>1>0 S 0
 El Flip-Flop D “edge-triggered” es D D Q Q Q
similar al flip-flop Master Slave, pero C
se reemplaza el primer Latch S-R por 1
C C Q R Q
Q
un latch D

 El comportamiento “1s-catching” no se presenta cuando se reemplazan


las entradas S y R con la entrada D

 El cambio de la salida del Flip-Flop D (Latch Slave) está asociada con


el flanco de reloj.

 Esto se llama un Flip-Flop activado por flanco negativo (o flanco de


bajada) “negative-edge triggered Flip-Flop”

EL-4002 Sistemas Digitales


Flip-Flop D Activado Con Flanco Positivo
 Formado al agregar D D Q S Q Q
un inversor a la C
C C Q R Q Q
entrada del reloj

 Q cambia al valor en D al aplicar el flanco


positivo del reloj
 Esta será nuestra elección como el Flip-Flop
Estándar para la mayoría de los circuitos que
diseñemos.
 Es el flip-flop mas usado en la lógica secuencial
moderna
EL-4002 Sistemas Digitales

Flip-Flop J-K

 Resuelve el problema de inestabilidad del flip-flop


S-R para S=R=1
 J y K operan como Set y Reset, con la diferencia
que J=K=1 produce un “flip” conmutación de la
salida.
 Haciendo K=J’ se puede sintetizar un Flip-Flop D

EL-4002 Sistemas Digitales


Que hace el circuito de la figura ??
(Suponga que los flip-flops fueron iniciados en cero)

Aplicaciones: Contador binario

Un contador binario es también un divisor de frecuencia !!


Símbolos Estándares para Elementos de Memoria
S Q S Q D Q D Q

Latches
R Q R Q C Q C Q

SR SR D con Control (1) D con Control (0)

S Q S Q
Flip-Flops SR “Master-Slave” C C
R Q R Q

“Triggered” SR “Triggered” SR

Edge-Triggered indicator
D Q D Q J Q

C
C Q C Q K Q

Triggered D Triggered D Triggered JK

Flip Flop “Edge-Triggered”


EL-4002 Sistemas Digitales

Entradas (Set / Reset)


D D Q S Q
Q
C
C C Q R Q
Q
Como se
implementa?

 Al encender o al “resetear”, todo o parte de un circuito secuencial,


normalmente es inicializado a un estado conocido antes de
comenzar su operación
 Dos entradas adicionales S y R, son utilizadas para esta
inicializacion
Lo anterior ocurre en un ciclo de reloj

EL-4002 Sistemas Digitales


Aplicaciones:

Que hace el circuito de la figura ??

Aplicaciones: Registros de desplazamiento


(Shift Registers)
Serial-in, parallel-out (SIPO)
Aplicaciones: Registros de desplazamiento
(Shift Registers)

Que hace el circuito de la figura ??

Aplicaciones: Registros de desplazamiento (Shift


Registers): Parallel-in, Serial-out (PISO)
Problema:

Usando un sumador de 1 bit y Flip-Flops D, construya un


circuito que reciba dos números de 4 bits de forma serial y
entregue como salida la suma de ambos números de forma
Paralela.

Aplicaciones

USB/USB2.0
Half duplex

USB3.0
Full Duplex
Linear-Feedback Shift Register (LFSR)
Generación de números pseudo-aleatorios
 Pasa por todos los estados menos el “0,0,0,0” de forma pseudo-aleatoria
 Periodo 2n-1
 Para un registro suficientemente grande de bits es casi imposible distinguir de
números realmente aleatorios.
Aplicaciones: Spread Spectrum radio (CDMA), Generadores de ruido blanco,
Criptografía, Simulaciones de Monte Carlo

Simulación de Monte Carlo


LFSR de 4 bits y un feedback XOR
para el calculo de Pi

EL-3102

Sistemas Digitales

Implementación física de compuertas


lógicas, circuitos integrados y placas de
circuitos
Compuertas Lógicas
 En los primeros computadores electronicos (~1920-30),
los switches eran abiertos y cerrados por el campo
magnético de los solenoides de un relé (“relay”). Los
switches a su vez abrían y cerraban los caminos de la
corriente.
Donde aún se usan relés ?

 Más tarde (1940-1950), los tubos de vacío (“vacuum


tubes”) abrían y cerraban los caminos de las corrientes
mediante campos electromagnéticos, remplazaron a los
relés.
Donde aún se usan tubos ?

 Hoy (1960-presente), los transistores son


utilizados como switches electrónicos de alta
velocidad. Primero se usaron transistores
individuales y luego circuitos integrados.

EL-4002 Sistemas Digitales

Tubos de vacío
CMOS: Complementary metal–oxide–semiconductor es la
tecnología mas usada para construir compuertas.

Se basa en el uso de transistores de efecto de


campo (FETs) de canal N y P, dispuestos de
forma simétrica.

Compuertas Lógicas CMOS


Two type of transistors

Depletion Type – Requires VGS to switch Ri


“OFF”. It Is equivalent to a “Normally Closed”
Vi Vo
switch.
Enhancement Type – Requires VGS to
switch “ON”. It is equivalent to a “Normally
Open” switch.

Por que no?

RL
CL
Ri
Vss

Carga
Compuertas Lógicas CMOS

Compuertas Lógicas TTL


Usa “bipolar junction transistors (BJT)”

NOT NAND
TTL puede ser un poco mas rápida que CMOS (menos capacitancia de
compuerta), pero son mas grandes (Chip-area), consumen mas potencia,
mayor resistencia interna, menos estabilidad térmica.
Esto hace CMOS sea la elección mayoritaria para la lógica moderna.
Compuertas Ideales v/s Reales
 Supuestos detrás de la abstracción digital
 circuitos ideales, sólo dos estados (voltajes),
transiciones instantáneas (sin retardos):
simplifica enormemente el diseño funcional

 Las restricciones aparecen de la física del mundo real


 Retardos -> Frecuencia máxima de operación
 Ruido -> Niveles lógicos
 Resistencia de canal -> Máximo fan-out
 Disipación del calor -> Máxima integración

 Cumpliendo con las restricciones se asegura que los


circuitos son "suficientemente ideales” para permitir un
análisis abstracto.
EL-4002 Sistemas Digitales

Consideraciones prácticas:
Niveles Lógicos y ruido (Noise margin)
 Niveles lógicos con márgenes de ruido

VOH: output high voltage VIH: input high voltage


VIL: input low voltage
VOL: output low voltage
Carga Capacitiva y Retardo de Propagación
 Entradas y conexiones actúan como condensadores

 tr: rise time ~ R1C


 tf: fall time ~ R0C

Estos parámetros R, C (mas el retardo en las líneas) determinan la máxima


velocidad de operación (Clock-Freq) de un circuito digital. (sin considera la
disipación de calor)

“Fan-out”: número de máximo entradas que se


pueden conectar a una salida
 High: SW1 cerrado, SW0 abierto
 Caída de voltaje en R1
 Demasiada corriente: VO < VOH

 Low: SW0 cerrado, SW1 abierto


 "Subída” de voltaje en R0
 Demasiada corriente: VO > VOL

 Cantidad máxima de compuertas que se


pueden conectar depende de la impendancia
de entrada de las compuertas (carga)

EL-4002 Sistemas Digitales


10 µm – 1971
Circuitos Integrados (ICs) 6 µm – 1974
3 µm – 1977
1.5 µm – 1982
 Circuitos formados en la superficie de 1 µm – 1985
800 nm – 1989

una oblea de silicio (“silicon wafer”) 600 nm – 1994


350 nm – 1995
250 nm – 1997
 Tamaño de las “líneas” es reducido en cada 180 nm – 1999
130 nm – 2001
generación de tecnología 90 nm – 2004
65 nm – 2006
 Ley de Moore: Cantidad de transistores por unidad de 45 nm – 2008
área se duplica cada dos años. 32 nm – 2010
22 nm – 2012
14 nm – 2014
10 nm – 2016
7 nm – 2018
5 nm – 2020

Circuitos Integrados (ICs): Ley de Moore (1965)

# de transistores se
duplica cada dos años

El futuro?
• Spintronic (https://en.wikipedia.org/wiki/Spin_transistor)
• Optical computing (https://en.wikipedia.org/wiki/Optical_transistor)
• Quantum computing (https://en.wikipedia.org/wiki/Quantum_computing)
Construcción de circuitos integrados
(Fotolitografía)

Tipos de Circuitos Integrados (por


grado de integración)

SSI MSI/LSI VLSI/ULSI


Área y Empaquetado (“Packaging”)
 Circuitos implementados en obleas de silicio (“chips”)
 mayores áreas del circuito => mayores costos

 Chips en “packages” con alambres de conexión (bond wires)


 Más alambres => mayores costos
 “Package” protege el chip y disipa el calor

Printed Circuit Borad (PCB)


Muchos pines -> difícil de rutear, se necesitan
más capas en la PCB -> mayor costo
Diagrama de PCB
de 8 capas

Detalle de PCB
de 4 capas
Solución al enrutamiento y ‘pin-count’:
Comunicación serial entre chips
SPI (Serial Peripherla interface) I2C (Inter Integrated Circuit)
• Principalmente para pocos esclavos • Necesita sólo dos conexiones (pistas)
o comunicaciones punto a punto • Arquitectura Master-Salve (bus)
• Necesita 4 pistas • Hasta 5 Mbps (normalmente 100 kbps)
• Velocidad de hasta 100Mbps • Half duplex
• Full duplex

Ahora usted tiene las


herramientas para:

Construir compuertas lógicas a partir de


transistores!! (o relés)

EL-4002 Sistemas Digitales


Al finalizar este curso Ud debiera:
Lograr comprensión continua desde los menores
niveles de abstracción hasta el diseño de
sistemas digitales complejos

Lógica
Transistores Compuertas combinacional Microprocesador
Lógicas y secuencial

Responder un sólido “sí” a la pregunta:


¿Sabe Ud. cómo funciona un computador?

You might also like