2. Introducción
Contenido Casa abierta al tiempo
1 Introducción
2 Modelado analítico de circuitos lógicos combinacionales
3 Simulación de circuitos lógicos combinacionales
4 Bloques combinacionales
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 2
3. Introducción Contexto
Contenido Casa abierta al tiempo
1 Introducción
Contexto
2 Modelado analítico de circuitos lógicos combinacionales
3 Simulación de circuitos lógicos combinacionales
4 Bloques combinacionales
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 3
4. Introducción Contexto
Objetivos Casa abierta al tiempo
Objetivo general
Al final de la sección el alumno será
capaz de diseñar circuitos
combinacionales de mediana
complejidad mediante bloques lógicos.
Objetivos particulares
Entender las bases análiticas que soportan
el funcionamiento de los circuitos digitales
Diseñar circuitos combinacionales sencillos
utilizando compuertas lógicas
Describir circuitos combinacionales
sencillos con Verilog
Usar un paquete de software para describir
y simular circuitos combinacionales
Diseñar circuitos combinacionales con
compuertas y bloques lógicos
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 4
5. Introducción Contexto
Modelo analítico Casa abierta al tiempo
Definición
Un modelo analítico es un objeto
teórico que, de manera abstracta,
representa un sistema mediante
ecuaciones que, al variar su valores,
predicen el comportamiento del
sistema.
Ejemplos
• E = mc2
• F = ma
• v = d
t
• Σ = a ⊕ b ⊕ c
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 5
6. Introducción Contexto
Modelo analítico de un circuito digital Casa abierta al tiempo
Observación
En la disciplina de Diseño Lógico, los
circuitos digitales se modelan con
funciones booleanas.
Σ = a ⊕ b ⊕ c
cout = cin ∧ (a ⊕ b) ∨ (a ∧ b)
a b cin
Σ
cout
Circuito lógico que implementa un sumadorUniversidad Autónoma Metropolitana Adán G. Medrano-Chávez 6
7. Introducción Contexto
Función booleana Casa abierta al tiempo
Definición
Expresiones matemáticas cuyas
variables solo tienen dos valores: cero
y uno. Se pueden representar como
ecuaciones algebraicas o como tablas
de verdad. Por medio de ambas
formas es posible implementar un
circuito lógico.
Σ = a ⊕ b ⊕ c
a b cin Σ
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 7
8. Introducción Contexto
Modelo analítico de un circuito digital Casa abierta al tiempo
Pregunta
¿Cómo modelar analíticamente un
circuito lógico?
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 8
9. Modelado analítico de circuitos lógicos combinacionales
Contenido Casa abierta al tiempo
1 Introducción
2 Modelado analítico de circuitos lógicos combinacionales
3 Simulación de circuitos lógicos combinacionales
4 Bloques combinacionales
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 9
10. Modelado analítico de circuitos lógicos combinacionales Contexto
Contenido Casa abierta al tiempo
1 Introducción
2 Modelado analítico de circuitos lógicos combinacionales
Contexto
3 Simulación de circuitos lógicos combinacionales
4 Bloques combinacionales
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 10
11. Modelado analítico de circuitos lógicos combinacionales Contexto
Modelado analítico de un circuito lógico Casa abierta al tiempo
Procedimiento de modelado
1 Funcionamiento: determinar qué hace el circuito lógico
2 Variables: Determinar el número de entradas (variables) del circuito
3 Funciones: Determinar el número de salidas (funciones) del circuito
4 Tabla de verdad: Determinar el valor de cada salida, con base en
todos los posibles valores que pueder tener la entrada
5 Ecuación booleana: Por inspección, obtener la ecuación que
corresponde a una función booleana
6 Implementación: convertir la ecuación booleana a un circuito lógico
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 11
12. Modelado analítico de circuitos lógicos combinacionales Tablas de verdad y compuertas lógicas
Contenido Casa abierta al tiempo
1 Introducción
2 Modelado analítico de circuitos lógicos combinacionales
Tablas de verdad y compuertas lógicas
3 Simulación de circuitos lógicos combinacionales
4 Bloques combinacionales
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 12
13. Modelado analítico de circuitos lógicos combinacionales Tablas de verdad y compuertas lógicas
NOT Casa abierta al tiempo
A Q = ¬A
0 1
1 0
Fuente: Wikimedia
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 13
14. Modelado analítico de circuitos lógicos combinacionales Tablas de verdad y compuertas lógicas
Seguidor Casa abierta al tiempo
A Q = A
0 0
1 1
Fuente: Wikimedia
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 14
15. Modelado analítico de circuitos lógicos combinacionales Tablas de verdad y compuertas lógicas
AND Casa abierta al tiempo
A B Q = A ∧ B
0 0 0
0 1 0
1 0 0
1 1 1
Fuente: Wikimedia
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 15
16. Modelado analítico de circuitos lógicos combinacionales Tablas de verdad y compuertas lógicas
OR Casa abierta al tiempo
A B Q = A ∨ B
0 0 0
0 1 1
1 0 1
1 1 1
Fuente: Wikimedia
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 16
17. Modelado analítico de circuitos lógicos combinacionales Tablas de verdad y compuertas lógicas
XOR Casa abierta al tiempo
A B Q = A ⊕ B
0 0 0
0 1 1
1 0 1
1 1 0
Fuente: Wikimedia
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 17
18. Modelado analítico de circuitos lógicos combinacionales Tablas de verdad y compuertas lógicas
XNOR Casa abierta al tiempo
A B Q = ¬(A ⊕ B)
0 0 1
0 1 0
1 0 0
1 1 1
Fuente: Wikimedia
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 18
19. Modelado analítico de circuitos lógicos combinacionales Tablas de verdad y compuertas lógicas
NAND Casa abierta al tiempo
A B Q = ¬(A ∧ B)
0 0 1
0 1 1
1 0 1
1 1 0
Fuente: Wikimedia
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 19
20. Modelado analítico de circuitos lógicos combinacionales Tablas de verdad y compuertas lógicas
NOR Casa abierta al tiempo
A B ¬(A ∨ B)
0 0 1
0 1 0
1 0 0
1 1 0
Fuente: Wikimedia
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 20
21. Modelado analítico de circuitos lógicos combinacionales Tablas de verdad y compuertas lógicas
Modelado analítico de un circuito Casa abierta al tiempo
Problema
En un programa de concursos hay tres
jueces que votan para aprobar o
desaprobar la actuación de los
concursantes. Cuando la mayoría de
los jueces (dos a tres de ellos), se
enciende un foco rojo que indica que
el concursante lo hizo bien. Cuando
uno o ningún juez aprueba el
desempeño del concursante, el foco
rojo permanece apagado. Diseñe el
circuito lógico que permite que el
foco se encienda cuando se aprueba al
concursante.
Los tres jueces del inframundo, Autor: Ludwig
Mack, Fuente: Wikimedia
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 21
22. Modelado analítico de circuitos lógicos combinacionales Tablas de verdad y compuertas lógicas
Modelado analítico Casa abierta al tiempo
1. Funcionamiento
El foco se enciende cuando dos o tres
jueces oprimen el botón, en caso
contrario, el foco se queda apagado
Fuente: pixabay
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 22
23. Modelado analítico de circuitos lógicos combinacionales Tablas de verdad y compuertas lógicas
Modelado analítico Casa abierta al tiempo
2. Variables
El circuito tiene tres entradas: los
botones que accionan los jueces. Nota
que las entradas solo pueden tener
dos valores: accionado (uno) o no
accionado (cero).
3. Salidas
El circuito lógico solo tienen la salida
que hace que el foco rojo se encienda.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 23
24. Modelado analítico de circuitos lógicos combinacionales Tablas de verdad y compuertas lógicas
Modelado analítico Casa abierta al tiempo
4. Tabla de verdad
Contruir una tabla de verdad con tres
variables, j2, j1 y j0. Nota que la tabla
de verdad contiene todas las posibles
combinaciones que pueden producirse
con tres botones. Con base en el valor
de las variables de entrada, determinar
si el foco debe encenderse o apagarse.
j2 j1 j0 light
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 24
25. Modelado analítico de circuitos lógicos combinacionales Tablas de verdad y compuertas lógicas
Modelado analítico Casa abierta al tiempo
5. Ecuación booleana
1 A partir de la tabla de verdad, determinar
las combinaciones que hacen que el foco
se encienda.
2 Por cada combinación, obtener un
monomio que aplique una AND a cada
una de las variables, teniendo en cuenta
que si la variable de entrada vale cero en
la tabla de verdad, entonces se escribe
negada e.g. el primer término con uno es:
¬j2 ∧ j1 ∧ j0
3 Unir cada término hallado en el paso
anterior con una OR
j2 j1 j0 light
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 25
26. Modelado analítico de circuitos lógicos combinacionales Tablas de verdad y compuertas lógicas
Modelado analítico Casa abierta al tiempo
6. Implementación
A partir de la ecuación
(¬j2 ∧ j1 ∧ j0) ∨ (j2 ∧ ¬j1 ∧ j0) ∨ (j2 ∧
j1 ∧ ¬j0) ∨ (j2 ∧ j1 ∧ j0), implementar
el circuito lógico.
j2 j1 j0
Circuito uno: mayoría.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 26
27. Modelado analítico de circuitos lógicos combinacionales Tablas de verdad y compuertas lógicas
Modelado analítico Casa abierta al tiempo
Problema
A partir de una función booleana,
diseñe un circuito lógico que reciba
por entrada un número binario a de
dos bits y a la salida dé el
complemento a uno de a.
Complemento a uno
a0a1
¬a0¬a1
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 27
28. Modelado analítico de circuitos lógicos combinacionales Tablas de verdad y compuertas lógicas
Modelado analítico Casa abierta al tiempo
Tabla de verdad del circuito complemento a uno
a1 a0 F1 F0
0 0 1 1
0 1 1 0
1 0 0 1
1 1 0 0
Ecuaciones booleanas
F1 = (¬a1 ∧ ¬a0) ∨ (¬a1 ∧ a0)
F0 = (¬a1 ∧ ¬a0) ∨ (a1 ∧ ¬a0)
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 28
29. Modelado analítico de circuitos lógicos combinacionales Tablas de verdad y compuertas lógicas
Modelado analítico Casa abierta al tiempo
Ecuaciones booleanas
F1 = (¬a1 ∧ ¬a0) ∨ (¬a1 ∧ a0)
F0 = (¬a1 ∧ ¬a0) ∨ (a1 ∧ ¬a0)
a1 a0
F1
F0
Circuito dos: complemento a uno.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 29
30. Modelado analítico de circuitos lógicos combinacionales Tablas de verdad y compuertas lógicas
Modelo analítico Casa abierta al tiempo
Pregunta
Los circuitos uno y dos son
complicados porque tienen muchas
compuertas lógicas que, a su vez,
tienen muchas entradas. Eso no es
permisible porque el circuito se
encarece, entonces ¿cómo optimizar el
costo?
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 30
31. Modelado analítico de circuitos lógicos combinacionales Optimización de circuitos lógicos
Contenido Casa abierta al tiempo
1 Introducción
2 Modelado analítico de circuitos lógicos combinacionales
Optimización de circuitos lógicos
3 Simulación de circuitos lógicos combinacionales
4 Bloques combinacionales
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 31
32. Modelado analítico de circuitos lógicos combinacionales Optimización de circuitos lógicos
Optimización de circuitos lógicos Casa abierta al tiempo
Definición
Proceso que consiste en reducir el
número de compuertas lógicas y su
complejidad (número de entradas),
mediante procedimientos
determinísticos tales como:
álgebra booleana,
mapas de Karnaugh item
algorítmo de Quine-McCluskey
Observación
Los métodos de optimización
determinísticos sólo son útiles para
optimizar funciones booleanas de
pocas variables. Inclusive, un
ordenador puede tardar cientos de
años en optimizar una función,
supongamos, con 128 entradas. Para
reducir funciones booleanas de
muchas variables se emplean métodos
heurísticos.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 32
33. Modelado analítico de circuitos lógicos combinacionales Optimización de circuitos lógicos
Optimización de circuitos lógicos Casa abierta al tiempo
Observación
En el sitio All about circuits1 se
menciona que los circuitos lógicos que
aparecen en sistemas reales tienen a
lo más seis variables, por ello es útil
aprender a optimizar funciones
booleanas con tal cantidad de
entradas.
1
https://www.allaboutcircuits.com/textbook/digital/chpt-8/larger-5-6-variable-karnaugh-maps/
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 33
34. Modelado analítico de circuitos lógicos combinacionales Optimización de circuitos lógicos
Optimización mediante álgebra booleana Casa abierta al tiempo
Definición
De acuerdo con Peermingeat2: una función booleana está optimizada
«cuando el número de monomios de la suma es mínimo y, en segundo
lugar, cada monomio tienen el menor número de literales.»
2
Peermingeat, et al. «Álgebra de Boole», Vincens Vives, 1993
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 34
35. Modelado analítico de circuitos lógicos combinacionales Optimización de circuitos lógicos
Álgebra booleana Casa abierta al tiempo
Identidades algebraicas de una
variable con OR
1 x ∨ 0 = x
2 x ∨ 1 = 1
3 x ∨ x = x
4 x ∨ ¬x = 1
Doble negación
¬(¬x) = x
Identidades algebraicas de una
variable con AND
1 x ∧ 1 = x
2 x ∧ 0 = 0
3 x ∧ x = x
4 x ∧ ¬x = 0
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 35
36. Modelado analítico de circuitos lógicos combinacionales Optimización de circuitos lógicos
Álgebra booleana Casa abierta al tiempo
Observación
Las propiedades anteriores pueden
demostrarse sustituyendo el valor de
la incógnita x por uno o cero.
Demostración de identidades
algebraicas de una variable con
OR
Asumir alguno de los dos valores que
puede tener x.
1 x ∨ 0 = x
2 x ∨ 1 = 1
3 x ∨ x = x
4 x ∨ ¬x = 1
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 36
37. Modelado analítico de circuitos lógicos combinacionales Optimización de circuitos lógicos
Álgebra booleana Casa abierta al tiempo
Observación
Las identidades anteriores se pueden
aplicar a funciones booleanas de
mayor complejidad aplicando la
técnica del cambio de variable.
Ejemplos
1 x ∧ y ∨ 0 = x ∧ y
2 x ⊕ y ∨ 1 = 1
3 ¬x ∨ ¬x = ¬x
4 (x ∧ y) ∨ ¬(x ∧ y) = 1
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 37
38. Modelado analítico de circuitos lógicos combinacionales Optimización de circuitos lógicos
Álgebra booleana Casa abierta al tiempo
identidad (OR) identidad (AND) Propiedad
x ∨ y = y ∨ x x ∧ y = y ∧ x Conmutatividad
x ∨ (y ∨ z) = (x ∨ y) ∨ z x ∧ (y ∧ z) = (x ∧ y) ∧ z Asociatividad
x ∧ (y ∨ z) = x ∧ y ∨ x ∧ z x ∨ (y ∧ z) = (x ∨ y) ∧ (x ∨ z) Distributiva
¬(x ∨ y) = ¬x ∧ ¬y ¬(x ∧ y) = ¬x ∨ ¬y DeMorgan
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 38
39. Modelado analítico de circuitos lógicos combinacionales Optimización de circuitos lógicos
Álgebra booleana Casa abierta al tiempo
Consenso OR
x ∧ ¬y ∨ y ∧ z ∨ x ∧ z = x ∧ ¬y ∨ y ∧ z
Consenso AND
(x ∨ ¬y) ∧ (y ∨ z) ∧ (x ∨ z) = (x ∨ ¬y) ∧ (y ∨ z)
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 39
40. Modelado analítico de circuitos lógicos combinacionales Optimización de circuitos lógicos
Álgebra booleana Casa abierta al tiempo
Observación
Las propiedades de la conmutatividad
y de la asociatividad son heredadas
del álgebra general. No obstante la
propiedad distributiva de la operación
lógica AND no tiene equivalente en el
álgebra general. Tampoco lo tiene la
propiedad de DeMorgan.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 40
41. Modelado analítico de circuitos lógicos combinacionales Optimización de circuitos lógicos
Álgebra de Boole Casa abierta al tiempo
Absorción
La propiedad x ∨ 1 = 1 ayuda a
eliminar variables y términos
redundates en una ecuación booleana.
Esto ocurre después de aplicar la
propiedad distributiva de la OR
Ejemplo
Mediante álbebra de Boole,
comprobar que la propiedad
distributiva de la AND
x ∨ (y ∧ z) = (x ∨ y) ∧ (x ∨ z)
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 41
42. Modelado analítico de circuitos lógicos combinacionales Optimización de circuitos lógicos
Álgebra booleana Casa abierta al tiempo
expresión explicación
x ∨ (y ∧ z) = (x ∨ y) ∧ (x ∨ z) propiedad distributiva
x ∨ (y ∧ z) = x ∧ x ∨ x ∧ z ∨ x ∧ y ∨ y ∧ z propiedad distributiva de la OR
x ∨ (y ∧ z) = x ∧ (1 ∨ x ∨ y ∨ z) ∨ y ∧ z propiedad distributiva de la OR
x ∨ (y ∧ z) = x ∧ 1 ∨ y ∧ z identidad x ∨ 1 = 1
x ∨ (y ∧ z) = x ∨ y ∧ z identidad x ∧ 1 = x
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 42
43. Modelado analítico de circuitos lógicos combinacionales Optimización de circuitos lógicos
Álgebra booleana Casa abierta al tiempo
Problema
Empleando álgebra booleana, reduce
las ecuaciones boolenas del circuito
lógico que implementa el
complemento a uno a su expresión
mínima.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 43
44. Modelado analítico de circuitos lógicos combinacionales Optimización de circuitos lógicos
Álgebra booleana Casa abierta al tiempo
Solución al problema de optimización del
circuito de los complementos
expresión explicación
¬a1 = ¬a1 ∧ ¬a0 ∨ ¬a1 ∧ a0 Expr. inicial
¬a1 = ¬a1 ∧ (¬a0 ∨ a0) Prop. distr. OR
¬a1 = ¬a1 Prop. x ∨ ¬x = 1
¬a0 = ¬a1 ∧ ¬a0 ∨ a1 ∧ ¬a0 Expr. inicial
¬a0 = ¬a0 ∧ (¬a1 ∨ a1) Prop. distr. OR
¬a0 = ¬a0 Prop. x ∨ ¬x = 1
a1a0
¬a1
¬a0
Circuito lógico que implementa el complemento
a uno de un número binario de dos bits.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 44
45. Modelado analítico de circuitos lógicos combinacionales Mapas de Karnaugh
Contenido Casa abierta al tiempo
1 Introducción
2 Modelado analítico de circuitos lógicos combinacionales
Mapas de Karnaugh
3 Simulación de circuitos lógicos combinacionales
4 Bloques combinacionales
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 45
46. Modelado analítico de circuitos lógicos combinacionales Mapas de Karnaugh
Mapas de Karnaugh Casa abierta al tiempo
Definición
Es una tabla que representa todas las
posibles combinaciones de las
variables de entrada con su
correspondiente salida (resultado).
Las celdas de la tabla están ordenadas
para permitir la simplificación de una
función booleana mediante
agrupamiento de bits.
Observación
Este método es práctico para
simplificar funciones booleanas de
hasta cuatro variables. Para
ecuaciones booleanas de más variables
emplearemos Wolfram Alpha.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 46
47. Modelado analítico de circuitos lógicos combinacionales Mapas de Karnaugh
Mapa de Karnaugh de dos variables Casa abierta al tiempo
Propiedades
• Tiene cuatro celdas
• Indica el nombre de la función y de
las variables
• La etiqueta de las filas indica el
valor de x
• La etiqueta de las columnas indica
el valor de y
F
0
1
0 1
¬x∧¬y ¬x∧y
x∧¬y x∧y
x
y
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 47
48. Modelado analítico de circuitos lógicos combinacionales Mapas de Karnaugh
Mapa de Karnaugh de dos variables Casa abierta al tiempo
Funcionamiento
• El valor de la celda se cambia por el
valor de la función que corresponda
• Para simplificar una función, basta
con agrupar, de dos en dos, los unos
adyacentes del mapa
F
0
1
0 1
¬x∧¬y ¬x∧y
x∧¬y x∧y
x
y
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 48
49. Modelado analítico de circuitos lógicos combinacionales Mapas de Karnaugh
Mapa de Karnaugh de dos variables Casa abierta al tiempo
Tabla de verdad del circuito complemento a uno
a1 a0 F1 F0
0 0 1 1
0 1 1 0
1 0 0 1
1 1 0 0
F1=¬a1
0
1
0 1
1 1
0 0
a1
a2
Mapa de Karnaugh para F1
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 49
50. Modelado analítico de circuitos lógicos combinacionales Mapas de Karnaugh
Mapa de Karnaugh de tres variables Casa abierta al tiempo
Propiedades
• Preserva las propiedades del
mapa de dos variables
• Las columnas están etiquetadas
con los posibles valores de y y z
en código gray
• Se agrupan a los más cuatro bits
adyacentes
F
0
1
00 01
x
yz
¬x∧
¬y∧
¬z
¬x∧
¬y∧
z
¬x∧
y∧
z
¬x∧
y∧
¬z
x∧
¬y∧
¬z
x∧
¬y∧
z
x∧
y∧
z
x∧
y∧
¬z
1011
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 50
51. Modelado analítico de circuitos lógicos combinacionales Mapas de Karnaugh
Mapa de Karnaugh de cuatro variables Casa abierta al tiempo
Propiedades
• Preserva las propiedades del
mapa de tres variables
• Las columnas están etiquetadas
con los posibles valores de y y z
en código gray
• En las filas están etiquetadas con
los posibles valores de w y x en
código gray
• Se agrupan a los más ocho bits
adyacentes
F
00 01
wx
yz
1011
¬w
∧
¬x∧
¬y∧
¬z
¬w
∧
¬x∧
¬y∧
z
¬w
∧
¬x∧
y∧
z
¬w
∧
¬x∧
y∧
¬z
¬w
∧
x∧
¬y∧
¬z
¬w
∧
x∧
¬y∧
z
¬w
∧
x∧
y∧
z
¬w
¬∧
x∧
y∧
¬z
w
∧
x∧
¬y∧
¬z
w
∧
x∧
¬y∧
z
w
∧
x∧
y∧
z
w
∧
x∧
y∧
¬z
w
∧
¬x∧
¬y∧
¬z
w
∧
¬x∧
¬y∧
z
w
∧
¬x∧
y∧
z
w
∧
¬x∧
y∧
¬z
00
01
11
10
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 51
52. Modelado analítico de circuitos lógicos combinacionales Mapas de Karnaugh
Mapa de Karnaugh de cuatro variables Casa abierta al tiempo
Problema
Mediante mapas de Karnaugh,
obtenga la función simplificada F.
Recuerda que con el código Gray solo
cambia un bit en cada transición.
w x y z F
0 0 0 0 1
0 0 0 1 0
0 0 1 0 1
0 0 1 1 0
0 1 0 0 0
0 1 0 1 0
0 1 1 0 0
0 1 1 1 0
1 0 0 0 1
1 0 0 1 0
1 0 1 0 1
1 0 1 1 0
1 1 0 0 0
1 1 0 1 0
1 1 1 0 0
1 1 1 1 0
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 52
53. Modelado analítico de circuitos lógicos combinacionales Mapas de Karnaugh
Mapa de Karnaugh de cuatro variables Casa abierta al tiempo
Problema
Mediante mapas de Karnaugh,
obtenga la función simplificada F.
w x y z F
0 0 0 0 1
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 0
0 1 0 1 1
0 1 1 0 0
0 1 1 1 0
1 0 0 0 0
1 0 0 1 0
1 0 1 0 1
1 0 1 1 1
1 1 0 0 1
1 1 0 1 1
1 1 1 0 0
1 1 1 1 1
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 53
54. Modelado analítico de circuitos lógicos combinacionales Mapas de Karnaugh
Mapa de Karnaugh de cuatro variables Casa abierta al tiempo
Observación
Para obtener una función simplificada
se necesita:
• minimizar el número de grupos
• maximizar el tamaño de los
grupos
F
00 01
wx
yz
1011
00
01
11
10
1
1
1 1
1 1
0 0 0
0 00
0 0
01
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 54
55. Modelado analítico de circuitos lógicos combinacionales Representaciones canónicas de las funciones booleanas
Contenido Casa abierta al tiempo
1 Introducción
2 Modelado analítico de circuitos lógicos combinacionales
Representaciones canónicas de las funciones booleanas
3 Simulación de circuitos lógicos combinacionales
4 Bloques combinacionales
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 55
56. Modelado analítico de circuitos lógicos combinacionales Representaciones canónicas de las funciones booleanas
Formas canónicas Casa abierta al tiempo
Suma de productos
Es la forma no simplificada que se
obtiene directamente de la tabla de
verdad y contiene todas las variables
de entrada. Se representa con la
siguiente notación Σ(0, 1, 2, . . . , n),
donde n es el número del término que
produce un uno a la salida.
Producto de sumas
Es una forma que se obtiene
algebraícamente al complementar el
complemento de una función ¬F
mediante el teorema de DeMorgan,
i.e. ¬¬F. Se representa con la
siguiente notación Π(0, 1, 2, 3, . . . , n),
donde n es el número del término que
produce un cero en la salida.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 56
57. Modelado analítico de circuitos lógicos combinacionales Representaciones canónicas de las funciones booleanas
Formas canónicas Casa abierta al tiempo
Problema
Obtenga el producto de sumas de la
función F(x, y, z) = Σ(1, 2, 3, 4, 5, 6)
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 57
58. Modelado analítico de circuitos lógicos combinacionales Representaciones canónicas de las funciones booleanas
Formas canónicas Casa abierta al tiempo
Expresión Explicación
F(x, y, z) = Σ(1, 2, 3, 4, 5, 6) expresión inicial
¬F(x, y, z) = Σ(0, 7) Forma condensada del complemento de F
¬F(x, y, z) = (¬x ∧ ¬y ∧ ¬z) ∨ (x ∧ y ∧ z) Forma expandida del complemento de F
¬¬F(x, y, z) = ¬[(¬x ∧ ¬y ∧ ¬z) ∨ (x ∧ y ∧ z)] Complemento del complemento de la función
¬¬F(x, y, z) = ¬(a ∨ b) Cambio de variable
¬¬F(x, y, z) = ¬a ∧ ¬b Teorema de DeMorgan
¬¬F(x, y, z) = ¬(¬x ∧ ¬y ∧ ¬z) ∧ ¬(x ∧ y ∧ z) Regreso del cambio de variable
F(x, y, z) = (x ∨ y ∨ z) ∧ (¬x ∨ ¬y ∨ ¬z) Doble negación y teorema de DeMorgan
F(x, y, z) = Π(0, 7) Forma condensada del producto de sumas de F
Obtención del producto de sumas de la función F = Σ(1, 2, 3, 4, 5, 6)
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 58
59. Modelado analítico de circuitos lógicos combinacionales Representaciones canónicas de las funciones booleanas
Relación entre minitérminos y maxitérminos Casa abierta al tiempo
Observación
En la disciplina del diseño lógico es
común nombrar a los monomios que
componene una suma de productos
como minitérminos y a las sumas que
integran un producto de sumas como
maxitérminos.
Expresion Tipo
x ∧ y ∧ z minitérmino
x ∨ y ∨ z maxitérmino
¬w ∨ ¬x ∨ y ∨ z maxitérmino
w ∧ x ∧ y ∧ z minitérmino
Algunos ejemplos de minitérminos y
maxitérminos.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 59
60. Modelado analítico de circuitos lógicos combinacionales Representaciones canónicas de las funciones booleanas
Relación entre minitérminos y maxitérminos Casa abierta al tiempo
Combinación Minitérmino Maxitérmino
000 ¬x∧¬y∧¬z x∨ y∨ z
001 ¬x∧¬y∧ z x∨ y∨ ¬z
010 ¬x∧ y∧¬z x∨¬y∨ z
011 ¬x∧ y∧ z x∨¬y∨ ¬z
100 x∧¬y∧¬z ¬x∨ y∨ z
101 x∧¬y∧ z ¬x∨ y∨ ¬z
110 x∧ y∧¬z ¬x∨¬y∨ z
111 x∧ y∧ z ¬x∨¬y∨ ¬z
Minitérminos y maxitérminos que corresponden a las ocho combinaciones que pueden realizarse con tres bits.
Nota como el maxitérmino se construye a partir del minitérmino al negar las variables y unirlas con el operador ∨.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 60
61. Modelado analítico de circuitos lógicos combinacionales Representaciones canónicas de las funciones booleanas
Simplificación de productos de sumas Casa abierta al tiempo
Observación
En un mapa de Karnaugh, hay
ocasiones en las que es más sencillo
agrupar ceros que unos. Cuando eso
se hace, se obtiene el producto de
sumas simplificado de una función F.
F
00 01
wx
yz
1011
00
01
11
10
w
∨
x∨
y∨
z
w
∨
x∨
y∨
¬z
w
∨
x∨
¬y∨
¬z
w
∨
x∨
¬y∨
z
w
∨
¬x∨
y∨
z
w
∨
¬x∨
y∨
¬z
w
∨
¬x∨
¬y∨
¬z
w
∨
¬x∨
¬y∨
z
¬w
∨
¬x∨
y∨
z
¬w
∨
x∨
y∨
z
¬w
∨
¬x∨
y∨
¬z
¬w
∨
¬x∨
¬y∨
¬z
¬w
∨
¬x∨
¬y∨
z
¬w
∨
x∨
y∨
¬z
¬w
∨
x∨
¬y∨
¬z
¬w
∨
x∨
¬y∨
z
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 61
62. Modelado analítico de circuitos lógicos combinacionales Representaciones canónicas de las funciones booleanas
Simplificación general por mapas de Karnaugh Casa abierta al tiempo
Problema
A partir del mapa de Karnaugh de la
derecha, obtén:
• la suma de productos
simplificada
• el producto de sumas simplificado
• a los resultados anteriores, aplica
álgebra booleana para obtener la
expresión mínima.
F
00 01
wx
yz
1011
00
01
11
10
1
1
1 1
1 1
0 0
0 0
01
1
1
1 1
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 62
63. Modelado analítico de circuitos lógicos combinacionales Representaciones canónicas de las funciones booleanas
Simplificación general por mapas de Karnaugh Casa abierta al tiempo
Solución
La suma de productos simplificada se
obtiene al agrupar los unos como se
muestra en el mapa de la derecha. De
ahí se obtiene la siguiente expresión
F = ¬y ∨ (w ∧ ¬x) ∨ (w ∧ z). Nota
como la w puede factorizarse. Esto se
debe a la intersección de grupos que
resultaron al tratar de maximizar la
cantidad de unos de los grupos.
F
00 01
wx
yz
1011
00
01
11
10
1
1
1 1
1 1
0 0
0 0
01
1
1
1 1
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 63
64. Modelado analítico de circuitos lógicos combinacionales Representaciones canónicas de las funciones booleanas
Simplificación general por mapas de Karnaugh Casa abierta al tiempo
Solución
El producto de sumas simplificado
que se obtiene al agrupar los ceros
como se muestra en el mapa de la
derecha. De ahí se obtiene la siguiente
expresión
F = (w ∨ ¬y) ∧ (¬x ∨ ¬y ∨ z). Nota
como ¬y puede factorizarse. Esto se
debe a la intersección de grupos que
resultaron al tratar de maximizar la
cantidad de ceros de los grupos.
F
00 01
wx
yz
1011
00
01
11
10
1
1
1 1
1 1
0 0
0 0
01
1
1
1 1
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 64
65. Modelado analítico de circuitos lógicos combinacionales Representaciones canónicas de las funciones booleanas
Simplificación general por mapas de Karnaugh Casa abierta al tiempo
Expresión Explicación
¬y ∨ (w ∧ ¬x) ∨ (w ∧ z) suma de productos simplificada
¬y ∨ w ∧ (¬x ∨ ∧z) propiedad distributiva de la OR
(w ∨ ¬y) ∧ (¬x ∨ ¬y ∨ z) producto de sumas simplificado
¬y ∨ w ∧ (¬x ∨ ∧z) propiedad distributiva de la AND
Formas minimizadas de las expresiones simplificadas obtenidas mediante mapas de Karnaugh.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 65
66. Simulación de circuitos lógicos combinacionales
Contenido Casa abierta al tiempo
1 Introducción
2 Modelado analítico de circuitos lógicos combinacionales
3 Simulación de circuitos lógicos combinacionales
4 Bloques combinacionales
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 66
67. Simulación de circuitos lógicos combinacionales Contexto
Contenido Casa abierta al tiempo
1 Introducción
2 Modelado analítico de circuitos lógicos combinacionales
3 Simulación de circuitos lógicos combinacionales
Contexto
4 Bloques combinacionales
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 67
68. Simulación de circuitos lógicos combinacionales Contexto
Simulación Casa abierta al tiempo
Definición
Herramienta de experimentación que permite analizar fenómenos de
sistemas complicados, e.g. la evolución de las galaxias o el
funcionamiento de un procesador. Consiste en:
ejecutar un modelo computacional que representa el fenómeno que
se desea observar
analizar la salida de la ejecución
Lo anterior para aprender del sistema mediante la construcción de su
modelo y la observación de su operación3.
3
Paul Fishwick. What is simulation? http://www.cise.ufl.edu/~fishwick/introsim/node1.html, 1995. Accedido: 2016-06-14.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 68
69. Simulación de circuitos lógicos combinacionales Contexto
Circuito combinacional Casa abierta al tiempo
Definición
Circuito electrónico contruido
mediante compuertas lógicas cuya
característica esencial es que el valor
de las salidas únicamente depende del
valor de las entradas.
a b cin
Σ
cout
Sumador completo.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 69
70. Simulación de circuitos lógicos combinacionales Contexto
Simulación de circuitos combinacionales Casa abierta al tiempo
Definición
Técnica que consiste en crear un modelo de un
circuito combinacional mediante un lenguaje de
descripción de hardware (HDL, hardware
description language).
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 70
71. Simulación de circuitos lógicos combinacionales Contexto
Lenguaje de descripción de hardware Casa abierta al tiempo
Definición4
Lenguaje de alto nivel empleado para
representar un sistema digital, e.g. un
conmutador de red (switch), un
circuito integrado de aplicación
específica (ASIC, aplication specific
integrated circuit), una memoria, un
bloque combinacional o un biestable
(flip-flop)
Ejemplos de HDL
• VDHL
• Verilog
• SystemVerilog
• Handel-C
• MyHDL
• SystemC
4
Tala, D. K., «Verilog tutorial», [en línea] http://www.asic-world.com
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 71
72. Simulación de circuitos lógicos combinacionales Contexto
Verilog Casa abierta al tiempo
Definición5
Lenguaje de descripción de hardware diseñado para ser simple, intuitivo
y efectivo que incluye la posibilidad de ser verificado por simulación,
permite el análisis temporal de los circuitos y su síntesis. Su sintaxis es
muy similar a la de C/C++ o Java.
5
«IEEE Standard Verilog Hardware Description Language», IEEE Computer Society, 2001
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 72
73. Simulación de circuitos lógicos combinacionales Contexto
Síntesis Casa abierta al tiempo
Definición6
Es el proceso que consiste en traducir las instrucciones escritas en un
lenguaje de descripción de hardware a una netlist: una representación
abstracta del circuito hecha con compuertas básicas. La netlist puede
ser usada directamente para implementar un circuito lógico en un
dispositivo lógico programable (PLD) como un FPGA
6
Hwang. «Digital logic and microprocessor design with VHDL», Brooks/Cole, 2005.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 73
74. Simulación de circuitos lógicos combinacionales Contexto
Verilog Casa abierta al tiempo
Herramientas de simulación
• editor de código fuente visual
code
• compilador iverilog
• visualizador de señales gtkwave
Contraste con otras opciones
Ventajas:
software ligero y legal
interoperabilidad
permite el uso snippets
control de versiones
Desventajas:
no permite probar el código en
una tarjeta de desarrollo
el manejo de errores no es
gráfico
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 74
75. Simulación de circuitos lógicos combinacionales Contexto
Estructura general del código escrito en Verilog Casa abierta al tiempo
1 /* Author: Adan G. Medrano -Chavez
2 Description : A brief description
3 about the module */
4 `ifndef MODULE_A_V
5 `define MODULE_A_V
6 `include " simple_module .v"
7
8 module module_a(
9 in_a ,
10 in_b ,
11 out_x
12 );
13 input wire in_a , in_b;
14 output wire out_x;
15
16 // Hardware description comes here
17
18 endmodule
19
20 `endif
Explicación
• En las líneas 1-3 se menciona el
nombre del autor y una breve
descripción del módulo
• En las líneas 4, 5 se declaran las
directivas de preprocesamiento que
le indican al compilador que debe
compilar el módulo si no ha sido
previamente definido.
• La directiva ifndef se cierra con la
directiva endif de la línea 20
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 75
76. Simulación de circuitos lógicos combinacionales Contexto
Estructura general del código escrito en Verilog Casa abierta al tiempo
1 /* Author: Adan G. Medrano -Chavez
2 Description : A brief description
3 about the module */
4 `ifndef MODULE_A_V
5 `define MODULE_A_V
6 `include " simple_module .v"
7
8 module module_a(
9 in_a ,
10 in_b ,
11 out_x
12 );
13 input wire in_a , in_b;
14 output wire out_x;
15
16 // Hardware description comes here
17
18 endmodule
19
20 `endif
Explicación
• En la línea seis se incluye un
módulo simple
• Un módulo simple no requiere
otros módulos para ser descrito
• Un módulo compuesto se
describe mediante módulos
simples u otros módulos
compuestos
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 76
77. Simulación de circuitos lógicos combinacionales Contexto
Estructura general del código escrito en Verilog Casa abierta al tiempo
1 /* Author: Adan G. Medrano -Chavez
2 Description : A brief description
3 about the module */
4 `ifndef MODULE_A_V
5 `define MODULE_A_V
6 `include " simple_module .v"
7
8 module module_a(
9 in_a ,
10 in_b ,
11 out_x
12 );
13 input wire in_a , in_b;
14 output wire out_x;
15
16 // Hardware description comes here
17
18 endmodule
19
20 `endif
Explicación
• En las líneas 8-12 se declara un
módulo llamado module_a junto
con sus puertos de entrada in_a e
in_b y su puerto de salida out_b
• El nombre de los módulos y de los
puertos debe ser descriptivo
• La declaración de un módulo
termina con punto y coma
• En la línea 18 se indica el fin de la
descripción de un módulo
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 77
78. Simulación de circuitos lógicos combinacionales Contexto
Estructura general del código escrito en Verilog Casa abierta al tiempo
1 /* Author: Adan G. Medrano -Chavez
2 Description : A brief description
3 about the module */
4 `ifndef MODULE_A_V
5 `define MODULE_A_V
6 `include " simple_module .v"
7
8 module module_a(
9 in_a ,
10 in_b ,
11 out_x
12 );
13 input wire in_a , in_b;
14 output wire out_x;
15
16 // Hardware description comes here
17
18 endmodule
19
20 `endif
Explicación
• En las líneas 13, 14 se declara el
tipo y funcionamiento de los puertos
• El hardware se describe mediante
dos tipos de puertos: wire y reg
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 78
79. Simulación de circuitos lógicos combinacionales Contexto
Estructura general del código escrito en Verilog Casa abierta al tiempo
1 /* Author: Adan G. Medrano -Chavez
2 Description : A brief description
3 about the module */
4 `ifndef MODULE_A_V
5 `define MODULE_A_V
6 `include " simple_module .v"
7
8 module module_a(
9 in_a ,
10 in_b ,
11 out_x
12 );
13 input wire in_a , in_b;
14 output wire out_x;
15
16 // Hardware description comes here
17
18 endmodule
19
20 `endif
Explicación
En la línea 16 se muestra un
comentario que indica que el
hardware se describe a partir de ese
punto
Existen cuatro estrategias para
describir hardware:
estructural
flujo de datos
comportamiento
modular
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 79
80. Simulación de circuitos lógicos combinacionales Contexto
Descripción estructural Casa abierta al tiempo
Definición
Consiste en describir el hardware de
un sistema digital a través de
compuertas lógicas. Las compuertas
operan con variables tipo wire tanto
a la entrada como a la salida.
Lista de compuertas disponibles
• AND
• NAND
• OR
• NOR
• XOR
• XNOR
• NOT
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 80
81. Simulación de circuitos lógicos combinacionales Contexto
Descripción estructural Casa abierta al tiempo
Instanciación de compuertas
Para instanciar una compuerta se
necesita declarar:
1 tipo de la compuerta
2 nombre de la compuerta
3 lista entradas y salida
Ejemplos
Instanciación de una NOT:
not not_unit(out_0, in_0);
Instanciación de una AND:
and and_unit(out_0, in_0,
in_1);
Instanciación de una OR de tres
entradas:
or or_unit(out_0, in_0, in_1,
in_2);
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 81
82. Simulación de circuitos lógicos combinacionales Contexto
Descripción estructural Casa abierta al tiempo
Problema
Encuentra la tabla de verdad del
circuito lógico de la derecha y
después,mediante Verilog, descríbelo
instanciando las compuertas
necesarias.
a
b
sel
f
Multiplexor de dos entradas por una salida
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 82
83. Simulación de circuitos lógicos combinacionales Contexto
Descripción estructural Casa abierta al tiempo
sel a b f
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
Tabla de verdad de un multiplexor 2x1.
Funcionamiento del multiplexor
El multiplexor permite el paso de una
señal digital a cuando la variable
sel = 0. Si el valor de sel = 1,
entonces la función toma el valor de
b. En términos lógicos tenemos:
• sel = 0 =⇒ f = a
• sel = 1 =⇒ f = b
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 83
84. Simulación de circuitos lógicos combinacionales Contexto
Descripción estructural Casa abierta al tiempo
Solución
Partiendo de la estructura general de un
código en Verilog:
1 declarar el módulo mux2x1
2 definir sus puertos
3 Instanciar las cuatro compuertas
que se necesitan: dos AND, una
NOT y una OR
4 definir alambres internos: aquellos
que no son puertos e interconectan
internamente a las compuertas
5 conectar los alambres a las
compuertas según corresponda
a
b
sel
f
Multiplexor
Puertosdeentrada
Puertosdesalia
Alambres internos
Multiplexor de dos entradas por una salida
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 84
85. Simulación de circuitos lógicos combinacionales Contexto
Descripción estructural de un mux 2x1 Casa abierta al tiempo
1 module mux2x1(
2 a, // input a
3 b, // input b
4 sel , // signal selector
5 f // output
6 );
7 // Port definition
8 input wire a, b, sel;
9 output wire f;
10
11 wire not_sel , and_1 , and_2;
12
13 // Structural description
14 not not_gate_1(not_sel , sel);
15 and and_gate_1(and_1 , a, not_sel );
16 and and_gate_2(and_2 , b, sel);
17 or or_gate_1(f, and_1 , and_2 );
18
19 endmodule // mux2x1
Explicación
• El multiplexor junto con sus
puertos se declara entre las líneas
uno y seis
• El fin de la descripción del
módulo está en la línea 19
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 85
86. Simulación de circuitos lógicos combinacionales Contexto
Descripción estructural de un mux 2x1 Casa abierta al tiempo
1 module mux2x1(
2 a, // input a
3 b, // input b
4 sel , // signal selector
5 f // output
6 );
7 // Port definition
8 input wire a, b, sel;
9 output wire f;
10
11 wire not_sel , and_1 , and_2;
12
13 // Structural description
14 not not_gate_1(not_sel , sel);
15 and and_gate_1(and_1 , a, not_sel );
16 and and_gate_2(and_2 , b, sel);
17 or or_gate_1(f, and_1 , and_2 );
18
19 endmodule // mux2x1
Explicación
• Los tres puertos de entrada a, b
y sel se definen en la línea ocho
• El puerto de salida f se define en
la línea nueve
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 86
87. Simulación de circuitos lógicos combinacionales Contexto
Descripción estructural de un mux 2x1 Casa abierta al tiempo
1 module mux2x1(
2 a, // input a
3 b, // input b
4 sel , // signal selector
5 f // output
6 );
7 // Port definition
8 input wire a, b, sel;
9 output wire f;
10
11 wire not_sel , and_1 , and_2;
12
13 // Structural description
14 not not_gate_1(not_sel , sel);
15 and and_gate_1(and_1 , a, not_sel );
16 and and_gate_2(and_2 , b, sel);
17 or or_gate_1(f, and_1 , and_2 );
18
19 endmodule // mux2x1
Explicación
Los alambres internos del multiplexor
se declaran en la línea 12. En total hay
tres not_sel, and_1 y and_2. Nota
que la primera es la salida del negador
conectado a la entrada de una de las
dos AND que integran el circuito.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 87
88. Simulación de circuitos lógicos combinacionales Contexto
Descripción estructural de un mux 2x1 Casa abierta al tiempo
1 module mux2x1(
2 a, // input a
3 b, // input b
4 sel , // signal selector
5 f // output
6 );
7 // Port definition
8 input wire a, b, sel;
9 output wire f;
10
11 wire not_sel , and_1 , and_2;
12
13 // Structural description
14 not not_gate_1(not_sel , sel);
15 and and_gate_1(and_1 , a, not_sel );
16 and and_gate_2(and_2 , b, sel);
17 or or_gate_1(f, and_1 , and_2 );
18
19 endmodule // mux2x1
Explicación
Entre las líneas 14 y 17 se instancian
los componentes del circuito:
not_gate_1, and_gate_1,
and_gate_1 y or_gate_1. El primer
argumento que se da como entrada al
instanciar una compuerta es su salida,
enseguida bien sus entradas.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 88
89. Simulación de circuitos lógicos combinacionales Contexto
Descripción estructural Casa abierta al tiempo
Observación
Describir hardware empleando la
estrategia estructural puede resultar
engorroso si el circuito digital es muy
grande, e.g. el mostrado a la derecha
ALU 74181
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 89
90. Simulación de circuitos lógicos combinacionales Descripción por flujo de datos
Contenido Casa abierta al tiempo
1 Introducción
2 Modelado analítico de circuitos lógicos combinacionales
3 Simulación de circuitos lógicos combinacionales
Descripción por flujo de datos
4 Bloques combinacionales
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 90
91. Simulación de circuitos lógicos combinacionales Descripción por flujo de datos
Descripción por flujo de datos Casa abierta al tiempo
Definición
Estrategia que consiste en describir un
circuito digital mediante ecuaciones
booleanas y aritméticas. En el caso de
los circuitos combinacionales se
emplean alambres para representar las
variables. Toda ecuación debe
comenzar con a palabra reservada
assign.
Ejemplos
• assign sum = a + b;
• assign f = x & y;
• assign G = x ^(x >> 1);
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 91
92. Simulación de circuitos lógicos combinacionales Descripción por flujo de datos
Descripción de un mux 2x1 por flujo de datos Casa abierta al tiempo
Problema
Encuentra la ecuación booleana de f
y, después, escribe el código en
Verilog del multiplexor siguiendo la
estrategia de flujo de datos.
sel a b f
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
Tabla de verdad de un multiplexor 2x1.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 92
93. Simulación de circuitos lógicos combinacionales Descripción por flujo de datos
Descripción de un mux 2x1 por flujo de datos Casa abierta al tiempo
Solución
Usando mapas de Karnaugh es posible
encontrar la ecuación simplificada del
multiplexor es f = ¬sel ∧ a ∨ sel ∧ b.
En Verilog, dicha ecuación se escribe
como se muestra en el código de la
derecha.
1 module mux2x1(
2 a, // input a
3 b, // input b
4 sel , // signal selector
5 f // output
6 );
7 // Port definition
8 input wire a, b, sel;
9 output wire f;
10
11 // Dataflow description
12 assign f = ~sel & a | sel & b;
13
14 endmodule // mux2x1
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 93
94. Simulación de circuitos lógicos combinacionales Descripción por comportamiento
Contenido Casa abierta al tiempo
1 Introducción
2 Modelado analítico de circuitos lógicos combinacionales
3 Simulación de circuitos lógicos combinacionales
Descripción por comportamiento
4 Bloques combinacionales
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 94
95. Simulación de circuitos lógicos combinacionales Descripción por comportamiento
Descripción por comportamiento Casa abierta al tiempo
Definición
Estrategia de descripción de hardware
en la que el hardware se describe
empleando instrucciones de alto nivel
y los bloques de programación de la
programación estructurada, i.e. :
if, else if, else
case
while, for
Observación
La descripción de hardware por
comportamiento se hace dentro de un
bloque propio del lenguaje Verilog
llamado always
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 95
96. Simulación de circuitos lógicos combinacionales Descripción por comportamiento
Descripción de un multiplexor 2x1 por comportamiento Casa abierta al tiempo
1 module mux2x1(
2 a, // input a
3 b, // input b
4 sel , // signal selector
5 f // output
6 );
7 // Port definition
8 input wire a, b, sel;
9 output reg f;
10
11 // Behavioral description
12 always @(a or b or sel) begin
13 if (sel == 0)
14 f = a;
15 else
16 f = b;
17 end
18
19 endmodule // mux2x1
Explicación
• A diferencia de las estrategias
anteriores, el puerto de salida
debe ser tipo reg, no wire, la
razón se explicará en el tema de
circuitos secuenciales.
• Para describir un bloque
combinacional, enseguida de la
palabra always hay que declarar
la lista de sensibilidad, i.e. la lista
de entradas que hacen que las
salidas cambien
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 96
97. Simulación de circuitos lógicos combinacionales Decripción modular
Contenido Casa abierta al tiempo
1 Introducción
2 Modelado analítico de circuitos lógicos combinacionales
3 Simulación de circuitos lógicos combinacionales
Decripción modular
4 Bloques combinacionales
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 97
98. Simulación de circuitos lógicos combinacionales Decripción modular
Descripción modular Casa abierta al tiempo
Definición
Estrategia para describir un circuito
digital mediante módulos simples:
módulos descritos mediante alguna de
las estrategias anteriores. Los módulos
descritos mediante esta estrategia se
conocen como módulos compuestos.
Observación
Siguiendo esta estrategia, es necesario
usar la directiva de preprocesamiento
include para añadir los módulos que
describirán al módulo compuesto.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 98
99. Simulación de circuitos lógicos combinacionales Decripción modular
Descripción modular de un mux 4x1 Casa abierta al tiempo
a
b
c
d
y
sel0
sel1
0
1
0
1
0
1
mux0
mux2
mux1
o0
o1
1 `include " mux2x1_structural .v"
2
3 module mux4x1(a, b, c, d, sel , f);
4 // Port definition
5 input wire a, b, c, d;
6 input wire [1:0] sel;
7 output reg f;
8
9 // Internal wires
10 wire m_0 , m_1;
11
12 // Modular description
13 mux2x1 mux2x1_0(a, b, sel[0], mux_0 );
14 mux2x1 mux2x1_1(c, d, sel[0], mux_1 );
15 mux2x1 mux2x1_2(m_0 , m_1 , sel[1], f);
16
17 endmodule // mux4x1
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 99
100. Simulación de circuitos lógicos combinacionales Banco de prueba
Contenido Casa abierta al tiempo
1 Introducción
2 Modelado analítico de circuitos lógicos combinacionales
3 Simulación de circuitos lógicos combinacionales
Banco de prueba
4 Bloques combinacionales
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 100
101. Simulación de circuitos lógicos combinacionales Banco de prueba
Banco de prueba Casa abierta al tiempo
Definición
Módulo sin puertos de entrada ni de
salida que instancia otros módulos
para evaluar su funcionamiento. Los
valores de entrada del módulo a
evaluar provienen de variables tipo
reg; las salidas deben declararse
como alambres.
. . .in_0 in_1 in_2 in_n
Módulo a evaluar
Registros de entrada
Alambres de salida
f_0 f_1 f_2 f_3 f_m
. . .
Representación gráfica de un banco de pruebas
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 101
102. Simulación de circuitos lógicos combinacionales Banco de prueba
Banco de prueba Casa abierta al tiempo
Observación
Para evaluar un módulo se
desarrollará un programa de alto nivel
dentro de un bloque initial que
permite usar las estructuras for y
while. El objetivo del programa es
modificar el valor de las entradas para
observar la salida que corresponda.
1 `timescale 1ns /100 ps
2 `include "mux2x1.v"
3
4 module testbench;
5 reg a, b, sel;
6 wire f;
7 integer i;
8 mux2x1 mux2x1_u(a, b, sel , f);
9
10 initial begin
11 $dumpfile("mux2x1.vcd");
12 $dumpvars (0, testbench );
13 for (i = 0; i < 8; i = i + 1)
14 begin
15 {sel , a, b} = i;
16 #1;
17 end
18 $finish;
19 end
20 endmodule
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 102
103. Bloques combinacionales
Contenido Casa abierta al tiempo
1 Introducción
2 Modelado analítico de circuitos lógicos combinacionales
3 Simulación de circuitos lógicos combinacionales
4 Bloques combinacionales
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 103
104. Bloques combinacionales Multiplexor
Contenido Casa abierta al tiempo
1 Introducción
2 Modelado analítico de circuitos lógicos combinacionales
3 Simulación de circuitos lógicos combinacionales
4 Bloques combinacionales
Multiplexor
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 104
105. Bloques combinacionales Multiplexor
Multiplexor Casa abierta al tiempo
Definición
Bloque digital que tiene 2n entradas,
n selectores y una salida f . El selector
es un número binario que le indica al
módulo que señal de entrada pasará a
la salida.
F
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F S3
S2
S1
S0
Multiplexor de 16 entradas por una salida.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 105
106. Bloques combinacionales Multiplexor
Multiplexor Casa abierta al tiempo
Pregunta
¿Cuántas líneas de selección tiene un
multiplexor de 128 entradas?
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 106
107. Bloques combinacionales Multiplexor
Multiplexor Casa abierta al tiempo
Observación
En la práctica se necesitan
multiplexores del tamaño que la
aplicación requiera. Por ello, el
diseñador de circuitos lógicos necesita
poder describir hardware de manera
parametrizada. Verilog permite
describir módulos parametrizados
como el multiplexor de 2n entradas de
la derecha.
F
0
1
2
3
4
5
6
7
8
9
2n
-1
S
n
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 107
108. Bloques combinacionales Desmultiplexor
Contenido Casa abierta al tiempo
1 Introducción
2 Modelado analítico de circuitos lógicos combinacionales
3 Simulación de circuitos lógicos combinacionales
4 Bloques combinacionales
Desmultiplexor
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 108
109. Bloques combinacionales Desmultiplexor
Desmultiplexor Casa abierta al tiempo
Definición
Circuito combinacional de una
entrada, 2n salidas y n selectores,
donde n es un número binario que
indica a que salida se dirigirá la
entrada.
in
s0
s1 o0
o1
o2
o3
Desmultiplexor 1x4.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 109
110. Bloques combinacionales Desmultiplexor
Desmultiplexor Casa abierta al tiempo
datai n a1 a0 d3 d2 d1 d0
0 × × 0 0 0 0
1 0 0 0 0 0 1
1 0 1 0 0 1 0
1 1 0 0 1 0 0
1 1 1 1 0 0 0
in
s0
s1 o0
o1
o2
o3
Desmultiplexor 1x4.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 110
111. Bloques combinacionales Desmultiplexor
Desmultiplexor Casa abierta al tiempo
Usos del Desmultiplexor
Permite enviar una señal digital a uno
de 2n posibles destinos. La memorias
basadas en circuitos secuenciales los
usan los bits de un regisro en
particular. Esquemáticamente, se
representa como un multiplexor
invertido.
In
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
S3S2 S1S0
Desmultiplexor 1x16.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 111
112. Bloques combinacionales Descodificador
Contenido Casa abierta al tiempo
1 Introducción
2 Modelado analítico de circuitos lógicos combinacionales
3 Simulación de circuitos lógicos combinacionales
4 Bloques combinacionales
Descodificador
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 112
113. Bloques combinacionales Descodificador
Descodificador Casa abierta al tiempo
Definición
Circuito combinacional que tiene n
entradas de datos, un habilitador y 2n
salidas. Cuando el habilitador está en
alto, la entrada de datos, que puede
ser vista como un número binario de
n bits, indica qué bit de la salida tiene
que ser uno, e.g. , para la figura de la
derecha, si la entrada es igual a 10, la
salida dos valdrá uno y todas las
demás cero. Si el habilitador está en
bajo se tendrán ceros a la salida.
e
a0
a1 d0
d1
d2
d3
Descodificador 2x4
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 113
114. Bloques combinacionales Descodificador
Descodificador Casa abierta al tiempo
e a1 a0 d3 d2 d1 d0
0 × × 0 0 0 0
1 0 0 0 0 0 1
1 0 1 0 0 1 0
1 1 0 0 1 0 0
1 1 1 1 0 0 0
e
a0
a1 d0
d1
d2
d3
Descodificador 2x4
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 114
115. Bloques combinacionales Descodificador
Descodificador Casa abierta al tiempo
Uso del descodificador
Los descodificadores permiten
implementar cualquier otro circuito
combinacional. Además, este circuito
combinacional puede habilitar un solo
componente electrónico de 2n
disponibles, e.g. uno de los registros
que componen a una memoria
secuencial. Además, también es usado
en la construcción de memorias de
solo lectura.
e
a0
a1 d0
d1
d2
d3
Descodificador 2x4
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 115
116. Bloques combinacionales Descodificador
Descodificador Casa abierta al tiempo
Memorias ROM
Una memoria ROM es un dispositivo
que solo se escribe en el momento de
su fabricación y después solo puede
ser leída. Las memorias ROM se
emplean para almacenar los
programas de arranque de los
dispositivos de cómputo, para
almacenar las constantes de un
programa en un microcontrolador o
para guardar secuencias de
instrucciones, como las de un
videojuego. Cartucho del videojuego Mario Bros 3.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 116
117. Bloques combinacionales Descodificador
Descodificador Casa abierta al tiempo
Programas en ROM
Los programas no son más que
secuencias de cadenas de bits. La
Nintendo NES era una computadora
capaz de ejecutar programas similares
al de la izquierda. En una ROM, cada
instrucción se guarda en una
dirección. Para acceder a una
instrucción, basta con indicarle a la
memoria la dirección de la instrucción.
Cada instrucción le indica a la consola
una acción del videojuego, como
hacer que Mario salte.
Dir. Código
0 0 0 0 1 1 0 0 1
1 1 0 0 1 1 1 1 0
2 0 1 1 1 0 0 1 0
3 0 1 0 0 1 0 0 0
4 0 0 0 1 1 0 0 1
5 1 0 1 1 1 1 1 0
6 1 0 0 0 0 0 1 1
7 0 1 0 1 1 0 0 1
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 117
118. Bloques combinacionales Descodificador
Descodificador Casa abierta al tiempo
Diseño de una ROM
Por cada uno que haya en una
columna de código, conectar a la
entrada de una compuerta OR la
salida del descodificador que
corresponde a la dirección donde se
halla el uno, e.g. la columna del bit
menos significativo tiene unos en las
direcciones 0, 4, 6 y 7, entonces hay
que conectar las salidas 0, 4, 6 y 7 de
un descodificador a una compuerta
OR.
Dir. Código
0 0 0 0 1 1 0 0 1
1 1 0 0 1 1 1 1 0
2 0 1 1 1 0 0 1 0
3 0 1 0 0 1 0 0 0
4 0 0 0 1 1 0 0 1
5 1 0 1 1 1 1 1 0
6 1 0 0 0 0 0 1 1
7 0 1 0 1 1 0 0 1
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 118
119. Bloques combinacionales Descodificador
Descodificador Casa abierta al tiempo
a0
a1
a2
e
d0
d1
d2
d3
d4
d5
d6
d7
Memoria ROM basada en un descodificador 3x8.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 119
120. Bloques combinacionales Sumador
Contenido Casa abierta al tiempo
1 Introducción
2 Modelado analítico de circuitos lógicos combinacionales
3 Simulación de circuitos lógicos combinacionales
4 Bloques combinacionales
Sumador
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 120
121. Bloques combinacionales Sumador
Medio sumador Casa abierta al tiempo
Definición
Circuito combinacional que permite
realiza sumas entre cadenas de bits.
Se construye con compuertas XOR,
AND y OR. El sumador es uno de los
circuitos más importantes de un
procesador digital. Los sumadores se
construyen con un circuito sencillo
llamado medio sumador, los cuales
sirven para calcular la suma entre dos
bits.
x y cout Σ
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
Tabla de verdad de un medio sumador.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 121
122. Bloques combinacionales Sumador
Medio sumador Casa abierta al tiempo
Observación
De la tabla de verdad puede deducirse
directamente que la función de la
suma Σ es igual a la XOR entre las
entradas y que el acarreo de salida
cout es igual a la AND entre las
entradas. No obstante, este sumador
es insuficiente para para sumar n bits,
porque, en general, la suma implica
un acarreo a la entrada. ¿Cómo
conectamos los medios sumadores
para efectuar la operación
Σ = x + y + cin?
x y cout Σ
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
Tabla de verdad de un medio sumador.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 122
123. Bloques combinacionales Sumador
Sumador completo Casa abierta al tiempo
Definición
Circuito combinacional que tiene por
entradas tres bits que representan los
operandos x, y y el acarreo de
entrada cin de una suma. Por salida,
el circuito tiene el resultado de la
suma Σ, y el acarreo de salida.
a b cin
Σ
cout
Sumador completo.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 123
124. Bloques combinacionales Sumador
Sumador completo Casa abierta al tiempo
Observación
El sumador completo no permite
sumar números de n bits, i.e. números
de la forma a = {a0, a1, a2, . . . an} y
b = {b0, b1, b2, . . . bn}, donde ai y bi
son bits, ¿cómo conectamos los
sumadores completos para tener un
sumador de nbits
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 124
125. Bloques combinacionales Sumador
Sumador con propagación de acarreo Casa abierta al tiempo
Definición
Un sumador con propagación de acarreo es un circuito combinacional que recibe dos vectores
de n bits, a y b a los que les calcula la suma junto con su acarreo de salida. Este circuito tiene
n sumadores completos; uno por cada bit en los vectores de entrada.
fa3
a0
a1a2
a3
b0b1
b2
b3
s0
s1
s2
s3cout
cin
fa2
fa1
fa0c1
c2
c3
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 125
126. Bloques combinacionales Sumador
Sumador con propagación de acarreo Casa abierta al tiempo
Observación
El sumador con propagación de
acarreo permite sumar números de n
bits, pero no te permite restarlos.
Usar restadores completos resuelve el
problema, pero encarece el hardware
(ahora se tiene un sumador y un
restador), si solo queremos el sumador
¿cómo lo adaptamos para que
también realice restas. Pista:
complemento a dos i.e.
a − b = a + ¬b + 1.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 126
127. Bloques combinacionales Sumador
Sumador restador Casa abierta al tiempo
Definición
Circuito combinacional basado en el sumador con propagación de
acarreo que permite hacer restas ya que posee una etapa que calcula el
complemento a uno de un operando b usando compuertas XOR y suma
un uno b a través del acarreo de entrada del sumador completo menos
significativo, para así tener el complemento a dos de b i.e. ¬b + 1. De
esta manera, el acarreo de entrada del primer sumador completo se
vuelve una señal de control que indica si el circuito efectuará una suma
o una resta.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 127
128. Bloques combinacionales Sumador
Sumador restador Casa abierta al tiempo
fa3
a0
a1a2
a3
b0b1
b2
b3
s0
s1
s2
s3cout
a/s
fa2
fa1
fa0c1
c2
c3
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 128
129. Bloques combinacionales Generador de estatus
Contenido Casa abierta al tiempo
1 Introducción
2 Modelado analítico de circuitos lógicos combinacionales
3 Simulación de circuitos lógicos combinacionales
4 Bloques combinacionales
Generador de estatus
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 129
130. Bloques combinacionales Generador de estatus
Comparador Casa abierta al tiempo
Definición
Circuito combinacional que te indica
la relación entre dos números a y b,
i.e. si a < b o a = b o a > b.
Estrategia de diseño
Sean a y b vectores de 4 bits:
• a = b implica que todos los bits
de los vectores son iguales
• a > b implica que a partir de un
bit i se cumple que ai > bi y que
los bits que siguen son iguales
• a < b implica que a partir de un
bit i se cumple que ai < bi y que
los bits que siguen son iguales
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 130
131. Bloques combinacionales Generador de estatus
Comparador Casa abierta al tiempo
Ecuaciones booleanas
Suponiedo que el operador de la equivalencia es
• a = b =⇒ a3 b3 ∧ a2 b2 ∧ a1 b1 ∧ a0 b0
• a > b =⇒ a3 ∧ ¬b3 ∨ a3 b3 ∧ a2 ∧ ¬b2 ∨ a2 b2 ∧ a1 ∧ ¬b1 ∨ a1 b1 ∧ a0 ∧ ¬b0
• a < b =⇒ ¬a3 ∧ b3 ∨ a3 b3 ∧ ¬a2 ∧ b2 ∨ a2 b2 ∧ ¬a1 ∧ b1 ∨ a1 b1 ∧ ¬a0 ∧ b0
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 131
132. Bloques combinacionales Generador de estatus
Comparador Casa abierta al tiempo
a = b a > b a < b
a3 a2 a1 a0b0b1b2b3
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 132
133. Bloques combinacionales Generador de estatus
Comparador Casa abierta al tiempo
Observación
Las computadoras digitales generalmente trabajan con códigos en
complemento a dos para facilitar la resta. Desafortunadamente, el
módulo anterior no considera el signo de los números. Además, el
hardware del comparador resulta redundante porque las computadoras
digitales tienen sumadores, i.e. es posible comparar dos números a y b
si calculamos la diferencia entre ellos a − b ya que si el resultado es
cero, los números son iguales. La relación a > b y a < b también se
pueden deducir a partir del resultado.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 133
134. Bloques combinacionales Generador de estatus
Generador de bits de estatus Casa abierta al tiempo
Banderas de estatus
Son señales que arroja el generador de
bits de estatus para determinar la
relación entre dos números, en total
son cuatro señales:
Acarreo de salida (C)
Desbordamiento (V)
Signo (N)
Cero (Z)
Obtención las banderas
• C = cn, donde n es el número de
sumadores completos.
• V = cn ⊕ cn−1, i.e. la XOR entre
en acarreo de salida y el acarreo
de entrada del bit del signo.
• N es igual al bit más significativo
del resultado.
• Z es igual a la NOR entre todos
los bits del resultado.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 134
135. Bloques combinacionales Generador de estatus
Generador de bits de estatus Casa abierta al tiempo
Observación
Con base en el valor de las banderas es posible determinar la relación
entre dos números:
• Si se enciende la bandera Z al hacer a − b, entonces los números
son iguales, de lo contrario, son diferentes
• Si N = V, entonces a ≥ b, en caso contrario, i.e. N = V, entonces
a < b
• Si Z = 0 y N = V, entonces a > b, de lo contrario, i.e. Z = 1 o N
= V, entonces a ≤ b
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 135
136. Bloques combinacionales Desplazador
Contenido Casa abierta al tiempo
1 Introducción
2 Modelado analítico de circuitos lógicos combinacionales
3 Simulación de circuitos lógicos combinacionales
4 Bloques combinacionales
Desplazador
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 136
137. Bloques combinacionales Desplazador
Desplazador Casa abierta al tiempo
Definición
Un desplazador (shifter) es un
circuito combinacional que tiene una
entrada de datos de 2n bits, un
contador de desplazamiento de n bits,
un controlador de dirección un bit, y
una salida de datos de n bits. Cuando
el controlador de dirección vale cero,
el circuito desplazará los datos de
entrada a la izquierda, de lo contrario,
lo hará a la derecha. El dato de
entrada se desplazará tantas
posiciones como el contador de
desplazamiento indique.
Ejemplo
Si el dato de entrada es 0x00FF, el
contador tiene un valor de ocho, y el
controlador de dirección vale cero,
entonces tu dato de salida será
0xFF00 porque tu dato de entrada se
habrá desplazado ocho posiciones a la
izquierda. Aunque los datos estén en
hexadecimal, los circuitos trabajan en
binario.
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 137
138. Bloques combinacionales Unidad aritmético-lógica
Contenido Casa abierta al tiempo
1 Introducción
2 Modelado analítico de circuitos lógicos combinacionales
3 Simulación de circuitos lógicos combinacionales
4 Bloques combinacionales
Unidad aritmético-lógica
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 138
139. Bloques combinacionales Unidad aritmético-lógica
Unidad aritmético-lógica Casa abierta al tiempo
Definición
Circuito combinacional que recibe un
código a la entrada de n bits para
aplicarle a dos números la operación
asociada al código. Se compone de un
sumador, un desplazador, una unidad
lógica y un generador de bits de
estatus.
Observación
La ALU se puede describir de manera
modular usando los bloques de las
secciones pasads, pero es más sencillo
hacer por comportamiento
Universidad Autónoma Metropolitana Adán G. Medrano-Chávez 139