1.
Introducción a los
Circuitos lógicos
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 1
1.01
Variables y funciones
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 2
Variables y funciones
• Una variable binaria 𝑥 puede adoptar 2 valores: 0 o 1
• Variables binarias pueden actuar sobre interruptores
Cerrado = deja pasar la señal
Abierto = no deja pasar la señal
Interruptor abierto Interruptor cerrado
Símbolo para un interruptor
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 3
Interruptores comandados por variables
binarias afectan otras partes del circuito
Battery LED
• El estado 𝐿 del LED es una
función de la variable
Conexión simple a batería
binaria 𝑥
Nos referimos a 𝐿(𝑥)
Power
LED • En este caso 𝐿(𝑥) = 𝑥
supply
𝐿(𝑥) es una función lógica
𝑥 es una variable de entrada
Conexión a tierra como camino de retorno
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 4
Conexión de los switches en serie
Power LED
supply
Función lógica AND (conexión en serie)
• En serie: sólo enciende el LED si ambos switches están cerrados
𝐿 𝑥1 , 𝑥2 = 𝑥1 ∙ 𝑥2
𝐿 = 1 sólo si 𝑥1 = 1 y 𝑥2 = 1
• Cualquier otro caso: 𝐿 = 0
• El símbolo ∙ corresponde al operador AND
• La figura implementa la función lógica AND
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 5
Conexión de los switches en paralelo
Power
supply
Función lógica OR (conexión en paralelo)
• En paralelo: enciende el LED si cualquiera de los switches está cerrado
𝐿(𝑥1 , 𝑥2 ) = 𝑥1 + 𝑥2
𝐿 = 1 si 𝑥1 = 1 o si 𝑥2 = 1
• Cualquier otro caso: 𝐿 = 0
• El símbolo + corresponde al operador OR
• La figura implementa la función lógica OR
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 6
Es posible combinar funciones lógicas
Power
supply
• En este caso 𝐿(𝑥1 , 𝑥2 , 𝑥3 ) = (𝑥1 + 𝑥2 ) ∙ 𝑥3
• ¿Qué condición tiene que ocurrir para que la luz esté encendida?
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 7
Inversión lógica
• En el circuito de la figura
Si 𝑥 = 0 entonces 𝐿 = 1
Si 𝑥 = 1 entonces 𝐿 = 0
• Entonces podemos afirmar que
𝐿(𝑥) = 𝑥ഥ
• Alternativamente, 𝑥ഥ = ~𝑥 = `𝑥 = ! 𝑥 Power
• Los símbolos barra, ~ , `𝑥, y ! supply
corresponden al operador inversor
• 𝐿(𝑥) corresponde a la función
inversión lógica
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 8
¿Qué aprendimos hoy?
• Variables binarias
• Funciones lógicas
• Ejemplos con interruptores
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 9
1.02
Números binarios
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 10
Representación binaria
• La información en circuitos digitales es representada
por los valores 0 y 1
• Un número binario 𝐵 de 𝑛 bits se representa como:
𝐵 = 𝑏𝑛−1 𝑏𝑛−2 … 𝑏1 𝑏0
• El valor de un número binario B de 𝑛 bits equivale a:
𝑛−1
𝑉 𝐵 = 𝑏𝑖 × 2𝑖
𝑖=0
• ¿Cuál es el valor más grande que se puede representar en
binario con 𝒏 bits?
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 11
Representación binaria
Número decimal Número binario
0 0000
1 0001
2 0010 • Con 4 bits disponibles podemos
3 0011 representar números entre el 0 y el 15
4 0100 • Si nos sobran bits para representar un
5 0101 número, entonces rellenamos con
6 0110 ceros a la izquierda (zero padding)
7 0111
8 1000
• ¿Qué es un nibble? ¿y un byte?
9 1001
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 12
¿Qué aprendimos hoy?
• El sistema binario: 0 o 1
• Representar números decimales con binarios
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 13
1.03
Tablas de verdad
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 14
Tablas de verdad
• Describen funciones lógicas en forma
exhaustiva
– Especifican las salidas para todas las
combinaciones posibles de entradas 𝑥1 𝑥2 𝑥1 ∙ 𝑥2 𝑥1 + 𝑥2
• Ejemplo: tablas de verdad para 0 0 0 0
funciones AND y OR de dos variables 0 1 0 1
• El número de líneas crece 1 0 0 1
exponencialmente con el número 𝑛 1 1 1 1
de entradas (2𝑛)
AND OR
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 15
Ejemplo: AND y OR de 3 entradas
𝑥1 𝑥2 𝑥3 𝑥1 ∙ 𝑥2 ∙ 𝑥3 𝑥1 + 𝑥2 + 𝑥3
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 0 1
1 0 0 0 1
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 16
¿Qué aprendimos hoy?
• Tablas de verdad
• Ejemplos con AND y OR
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 17
1.04
Compuertas lógicas
OR, AND y NOT
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 18
Compuertas lógicas
• Las compuertas lógicas son componentes circuitales
que implementan funciones lógicas
– Están implementadas mediante transistores
– Requieren alimentación y tienen entradas y salidas
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 19
Esquemático
• Una forma conveniente de describir un circuito
digital es mediante un esquemático que muestra
conexiones entre compuertas lógicas
• Los esquemáticos pueden ser arbitrariamente complejos
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 20
Análisis de una red lógica
• Tratemos de entender cómo funciona este circuito
• Una opción es probar todas las combinaciones posibles de entradas
y ver qué ocurre en la salida …
Analizar: determinar el funcionamiento de la red
Sintetizar: diseñar la red para una especificación dada
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 21
Procedimiento de análisis
Red que implementa 𝒇 = 𝒙𝟏 + 𝒙𝟏 ∙ 𝒙𝟐
𝑥1 𝑥2 A B 𝑓(𝑥1 , 𝑥2 )
0 0 1 0 1
0 1 1 0 1
1 0 0 0 0
1 1 0 1 1
Tabla de verdad
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 22
Diagrama de tiempo (timing diagram)
• Representación gráfica de entradas y salidas
• El tiempo avanza de izquierda a derecha (igual que
en un osciloscopio y un analizador lógico)
𝑥1 𝑥2 𝑓 𝑥1 , 𝑥2
0 0 1
0 1 1
1 0 0
1 1 1
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 23
Redes funcionalmente equivalentes
• Analicemos este otro circuito:
𝑥1 𝑥2 𝑔 𝑥1 , 𝑥2
0 0
• Escribamos la tabla de verdad correspondiente
0 1
a su función lógica y comparemos con la
lámina anterior 1 0
1 1
¿Conclusiones?
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 24
¿Qué aprendimos hoy?
• Compuertas lógicas
• Esquemáticos y cómo analizarlos
• Diagramas de tiempo
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 25
1.05
Álgebra Booleana
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 26
Álgebra Booleana
Axiomas Teoremas de una variable
1a. 𝟎∙𝟎=𝟎 5a. 𝒙∙𝟎=𝟎
5b. 𝒙+𝟏=𝟏
1b. 𝟏+𝟏=𝟏
6a. 𝒙∙𝟏=𝒙
2a. 𝟏∙𝟏=𝟏
6b. 𝒙+𝟎=𝒙
2b. 𝟎+𝟎=𝟎
7a. 𝒙∙𝒙=𝒙
3a. 𝟎∙𝟏=𝟏∙𝟎=𝟎 7b. 𝒙+𝒙=𝒙
3b. 𝟏+𝟎=𝟎+𝟏=𝟏 8a. 𝒙 ∙ 𝒙ത = 𝟎
4a. ഥ=𝟏
Si 𝒙 = 𝟎 → 𝒙 8b. 𝒙+𝒙 ഥ=𝟏
4b. ഥ=𝟎
Si 𝒙 = 𝟏 → 𝒙 9. ഥ=𝒙
𝒙
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 27
Dualidad
• Para una expresión lógica, su dual es obtenida
reemplazando todos los operadores + por ∙, y vice
versa, reemplazando todos los 0s por 1s y viceversa
– ¿Ejemplos?
• El dual de cualquier declaración verdadera – axioma o teorema – en
álgebra Booleana, es también verdadera
– ¿Ejemplos?
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 28
Propiedades de dos o tres variables
10a. 𝒙∙𝒚=𝒚∙𝒙 Conmutativa
10b. 𝒙+𝒚=𝒚+𝒙
11a. 𝒙∙ 𝒚∙𝒛 = 𝒙∙𝒚 ∙𝒛 Asociativa
Es posible demostrar todos estos
11b. 𝒙+ 𝒚+𝒛 = 𝒙+𝒚 +𝒛 teoremas y propiedades mediante:
12a. 𝒙∙ 𝒚+𝒛 =𝒙∙𝒚+𝒙∙𝒛 Distributiva
12b. 𝒙+𝒚∙𝒛= 𝒙+𝒚 ∙ 𝒙+𝒛
• Inducción perfecta – mirando
13a. 𝒙+𝒙∙𝒚=𝒙 Absorción
todos los casos posibles
13b. 𝒙∙ 𝒙+𝒚 =𝒙
• Manipulación algebraica en base
14a. 𝒙∙𝒚+𝒙∙𝒚ഥ=𝒙 Combinación
a axiomas
14b. 𝒙+𝒚 ∙ 𝒙+𝒚ഥ =𝒙
15a. 𝒙∙𝒚=𝒙ഥ+𝒚ഥ Ley de DeMorgan
15b. 𝒙+𝒚=𝒙 ഥ∙𝒚
ഥ En teoría, basta con teoremas 5 y 8,
y con propiedades 1 y 12 para
16a. 𝒙+𝒙ഥ∙𝒚=𝒙+𝒚
derivar todas las demás propiedades
16b. ഥ+𝒚 =𝒙∙𝒚
𝒙∙ 𝒙
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 29
Ejemplo 1
Demuestre que: 𝑥1 + 𝑥3 ∙ 𝑥1 + 𝑥3 = 𝑥1 ∙ 𝑥3 + 𝑥1 ∙ 𝑥3
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 30
Ejemplo 2
Demuestre que:
𝑥1 ∙ 𝑥3 + 𝑥2 ∙ 𝑥3 + 𝑥1 ∙ 𝑥3 + 𝑥2 ∙ 𝑥3 = 𝑥1 ∙ 𝑥2 + 𝑥1 ∙ 𝑥2 + 𝑥1 ∙ 𝑥2
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 31
¿Qué aprendimos hoy?
• Axiomas y teoremas del álgebra booleana
• Dualidad
• Propiedades con dos o tres variables
Conmutativa
Asociativa
Distributiva
Absorción
Combinación
Ley DeMorgan
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 32
1.06
Diagrama de Venn
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 33
Diagrama de Venn
• Pueden ser utilizados para verificar de manera
intuitiva la equivalencia entre dos expresiones lógicas
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 34
Notación y terminología
• Por su similaridad con las operaciones aritméticas
suma y multiplicación, las operaciones OR y AND
son llamadas coloquialmente suma lógica y multiplicación lógica
– Ejemplo: suma de productos
𝑥1 ∙ 𝑥2 ∙ 𝑥3 + 𝑥1 ∙ 𝑥4 + 𝑥2 ∙ 𝑥3 ∙ 𝑥4
– Ejemplo: producto de sumas
𝑥1 + 𝑥3 ∙ 𝑥1 + 𝑥3 ∙ 𝑥2 + 𝑥3 + 𝑥4
• Para evitar ambigüedad entre operaciones lógicas y aritméticas, a
veces empleamos los símbolos ˅ y ˄ en lugar de OR y AND
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 35
Precedencia de operaciones
• Es posible construir cualquier expresión lógica
combinando OR, AND y NOT
• Los paréntesis evitan la ambigüedad en la precedencia
• Para evitar llenarnos de paréntesis podemos definir un
orden de precedencia: NOT, luego AND y finalmente OR
• Para simplificar las expresiones lógicas, generalmente se
omite el operador ∙
– Ejemplo: 𝑥1 𝑥2 + 𝑥1 𝑥2
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 36
¿Qué aprendimos hoy?
• Diagramas de Venn
• Suma lógica y multiplicación lógica
• Prioridad de operaciones lógicas
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 37
1.07
Síntesis de un circuito
digital como suma de
productos
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 38
Síntesis usando compuertas AND,
OR y NOT
• Comencemos con un ejemplo: tratemos de sintetizar
(crear) un circuito que implementa la tabla de verdad
• Vamos a escribir una función lógica y luego la llevaremos
a una implementación con compuertas
• Una opción sería crear funciones lógicas tipo productos
que produzcan un 1 lógico cuando se cumple cada
𝑥1 𝑥2 𝑓 𝑥1 , 𝑥2
condición afirmativa de la tabla de verdad
0 0 1
– Luego implementamos un OR entre esos términos
0 1 1
𝑓 𝑥1 , 𝑥2 = 1 0 0
1 1 1
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 39
Resultado
¿Podremos simplificarlo mediante manipulación algebraica?
Suma de productos canónica
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 40
Realización de mínimo costo
Realización de mínimo costo
• Wow!
• Conclusiones:
– Es muy fácil (y muy mecánico) implementar cualquier función lógica mediante una
suma de productos para cada línea de la tabla de verdad que produzca un 1 lógico
• Cada producto incluye todas las variables de entrada
– Hay muchas formas de implementar circuitalmente una misma función lógica
– Es posible simplificar mediante manipulación algebraica
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 41
Sumas de productos y productos de sumas
• Cualquier función lógica 𝑓 explicada mediante su
tabla de verdad puede ser realizada mediante:
– Una expresión lógica que considere todas las líneas de la tabla en que 𝑓 = 1
– O una expresión lógica que considere todas las líneas de la tabla en que 𝑓 = 0
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 42
Minterm
• Considere una función lógica con 𝑛 variables de
entrada
• Un minterm es cualquier producto lógico en que todas las variables
aparecen una vez, ya sea negada o no negada
– Para cada fila de la tabla, incluimos 𝑥𝑖 si 𝑥𝑖 = 1, o bien incluimos 𝑥ഥ𝑖 si 𝑥𝑖 = 0
• Ejemplo: minterms para esta tabla 𝑥1 𝑥2 𝑓 𝑥1 , 𝑥2
0 0 1
0 1 1
• Para simplificar la notación, el minterm de
1 0 0
la fila 𝑖 es designado como 𝑚𝑖
1 1 1
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 43
Suma de productos
• Una función lógica 𝑓 puede ser expresada como una
suma de los minterms correspondientes a las filas
de la tabla de verdad que producen 𝒇 = 𝟏
• La expresión resultante es correcta y única, pero no necesariamente
mínima
– Esta expresión se denomina suma de productos canónica para la función 𝒇
• El primer paso de la síntesis de funciones lógicas es llegar a la suma
de productos canónica
– Luego se simplifica con manipulaciones algebraicas
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 44
Ejemplo – suma de productos
• Considere la tabla de verdad
• La síntesis incluye los minterms 1,
Fila 𝑥1 𝑥2 𝑥3 𝑓 𝑥1 , 𝑥2 , 𝑥3
4, 5 y 6
0 0 0 0 0
1 0 0 1 1
• Mediante manipulación algebraica 2 0 1 0 0
llegamos a: 3 0 1 1 0
4 1 0 0 1
5 1 0 1 1
6 1 1 0 1
7 1 1 1 0
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 45
¿Cómo sería la implementación con
compuertas lógicas?
Una buena indicación del costo de un circuito
lógico es la suma del número de compuertas y
el número total de entradas de todas las
compuertas – en este caso, 13
• Es posible usar notación de minterms para expresar funciones lógicas
en forma abreviada – ejemplo:
𝑓 𝑥1 , 𝑥2 , 𝑥3 = 𝑚1 , 𝑚4 , 𝑚5 , 𝑚6
𝑓 𝑥1 , 𝑥2 , 𝑥3 = 𝑚 1, 4, 5, 6
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 46
¿Qué aprendimos hoy?
• Síntesis de circuitos
• Implementaciones de mínimo costo
• Minterms
• Suma de productos
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 47
1.08
Síntesis de un circuito
digital como producto
de sumas
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 48
Maxterm
• Considere una función lógica con 𝑛 variables de
entrada
• Un maxterm es cualquier suma lógica en que todas las variables
aparecen una vez, ya sea negada o no negada
– Para cada fila de la tabla, incluimos 𝑥𝑖 si 𝑥𝑖 = 0, o bien incluimos 𝑥ഥ𝑖 si 𝑥𝑖 = 1
• Ejemplo: maxterms para esta tabla 𝑥1 𝑥2 𝑓 𝑥1 , 𝑥2
0 0 1
0 1 1
• Para simplificar la notación, el maxterm de 1 0 0
la fila 𝑖 es designado como 𝑀𝑖 1 1 1
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 49
Producto de sumas
• Una función lógica 𝑓 puede ser expresada como un
producto de los maxterms correspondientes a las
filas de la tabla de verdad que producen 𝒇 = 𝟎
• La expresión resultante es correcta y única, pero no necesariamente
mínima
– Esta expresión se denomina producto de sumas canónico para la función 𝒇
• El primer paso de la síntesis de funciones lógicas puede ser expresar
un producto de sumas canónico
– Luego se simplifica con manipulaciones algebraicas
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 50
𝑚𝑖 = 𝑀𝑖
• Esto es útil – por ejemplo, para la tabla de verdad:
𝑓ഥ 𝑥1 , 𝑥2 , 𝑥3 = 𝑚0 + 𝑚2 + 𝑚3 + 𝑚7 Fila 𝑥1 𝑥2 𝑥3 𝑓 𝑥1 , 𝑥2 , 𝑥3
0 0 0 0 0
𝑓ഥ 𝑥1 , 𝑥2 , 𝑥3 = 𝑥1 𝑥2 𝑥3 + 𝑥1 𝑥2 𝑥3 + 𝑥1 𝑥2 𝑥3 + 𝑥1 𝑥2 𝑥3 1 0 0 1 1
2 0 1 0 0
• Negando la expresión, obtenemos: 3 0 1 1 0
4 1 0 0 1
𝑓 𝑥1 , 𝑥2 , 𝑥3 = 𝑚0 + 𝑚2 + 𝑚3 + 𝑚7 = 𝑚0 ∙ 𝑚2 ∙ 𝑚3 ∙ 𝑚7
5 1 0 1 1
6 1 1 0 1
• Sabiendo que 𝑚𝑖 = 𝑀𝑖 , entonces:
7 1 1 1 0
𝑓 𝑥1 , 𝑥2 , 𝑥3 = 𝑀0 ∙ 𝑀2 ∙ 𝑀3 ∙ 𝑀7 = 𝑥1 + 𝑥2 + 𝑥3 𝑥1 + 𝑥2 + 𝑥3 𝑥1 + 𝑥2 + 𝑥3 𝑥1 + 𝑥2 + 𝑥3
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 51
Ejemplo – producto de sumas
• Considere la tabla de verdad
• La síntesis incluye los maxterms 0,
Fila 𝑥1 𝑥2 𝑥3 𝑓 𝑥1 , 𝑥2 , 𝑥3
2, 3 y 7
0 0 0 0 0
1 0 0 1 1
• Mediante manipulación algebraica 2 0 1 0 0
llegamos a: 3 0 1 1 0
4 1 0 0 1
5 1 0 1 1
6 1 1 0 1
7 1 1 1 0
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 52
¿Cómo sería la implementación con
compuertas lógicas?
• Es posible usar notación de minterms para expresar funciones lógicas
en forma abreviada – ejemplo:
𝑓 𝑥1 , 𝑥2 , 𝑥3 = ෑ 𝑀0 , 𝑀2 , 𝑀3 , 𝑀7 𝑓 𝑥1 , 𝑥2 , 𝑥3 = ෑ M 0, 2, 3, 7
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 53
¿Qué aprendimos hoy?
• Maxterms
• Producto de sumas
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 54
1.09
Circuitos lógicos con
NAND y NOR
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 55
Circuitos lógicos con NAND y NOR
• NAND y NOR son compuertas más simples de implementar que AND y OR
• Las leyes de DeMorgan nos indican que:
𝒙𝟏 𝒙𝟐 = 𝒙𝟏 + 𝒙𝟐
Aplicando esto, ¿cómo
nos quedan las sumas de
productos y los productos
de sumas?
𝒙𝟏 + 𝒙𝟐 = 𝒙𝟏 𝒙𝟐
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 56
Sumas de productos con NANDs
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 57
Productos de sumas con NORs
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 58
¿Qué aprendimos hoy?
• Compuertas NAND y NOR
• Suma de productos con NANDs
• Producto de sumas con NORs
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 59
1.10
Ejemplos de diseño
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 60
Pasos de diseño
• En general usaremos los siguientes pasos:
– Especificación de la función del circuito
– Descripción mediante tablas de verdad o funciones lógicas
– Síntesis e implementación
– Verificación
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 61
Control de luces
• Supongamos una habitación con
tres puertas con un interruptor
cerca de cada puerta 𝑥1 𝑥2 𝑥3 𝑓 𝑥1 , 𝑥2 , 𝑥3
• Queremos diseñar un circuito que 0 0 0 0
nos permita cambiar el estado de 0 0 1 1
las luces (encendido o apagado) 0 1 0 1
cambiando el estado de cualquiera 0 1 1 0
de los interruptores 1 0 0 1
• La tabla de verdad parece cumplir 1 0 1 0
el objetivo… 1 1 0 0
1 1 1 1
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 62
Implementaciones
• Ambas implementaciones son equivalentes y tienen
igual costo
• También podríamos realizarlas con NANDs o NORs
• Podemos probarlas “a mano” o usando un simulador
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 63
¿Qué aprendimos hoy?
• Pasos de diseño de un circuito digital
• Ejemplo de diseño
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 64
1.11
Circuitos multiplexores
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 65
Multiplexores
• Un multiplexor es un circuito
capaz de conectar cualquiera
𝑠 𝑥1 𝑥2 𝑓 𝑠, 𝑥1 , 𝑥2
de sus entradas 𝑥𝑖 a la salida 𝑓
0 0 0 0
– “Multiplexa” sus entradas en una
única salida 0 0 1 0
0 1 0 1
• La elección de la entrada es
comandada mediante un 0 1 1 1
selector 𝑠 1 0 0 0
• Los multiplexores son muy 1 0 1 1
usados en sistemas digitales 1 1 0 0
• Intentemos diseñar un 1 1 1 1
multiplexor de 2 entradas
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 66
Implementación
𝑠 𝑓 𝑠, 𝑥1 , 𝑥2
0 𝑥1
• Este circuito también puede ser implementado 1 𝑥2
mediante NANDs
Esta tabla de verdad más
• Nuevamente podemos probar “a mano” o con un compacta describe el
simulador comportamiento del
multiplexor
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 67
¿Qué aprendimos hoy?
• Multiplexores
• Implementación como suma de productos
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 68
1.12
Introducción a las
herramientas de CAD
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 69
Herramientas de diseño asistido por
computador (CAD)
• Dependen del tipo de implementación
– ASIC, FPGA, CPLD, TTL, CMOS, etc.
• En general tienen pasos en común:
– Ingreso del diseño
– Síntesis y optimización
– Simulación funcional
– Diseño físico
– Simulación de tiempo
– Implementación del circuito
• El flujo de diseño está amarrado a la tecnología objetivo
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 70
Ingreso del diseño
• Hay varias formas de hacerlo:
– Tablas de verdad o diagrama de tiempo
• Simple
• Práctico para diseños pequeños solamente
– Capturador de esquemático
• Intuitivo
• Extenso uso de jerarquía – crucial para diseños grandes
– Lenguaje de descripción de hardware (HDL)
• Útil para circuitos complejos
• Portable
• Jerarquía es crucial
• Muchas opciones, las más comunes son Verilog y VHDL
• Suele incluir simulaciones de comportamiento
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 71
Síntesis
• Muchas opciones:
– Generación de un circuito a partir de una tabla de verdad
– Compilación o traducción de una descripción en Verilog en un circuito con
compuertas lógicas
– Optimización lógica (también llamados síntesis lógica)
• La síntesis puede finalizar con la implementación:
– Mapeo a la tecnología
– Síntesis del layout o diseño físico
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 72
Simulación funcional
• Utiliza el diseño generado por la síntesis
• Requiere un vector de estímulos ingresados por el
diseñador
• No toma en cuenta la temporización de las señales
• Suele entregar resultados en formato de texto o como diagramas
de tiempo
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 73
Diseño físico
• La implementación del circuito en un chip varía entre
distintas tecnologías
• Se posicionan componentes lógicos a lo largo del chip y se
determinan las conexiones entre ellos para implementar el circuito
• El resultado suele ser llevado a “prueba” mediante simulaciones
para verificar que cumple con todos los requerimientos
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 74
Simulación de tiempo
• Los componentes lógicos requieren tiempo para
generar una salida en respuesta a cambios en sus
entradas.
– A este tiempo se le denomina retardo de propagación
• Existe otro retardo producido por las conexiones entre elementos a
través de las cuales debe propagarse una señal
• La combinación de estos retardos afecta a la velocidad de operación
de nuestro chip
– Un simulador de tiempo nos permite evaluar los retardos a los que está
sometido nuestro diseño
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 75
Configuración del chip
• Si nuestro diseño cumple con todos los requisitos,
podemos implementarlo en un chip
• Si trabajamos con un dispositivo de hardware programable basta con
configurarlo (o programarlo)
• Pero si se trata de un chip diseñado a la medida, entonces el chip es
fabricado desde cero
– ¿Cómo se fabrica un chip?
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 76
¿Qué aprendimos hoy?
• Herramientas CAD
• Pasos de diseño con un CAD
Ingreso de diseño
Síntesis
Simulación funcional
Diseño físico
Simulación de tiempo
Configuración del chip
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 77
1.13
Compuertas lógicas
XOR y XNOR
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 78
Compuerta XOR
• La compuerta OR exclusivo, conocida como XOR, activa
su salida cuando sus entradas son distintas
• Su operador lógico es representado con el símbolo ⊕
𝑥1 𝑥2 𝑓 𝑥1 , 𝑥2
0 0 0
0 1 1
1 0 1
1 1 0
Símbolo circuital
Tabla de verdad
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 79
Implementación de la función XOR
• La función lógica XOR se puede expresar como un producto
de sumas:
𝑥1 ⊕ 𝑥2 = 𝑥1 ⋅ 𝑥2 + 𝑥1 ⋅ 𝑥2 = 𝑥1 + 𝑥2 ⋅ 𝑥1 + 𝑥2
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 80
Compuerta XOR con 𝑛 entradas
• La utilidad de las compuertas XOR es más evidente cuando
vemos su tabla de verdad con más de dos entradas
𝑥1 𝑥2 𝑥3 𝑓 𝑥1 , 𝑥2 , 𝑥3
• La salida de una compuerta XOR es igual a
0 0 0 0
1 solamente cuando entre sus entradas
0 0 1 1
hay un número impar de 1s
0 1 0 1
• Esta función es de utilidad en circuitos
0 1 1 0
aritméticos y en circuitos detectores de
errores 1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 81
Compuerta XNOR
• La compuerta XNOR es la compuerta XOR pero con su
salida negada
• Su salida es igual a 1 cuando sus entradas son iguales
𝑥1 𝑥2 𝑓 𝑥1 , 𝑥2
0 0 1
0 1 0
1 0 0
1 1 1
Símbolo
Tabla de verdad
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 82
Implementación de la función XNOR
• La función lógica XNOR se puede expresar como una suma
de productos:
𝑥1 ⊕ 𝑥2 = 𝑥1 + 𝑥2 ⋅ 𝑥1 + 𝑥2 = 𝑥1 ⋅ 𝑥2 + 𝑥1 ⋅ 𝑥2
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 83
Compuerta XNOR con 𝑛 entradas
• La salida de una compuerta XNOR también se activa
dependiendo del número de 1s entre sus entradas
𝑥1 𝑥2 𝑥3 𝑓 𝑥1 , 𝑥2 , 𝑥3
• La salida será igual a 1 solamente cuando
0 0 0 1
entre sus entradas exista un número par
0 0 1 0
de 1s
0 1 0 0
– La salida del XOR era 0 en estos casos
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 0
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 84
¿Qué aprendimos hoy?
• Compuerta XOR
Símbolo
Tabla de verdad
• Compuerta XNOR
Símbolo
Tabla de verdad
© 2020 Electrónica digital bit a bit 1. Introducción a los Circuitos lógicos 85