SlideShare una empresa de Scribd logo
1 de 139
Descargar para leer sin conexión
Universidad Autónoma Metropolitana
Diseño lógico
Tema: Circuitos combinacionales
Profesor:
Adán G. Medrano Chávez
agmc@azc.uam.mx
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

Más contenido relacionado

La actualidad más candente

⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS DIGITALES 1, 1er Parcial (2021 PAO1)
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS DIGITALES 1, 1er Parcial (2021 PAO1)⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS DIGITALES 1, 1er Parcial (2021 PAO1)
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS DIGITALES 1, 1er Parcial (2021 PAO1)Victor Asanza
 
Ingeniería eléctrica y electrónica
Ingeniería eléctrica y electrónicaIngeniería eléctrica y electrónica
Ingeniería eléctrica y electrónicaMaestros Online
 
Universidad nacional autónoma de méxico cibernetica
Universidad nacional autónoma de méxico ciberneticaUniversidad nacional autónoma de méxico cibernetica
Universidad nacional autónoma de méxico ciberneticaYao Sanchez Quezada
 
Electrónica digital: Problemas de lógica digital
Electrónica digital: Problemas de lógica digitalElectrónica digital: Problemas de lógica digital
Electrónica digital: Problemas de lógica digitalSANTIAGO PABLO ALBERTO
 
6 mef
6 mef6 mef
6 mefneghy
 

La actualidad más candente (6)

⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS DIGITALES 1, 1er Parcial (2021 PAO1)
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS DIGITALES 1, 1er Parcial (2021 PAO1)⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS DIGITALES 1, 1er Parcial (2021 PAO1)
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS DIGITALES 1, 1er Parcial (2021 PAO1)
 
Ingeniería eléctrica y electrónica
Ingeniería eléctrica y electrónicaIngeniería eléctrica y electrónica
Ingeniería eléctrica y electrónica
 
Universidad nacional autónoma de méxico cibernetica
Universidad nacional autónoma de méxico ciberneticaUniversidad nacional autónoma de méxico cibernetica
Universidad nacional autónoma de méxico cibernetica
 
García joel david
García joel davidGarcía joel david
García joel david
 
Electrónica digital: Problemas de lógica digital
Electrónica digital: Problemas de lógica digitalElectrónica digital: Problemas de lógica digital
Electrónica digital: Problemas de lógica digital
 
6 mef
6 mef6 mef
6 mef
 

Similar a Combinational.logic

Circuitos combinacionales
Circuitos combinacionalesCircuitos combinacionales
Circuitos combinacionalesElmer Mendoza
 
⭐⭐⭐⭐⭐ PRÁCTICA: ANÁLISIS DE CIRCUITOS COMBINATORIALES
⭐⭐⭐⭐⭐ PRÁCTICA: ANÁLISIS DE CIRCUITOS COMBINATORIALES⭐⭐⭐⭐⭐ PRÁCTICA: ANÁLISIS DE CIRCUITOS COMBINATORIALES
⭐⭐⭐⭐⭐ PRÁCTICA: ANÁLISIS DE CIRCUITOS COMBINATORIALESVictor Asanza
 
Pelandintecno electronica digital_2016_boletin
Pelandintecno  electronica digital_2016_boletinPelandintecno  electronica digital_2016_boletin
Pelandintecno electronica digital_2016_boletinIsabelMartnezHernnde1
 
Unidad Arítmetica Lógica (ALU)
Unidad Arítmetica Lógica (ALU)Unidad Arítmetica Lógica (ALU)
Unidad Arítmetica Lógica (ALU)David Ruiz
 
Presentación de Microelectrónica - Grupo 18
Presentación de Microelectrónica - Grupo 18Presentación de Microelectrónica - Grupo 18
Presentación de Microelectrónica - Grupo 18Jorge Microelectrónica
 
Resolución de ejercicios compuertas lógicas
Resolución de ejercicios compuertas lógicasResolución de ejercicios compuertas lógicas
Resolución de ejercicios compuertas lógicasCarlos Gascón
 
02 comps boole_09a - copia
02 comps boole_09a - copia02 comps boole_09a - copia
02 comps boole_09a - copiajesus andres
 
02 comps boole_09a
02 comps boole_09a02 comps boole_09a
02 comps boole_09ajesus andres
 
Presentación de la Fase 2 de Microelectrónica - Grupo 18
Presentación de la Fase 2 de Microelectrónica - Grupo 18Presentación de la Fase 2 de Microelectrónica - Grupo 18
Presentación de la Fase 2 de Microelectrónica - Grupo 18Jorge Microelectrónica
 
Electrónica digital: Análisis de síntesis de circuitos secuenciales
Electrónica digital: Análisis de síntesis de circuitos secuencialesElectrónica digital: Análisis de síntesis de circuitos secuenciales
Electrónica digital: Análisis de síntesis de circuitos secuencialesSANTIAGO PABLO ALBERTO
 
Circuitos combinatorios
Circuitos combinatoriosCircuitos combinatorios
Circuitos combinatorioskeilavegas
 
Electrónica digital: Tema 10 análisis y síntesis: introducción a los sistemas...
Electrónica digital: Tema 10 análisis y síntesis: introducción a los sistemas...Electrónica digital: Tema 10 análisis y síntesis: introducción a los sistemas...
Electrónica digital: Tema 10 análisis y síntesis: introducción a los sistemas...SANTIAGO PABLO ALBERTO
 

Similar a Combinational.logic (20)

Circuitos combinacionales
Circuitos combinacionalesCircuitos combinacionales
Circuitos combinacionales
 
Compuertas lógicas
Compuertas lógicasCompuertas lógicas
Compuertas lógicas
 
Compuertas logicas
Compuertas logicasCompuertas logicas
Compuertas logicas
 
⭐⭐⭐⭐⭐ PRÁCTICA: ANÁLISIS DE CIRCUITOS COMBINATORIALES
⭐⭐⭐⭐⭐ PRÁCTICA: ANÁLISIS DE CIRCUITOS COMBINATORIALES⭐⭐⭐⭐⭐ PRÁCTICA: ANÁLISIS DE CIRCUITOS COMBINATORIALES
⭐⭐⭐⭐⭐ PRÁCTICA: ANÁLISIS DE CIRCUITOS COMBINATORIALES
 
Pelandintecno electronica digital_2016_boletin
Pelandintecno  electronica digital_2016_boletinPelandintecno  electronica digital_2016_boletin
Pelandintecno electronica digital_2016_boletin
 
Unidad Arítmetica Lógica (ALU)
Unidad Arítmetica Lógica (ALU)Unidad Arítmetica Lógica (ALU)
Unidad Arítmetica Lógica (ALU)
 
Metodo matematico
Metodo matematicoMetodo matematico
Metodo matematico
 
Presentación de Microelectrónica - Grupo 18
Presentación de Microelectrónica - Grupo 18Presentación de Microelectrónica - Grupo 18
Presentación de Microelectrónica - Grupo 18
 
Tarea miii 01_2015
Tarea miii 01_2015Tarea miii 01_2015
Tarea miii 01_2015
 
Resolución de ejercicios compuertas lógicas
Resolución de ejercicios compuertas lógicasResolución de ejercicios compuertas lógicas
Resolución de ejercicios compuertas lógicas
 
02 comps boole_09a - copia
02 comps boole_09a - copia02 comps boole_09a - copia
02 comps boole_09a - copia
 
02 comps boole_09a
02 comps boole_09a02 comps boole_09a
02 comps boole_09a
 
Ejercicios de diseño digital
Ejercicios de diseño digitalEjercicios de diseño digital
Ejercicios de diseño digital
 
Clase sisli 11
Clase sisli 11Clase sisli 11
Clase sisli 11
 
Intro computacion cuantica_seva
Intro computacion cuantica_sevaIntro computacion cuantica_seva
Intro computacion cuantica_seva
 
Presentación de la Fase 2 de Microelectrónica - Grupo 18
Presentación de la Fase 2 de Microelectrónica - Grupo 18Presentación de la Fase 2 de Microelectrónica - Grupo 18
Presentación de la Fase 2 de Microelectrónica - Grupo 18
 
Electrónica digital: Análisis de síntesis de circuitos secuenciales
Electrónica digital: Análisis de síntesis de circuitos secuencialesElectrónica digital: Análisis de síntesis de circuitos secuenciales
Electrónica digital: Análisis de síntesis de circuitos secuenciales
 
Circuitos combinatorios
Circuitos combinatoriosCircuitos combinatorios
Circuitos combinatorios
 
Electrónica digital: Tema 10 análisis y síntesis: introducción a los sistemas...
Electrónica digital: Tema 10 análisis y síntesis: introducción a los sistemas...Electrónica digital: Tema 10 análisis y síntesis: introducción a los sistemas...
Electrónica digital: Tema 10 análisis y síntesis: introducción a los sistemas...
 
Buck converter ecuaciones dinamicas
Buck converter ecuaciones dinamicasBuck converter ecuaciones dinamicas
Buck converter ecuaciones dinamicas
 

Más de UAM AZC

Ecuacion de Schoringer_FisicaModerna.pptx
Ecuacion de Schoringer_FisicaModerna.pptxEcuacion de Schoringer_FisicaModerna.pptx
Ecuacion de Schoringer_FisicaModerna.pptxUAM AZC
 
Tarea2. brandon moreno. mapi
Tarea2. brandon moreno. mapiTarea2. brandon moreno. mapi
Tarea2. brandon moreno. mapiUAM AZC
 
Tarea1. mapi. brandon moreno
Tarea1. mapi. brandon morenoTarea1. mapi. brandon moreno
Tarea1. mapi. brandon morenoUAM AZC
 
FORMULARIO DE TRANSFERENCIA DE CALOR
FORMULARIO DE TRANSFERENCIA DE CALORFORMULARIO DE TRANSFERENCIA DE CALOR
FORMULARIO DE TRANSFERENCIA DE CALORUAM AZC
 
Datarepresentation
DatarepresentationDatarepresentation
DatarepresentationUAM AZC
 
Motivation
MotivationMotivation
MotivationUAM AZC
 
Sequential
SequentialSequential
SequentialUAM AZC
 
ingeniería de los materiales
ingeniería de los materiales ingeniería de los materiales
ingeniería de los materiales UAM AZC
 
2 ceramicos
2 ceramicos2 ceramicos
2 ceramicosUAM AZC
 
3 polímeros
3 polímeros3 polímeros
3 polímerosUAM AZC
 
1 manufactura de metales
1 manufactura de metales1 manufactura de metales
1 manufactura de metalesUAM AZC
 
4 materialescompuestos
4 materialescompuestos4 materialescompuestos
4 materialescompuestosUAM AZC
 
Segunda clase
Segunda claseSegunda clase
Segunda claseUAM AZC
 
presentacion de aceros, materiales en ingeniería
presentacion de aceros, materiales en ingeniería presentacion de aceros, materiales en ingeniería
presentacion de aceros, materiales en ingeniería UAM AZC
 
Diagramas, ingeniería de los materiales
Diagramas, ingeniería de los materiales Diagramas, ingeniería de los materiales
Diagramas, ingeniería de los materiales UAM AZC
 
Leithold
LeitholdLeithold
LeitholdUAM AZC
 
Resendiz el rompecabezas_de_la_ingenieria_vii_v3
Resendiz el rompecabezas_de_la_ingenieria_vii_v3Resendiz el rompecabezas_de_la_ingenieria_vii_v3
Resendiz el rompecabezas_de_la_ingenieria_vii_v3UAM AZC
 
Proceso de diseño de la ingeniería
Proceso de  diseño de la ingenieríaProceso de  diseño de la ingeniería
Proceso de diseño de la ingenieríaUAM AZC
 
Preguntas generadoras la_ing_y_sus_metodos
Preguntas generadoras la_ing_y_sus_metodosPreguntas generadoras la_ing_y_sus_metodos
Preguntas generadoras la_ing_y_sus_metodosUAM AZC
 
La ing y_sus_metodos
La ing y_sus_metodosLa ing y_sus_metodos
La ing y_sus_metodosUAM AZC
 

Más de UAM AZC (20)

Ecuacion de Schoringer_FisicaModerna.pptx
Ecuacion de Schoringer_FisicaModerna.pptxEcuacion de Schoringer_FisicaModerna.pptx
Ecuacion de Schoringer_FisicaModerna.pptx
 
Tarea2. brandon moreno. mapi
Tarea2. brandon moreno. mapiTarea2. brandon moreno. mapi
Tarea2. brandon moreno. mapi
 
Tarea1. mapi. brandon moreno
Tarea1. mapi. brandon morenoTarea1. mapi. brandon moreno
Tarea1. mapi. brandon moreno
 
FORMULARIO DE TRANSFERENCIA DE CALOR
FORMULARIO DE TRANSFERENCIA DE CALORFORMULARIO DE TRANSFERENCIA DE CALOR
FORMULARIO DE TRANSFERENCIA DE CALOR
 
Datarepresentation
DatarepresentationDatarepresentation
Datarepresentation
 
Motivation
MotivationMotivation
Motivation
 
Sequential
SequentialSequential
Sequential
 
ingeniería de los materiales
ingeniería de los materiales ingeniería de los materiales
ingeniería de los materiales
 
2 ceramicos
2 ceramicos2 ceramicos
2 ceramicos
 
3 polímeros
3 polímeros3 polímeros
3 polímeros
 
1 manufactura de metales
1 manufactura de metales1 manufactura de metales
1 manufactura de metales
 
4 materialescompuestos
4 materialescompuestos4 materialescompuestos
4 materialescompuestos
 
Segunda clase
Segunda claseSegunda clase
Segunda clase
 
presentacion de aceros, materiales en ingeniería
presentacion de aceros, materiales en ingeniería presentacion de aceros, materiales en ingeniería
presentacion de aceros, materiales en ingeniería
 
Diagramas, ingeniería de los materiales
Diagramas, ingeniería de los materiales Diagramas, ingeniería de los materiales
Diagramas, ingeniería de los materiales
 
Leithold
LeitholdLeithold
Leithold
 
Resendiz el rompecabezas_de_la_ingenieria_vii_v3
Resendiz el rompecabezas_de_la_ingenieria_vii_v3Resendiz el rompecabezas_de_la_ingenieria_vii_v3
Resendiz el rompecabezas_de_la_ingenieria_vii_v3
 
Proceso de diseño de la ingeniería
Proceso de  diseño de la ingenieríaProceso de  diseño de la ingeniería
Proceso de diseño de la ingeniería
 
Preguntas generadoras la_ing_y_sus_metodos
Preguntas generadoras la_ing_y_sus_metodosPreguntas generadoras la_ing_y_sus_metodos
Preguntas generadoras la_ing_y_sus_metodos
 
La ing y_sus_metodos
La ing y_sus_metodosLa ing y_sus_metodos
La ing y_sus_metodos
 

Último

Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfMikkaelNicolae
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptxGARCIARAMIREZCESAR
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptxguillermosantana15
 
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENSMANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENSLuisLobatoingaruca
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones025ca20
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfMirthaFernandez12
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfMIGUELANGELCONDORIMA4
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfDanielaVelasquez553560
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptEduardoCorado
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdfEdwinAlexanderSnchez2
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 

Último (20)

Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
 
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENSMANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdf
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.ppt
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 

Combinational.logic

  • 1. Universidad Autónoma Metropolitana Diseño lógico Tema: Circuitos combinacionales Profesor: Adán G. Medrano Chávez agmc@azc.uam.mx
  • 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