Compuertas lógicas y diseño de circuitos lógicos

Anuncio
Unidad
Compuertas lógicas y
diseño de circuitos
lógicos
Introducción
Los circuitos digitales binarios o circuitos lógicos se encuentran
diseñados para operar solamente con dos estados diferentes, claramente
diferenciados entre sí. Desde el punto de vista tecnológico es mucho más simple
y confiable operar de esta forma.
Dado que las señales de entrada y las señales de salida de un circuito
digital sólo pueden presentar uno de dos estados posibles, dichas señales son
susceptibles de ser representadas matemáticamente mediante una variable
lógica y por lo tanto, utilizar el álgebra booleana como herramienta matemática
al describir la relación entre las entradas y salidas del circuito. Otra herramienta
para describir el funcionamiento de un circuito digital es la tabla de verdad, que
se utiliza para mostrar los valores de salida que el circuito debe lograr para cada
combinación de valores de las entradas.
En cuanto a la implementación, describiremos el funcionamiento de las
compuertas lógicas, que son circuitos electrónicos que realizan operaciones
lógicas simples. Las compuertas lógicas constituyen los bloques funcionales
básicos para la construcción de circuitos digitales más complejos.
Debe tenerse en cuenta que en forma estricta el término “digital” no
implica necesariamente que sea “binario”. Sin embargo, nos ocuparemos
únicamente de sistemas digitales binarios y por tal razón tomaremos ambos
términos como sinónimos durante el desarrollo de los temas que se exponen a
partir de esta unidad.
Circuitos digitales
Figura 3.1 Diagrama en bloques
de un circuito lógico digital de n
señales de entrada y m señales
de salida.
La Figura 3.1 muestra el diagrama en bloques de un circuito digital
genérico que de acuerdo a los valores de n señales de entrada produce los
valores de m señales de salida.
El funcionamiento del circuito digital consiste en generar, a partir de las
señales de entrada, las señales de salida cuyos valores cumplan las relaciones
planteadas como objetivo del circuito.
Debido a que las señales de entrada y de salida de los circuitos digitales
son señales que sólo pueden presentar dos valores distintos, se les denomina en
forma general señales lógicas y por extensión, los circuitos digitales se conocen
también como circuitos lógicos.
51
Representación de valores binarios
0
1
No
Si
Falso
Verdadero
Deshabilitado
Habilitado
Abierto
Cerrado
Apagado
Encendido
Voltaje alto
Voltaje bajo
Tabla 3.1 Representación de
valores binarios mediante los
valores lógicos 0 y 1.
Cualquier sistema cuyo funcionamiento se encuentre basado en señales
que adoptan solamente dos estados posibles puede ser descrito mediante
variables binarias. A su vez, los valores que adoptan dichas variables binarias se
pueden designar con distintos nombres, de acuerdo al tipo de sistema. Por
ejemplo, al utilizar una variable binaria para describir el funcionamiento de una
lámpara nos referiremos a los valores que toma la variable binaria con los
términos “encendido-apagado”, ya que describen en forma coherente el estado
de la lámpara. Otros sistemas utilizan otros nombres para designar los valores
del estado, tales como abierto-cerrado, verdadero-falso, conduce-no conduce,
activado-desactivado, etc. Como veremos a continuación, para simplificar esta
diversidad se define una forma de representación con valores lógicos
convencionales que permiten describir los estados de cualquier señal, variable o
sistema.
Por otra parte, los sistemas digitales se implementan con circuitos
electrónicos, de manera tal que dichos circuitos deben utilizar una forma de
representar eléctricamente las señales lógicas mediante niveles de tensión.
Otra forma manera de representar las señales lógicas es mediante
gráficas, que utilizaremos principalmente para describir la evolución temporal,
es decir, los cambios que presenta una señal lógica a lo largo del tiempo y sus
relaciones con otras señales lógicas del sistema.
Representación de valores binarios mediante valores
lógicos
En el estudio de los circuitos digitales se utiliza la representación de
valores binarios mediante valores lógicos, para simplificar la descripción de sus
señales de entrada y salida. Esta representación consiste en asociar en forma
convencional el 0 con uno de los valores binarios y el 1 con el otro valor.
Cuando se utilizan con este fin, estos símbolos se denominan 0 lógico y 1
lógico, respectivamente. La Tabla 3.1 ejemplifica algunos casos comunes.
Ejemplo
Para apreciar en forma práctica el uso de valores lógicos, consideremos nuevamente el funcionamiento
de una linterna. En la Figura 3.2 se muestra el circuito formado por una batería que suministra un valor
de tensión Vcc y una llave o interruptor que al accionarse hacia la posición A ó B, controla el encendido
de la lámpara, representada por la resistencia R.
Figura 3.2 Circuito de una linterna eléctrica
Como vimos anteriormente, cuando la llave se encuentra en la posición B, -llave abierta- la lámpara está
apagada y el valor de tensión en el punto A es cero volts, ya que no hay caída de tensión en la resistencia
R. Al accionar la llave hacia la posición A –llave cerrada-, la lámpara se enciende y el valor de tensión
en el punto A pasa a ser +Vcc, ya que queda conectado al borne positivo de la fuente de alimentación.
52
Ejemplo (continuación)
En este sencillo ejemplo, la posición de la llave –variable de entrada- es lo que define la emisión de luz
en la lámpara –variable de salida- La representación de los valores de la variable de entrada mediante
una variable lógica x, permite evaluar el estado de la variable de salida, f(x). El uso de los valores lógicos
0 y 1 describe la relación entre la entrada y la salida con la misma representación, como se resume en
Tabla 3.2
ENTRADA
(Estado de la llave)
SALIDA
(Estado de la
lámpara)
ENTRADA
x
SALIDA
f(x)
Abierta
Apagada
0
0
Cerrada
Encendida
1
1
Tabla 3.2 Representación del estado de la llave y de la lámpara mediante valores lógicos.
Representación de valores binarios mediante niveles de
tensión eléctrica
La asignación de los niveles de
tensión para representar los
valores lógicos es convencional.
Utilizar un valor de tensión BAJO
para el 0 lógico y un valor de
tensión ALTO para el 1 lógico,
resulta más natural y se
denomina lógica positiva. La
asignación opuesta, conocida
como lógica negativa, consiste
en utilizar un valor de tensión
BAJO para el 1 lógico y un valor
de tensión ALTO para el 0 lógico.
En electrónica digital, los valores binarios se representan eléctricamente
mediante dos niveles de tensión distintos, que permita diferenciar fácilmente un
valor de otro. En primer lugar, a los valores binarios se les asigna los valores
lógicos 0 y 1. Luego se utiliza un nivel de tensión BAJO para representar el
valor lógico 0 y un nivel de tensión ALTO para representar el valor lógico 1.
Debido a esta asociación con los valores lógicos, los niveles ALTO y BAJO se
denominan niveles lógicos de tensión.
Es decir que, en los circuitos digitales electrónicos, las señales de entrada
y de salida deben tomar los valores de tensión predefinidos que sirven para
representar el 0 lógico y el 1 lógico. Por ejemplo, un valor de voltaje de 0 V
podría representar el 0 lógico y +5 V podría representar el 1 lógico.
Generación eléctrica de una señal digital
Para representar eléctricamente una señal digital se necesita un
dispositivo cuyo funcionamiento permita generar dos valores de tensión
distintos. En términos de niveles lógicos nos referimos a estos valores de
tensión como ALTO y BAJO, independientemente del valor de tensión en sí.
Una forma simple de generar estos valores distintos es mediante una
modificación del circuito divisor de tensión en el cual se reemplaza una de las
resistencias por una llave o interruptor. Según se reemplace una u otra
resistencia, se consigue una configuración de resistencia de pull up o resistencia
de pull down.
La Figura 3.3b muestra la configuración de resistencia de pull up.
Observe que cuando la llave L se encuentra cerrada, Vs = 0V y cuando se
encuentra abierta, la tensión de salida es Vs = Vcc. Por esta característica la
resistencia Rt se denomina resistencia de pull up, porque “levanta” o “tira hacia
arriba” el valor de la tensión de salida Vs cuando se abre la llave L.
La Figura 3.3c muestra la configuración de resistencia de pull down. En
este circuito, la llave L en posición cerrado produce Vs = Vcc (nivel ALTO). La
llave L en posición abierto hace que Vs = 0 V (nivel BAJO). Por esta razón, la
resistencia Rb se denomina resistencia de pull down, porque es la que “tira
hacia abajo” el valor de la tensión de salida Vs cuando se abre la llave L.
53
Figura 3.3 Generación de una señal digital mediante circuitos con llave y resistencia de pull up o de pull down.
Como los circuitos en configuración de pull up y pull down permiten
obtener dos estados marcadamente diferenciados, estos circuitos también se
denominan como circuitos generadores de un bit.
Circuitos con pulsadores
Los circuitos de pull up y pull down de la Figura 3.3 presentan dos estados “de reposo”, dado que la
llave L puede quedar en cualquiera de las posiciones por tiempo indeterminado, ya sea abierto o cerrado.
Para cambiar la llave de una posición a otra se requiere siempre una acción mecánica externa, pero
cuando la acción mecánica desaparece, la llave queda en la posición a la cual fue cambiada y no
modifica ese estado si no se actúa nuevamente sobre ella.
Un dispositivo que cumple una función similar a la llave o interruptor es el pulsador. Un pulsador
funciona como un interruptor eléctrico, pero presenta una posición de reposo única, de manera tal que al
accionar el pulsador, el dispositivo cambia de posición al igual que la llave, pero al desaparecer la acción
mecánica, el pulsador retorna por sí mismo a su posición anterior (posición normal o de reposo). Para
ello, el pulsador contiene un muelle o resorte que es comprimido por la fuerza mecánica que actúa sobre
él para sacarlo de su posición normal. Al cesar la acción externa, el muelle o resorte desplaza el contacto
hacia su posición de reposo. Ejemplos cotidianos de este tipo de dispositivo son el pulsador de timbre
comúnmente instalado en la entrada de las viviendas y las teclas de dispositivos digitales tales como
calculadoras, controles remotos, teléfonos celulares, computadoras, etc. Según su posición de reposo, un
pulsador puede ser normalmente cerrado (NC) o normalmente abierto (NA). En la Figura 3.4 se
muestran los símbolos y funcionamiento de ambos tipos.
La Figura 3.5 muestra como ejemplo un circuito con resistencia de pull up y un pulsador normalmente
abierto. Cuando se acciona el pulsador, éste cambia de su posición normal (abierto) a posición cerrado y
al desaparecer la fuerza de actuación, el pulsador retorna a su posición normal. Los valores de Vs para
cada una de las posiciones del pulsador se deducen al igual que para el caso del circuito con llave, ya que
eléctricamente tienen el mismo comportamiento.
54
Circuitos con pulsadores (continuación)
Figura 3.4 Símbolos y funcionamiento de los tipos de pulsadores
Figura 3.5 Circuito de resistencia de pull up con un
pulsador NA
Intervalos de tensión de niveles lógicos
Figura 3.6 Conexión de una carga a
la salida de un circuito con
resistencia de pull up. Circulación de
corriente en nivel ALTO.
Las configuraciones con resistencia de pull up o de pull down permiten
obtener los niveles de tensión ALTO y BAJO con valores bien diferenciados,
como se muestra en la Figura 3.3. Sin embargo, los valores de salida Vs
descritos ahí corresponden a los valores que presentarían tales circuitos en
vacío. Normalmente la salida de un circuito o dispositivo electrónico digital no
permanecerá en vacío, sino que será utilizada para manejar la entrada de otro
dispositivo, es decir, tendrá un funcionamiento en estado de carga. Mostraremos
a continuación cómo la carga y la circulación de corriente en el punto de
interconexión puede modificar los valores ALTO y BAJO
Considere, por ejemplo, el circuito con resistencia de pull up de la Figura
3.6 al cual se le ha conectado como carga un indicador luminoso compuesto por
la asociación serie de una resistencia R1 y un diodo led D1. Esta asociación
serie se conecta entre la salida Vs del circuito y masa. Con el circuito en vacío,
al colocar la llave L en posición cerrado el circuito genera el nivel BAJO (Vs =
0V) y con L en la posición abierto el circuito genera el nivel ALTO (Vs = Vcc).
Con el circuito cargado, la llave L en la posición cerrado genera Vs = 0V, igual
que cuando el circuito esta en vacío. Pero al colocar la llave en posición abierto,
existe una derivación de corriente I hacia la carga, y tenemos que:
=
55
− .
Es posible atenuar en parte el
efecto de los factores que
provocan variaciones en los
valores de tensión presentes en
un circuito agregando mejoras al
diseño y utilizando componentes
de mejor calidad. Sin embargo,
tales factores son inevitables.
Actualmente la fabricación de la
mayoría de los circuitos
integrados se basa en tecnología
CMOS.
Este valor es menor al que entrega como salida el circuito en vacío. O sea
que, con el circuito cargado, el nivel ALTO no será Vcc, sino un valor menor,
debido a la caída de tensión en Rt. Esta caída de tensión depende del valor de la
resistencia de pull up y de la intensidad de la corriente I que consume la carga.
Mientras el valor de Vs no descienda demasiado por debajo de Vcc, seguirá
siendo útil para representar un nivel ALTO.
Por otra parte, en la práctica, los valores de tensión eléctrica presentes en
un circuito cualquiera pueden sufrir variaciones debido a factores tales como el
ruido eléctrico, variación de valores nominales de los componentes, variaciones
debido a cambios de temperatura, etc.
En resumen, el estado de carga del circuito y las fluctuaciones de tensión
que presentan los circuitos reales pueden afectar el valor de tensión de los
niveles ALTO y BAJO. Por esta razón, el 0 y el 1 lógicos no se representan con
valores exactos de tensión sino mediante intervalos de tensión. Es decir, los
valores de tensión con los que se representan los niveles ALTO y BAJO no se
restringen a los valores exactos Vcc y 0V, sino que se definen intervalos
cercanos a estos límites, pero lo suficientemente distintos entre sí como para
asegurar que siempre puedan distinguirse los niveles ALTO y BAJO que
representan el 1 lógico y el 0 lógico, respectivamente.
Los intervalos de tensión que representan los valores lógicos 0 y 1 en las
señales de entrada dependen de la tecnología utilizada en la implementación de
los circuitos digitales. Las tecnologías actuales de fabricación de circuitos
integrados son TTL y CMOS. Estas tecnologías se diferencian principalmente
por el tipo de transistores que utilizan. La tecnología TTL utiliza transistores
bipolares, que son los que ya hemos descrito y la tecnología CMOS utiliza otro
tipo de transistores, denominados de efecto de campo. Esto implica diferentes
características entre ambas tecnologías en cuanto al consumo eléctrico, tensión
de alimentación, velocidad de operación, etc.
La Figura 3.7 muestra los intervalos de tensión que se utilizan en las
tecnologías TTL y CMOS para representar valores lógicos de señales de
entrada. Cada tecnología define también los intervalos que utilizan para
representar valores lógicos de señales de salida.
Figura 3.7 Intervalos de tensión para
señales de entrada.
a) Tecnología TTL.
b) Tecnología CMOS.
Los circuitos digitales de tecnología TTL funcionan con una tensión de
alimentación de 5 V. Los valores lógicos de una señal de entrada se representan
con los siguientes intervalos de tensión:
El 0 lógico se representa con un valor de tensión entre 0 V y 0,8 V
El 1 lógico se representa con un valor de tensión entre 2 V y 5 V
Los valores de tensión entre 0,8 V y 2 V son indeterminados.
Los circuitos basados en tecnología CMOS, utilizan tensiones de
alimentación desde 3 V hasta 18 V. Si tomamos una tensión de alimentación de
5 V para comparar con los rangos TTL, los valores lógicos de una señal de
entrada se representan con los siguientes intervalos de tensión:
56
El 0 lógico se representan con un valor de tensión entre 0 V y 1,5 V
El 1 lógico se representa con un valor de tensión entre 3,5 V y 5 V
Los valores de tensión entre 1,5 V y 3,5 V son indeterminados.
Los valores de tensión ubicados en la región indeterminada pueden ser
interpretados aleatoriamente como 1 o como 0, provocando un funcionamiento
impredecible en el circuito. Por esta razón, las señales de entrada de circuitos
digitales deben presentar valores de tensión en alguno de los intervalos
definidos y no en la región indeterminada, a excepción de las transiciones entre
un intervalo y otro.
Representación gráfica de valores lógicos y niveles
lógicos
Una forma de representación muy utilizada en la descripción de sistemas
digitales consiste en graficar el nivel lógico que adoptan las señales en función
del tiempo. Estas gráficas se conocen como diagramas temporales, diagramas
de sincronismo o diagramas de temporización y consisten en representaciones
simplificadas de la evolución temporal de una señal lógica.
Este tipo de diagramas utiliza solamente los niveles lógicos ALTO y
BAJO en lugar de representar los valores exactos de tensión eléctrica. Otra
simplificación adoptada generalmente consiste en representar los cambios de
un nivel lógico a otro considerando que las transiciones ocurren de manera
instantánea, dando lugar a formas de onda cuadrada.
En la Figura 3.8 se muestra un ejemplo de diagrama temporal de una
señal lógica designada como X. En el instante de tiempo inicial t0, la señal
presenta nivel lógico BAJO, valor que se mantiene sin cambios hasta que la
señal cambia al nivel lógico ALTO el instante de tiempo t1. En el instante de
tiempo t2 la señal continúa presentando el nivel lógico ALTO, hasta que en el
instante de tiempo t3, la señal cambia a nivel BAJO.
Figura 3.8 Intervalos de tensión para los niveles lógicos para circuitos TTL y CMOS.
El cambio de nivel BAJO a nivel ALTO se denomina flanco
positivo o flanco de subida.
El cambio de nivel ALTO a nivel BAJO se denomina flanco
negativo o flanco de bajada.
La secuencia de cambio BAJO-ALTO-BAJO con una duración
en nivel ALTO relativamente corta, se denomina pulso positivo.
La secuencia de cambio ALTO-BAJO-ALTO con una duración
en nivel BAJO relativamente corta, se denomina pulso
negativo.
57
Álgebra de Boole
El conjunto de leyes y reglas de operación aplicables a las variables
lógicas se denomina Álgebra de Boole en honor a George Boole, quien
desarrolló el uso de herramientas matemáticas para la investigación lógica,
mostrando con ello las bondades y el poder de las matemáticas aplicadas a la
lógica y estableciendo un vínculo entre ambas ciencias.
Definición
Se denomina como Algebra de Boole a una estructura algebraica definida
por:
Un conjunto B de elementos.
Un conjunto de operaciones lógicas cerradas definidas sobre B:
2 operaciones binarias
Operación suma lógica
Operación producto lógico
1 operación monoaria
Operación complemento ó negación
Operadores
Los operadores del Algebra de Boole reciben los siguientes nombres y
símbolos:
Operador suma lógica: “+” (OR): La operación de suma lógica es una
expresión algebraica que tiene dos o más operandos y el resultado de la
operación es 1 lógico sólo si el valor de uno o más de los operandos es 1
lógico.
Operador producto lógico: “.” (AND): La operación de producto lógico es
una expresión algebraica que tiene dos o más operandos y el resultado de la
operación es 1 lógico sólo si el valor de todos los operandos es 1 lógico.
Operador complemento o negación: “¯ ” (NOT): La operación de
complemento lógico es una operación que tiene un solo operando y el
resultado de la operación es 1 lógico sólo si el valor del operando es 0 lógico
y viceversa.
Operación OR
Operación AND
Operación NOT
0+0=0
0+1=0
1+0=0
1+1=1
0. 0 = 1
0. 1 = 1
1. 0 = 1
1. 0 = 1
0=1
1=0
Tabla 3.3 Operaciones booleanas
Postulados y Propiedades del Álgebra de Boole
A modo de repaso y de referencia, la siguiente tabla resume los
postulados y principales propiedades del Álgebra de Boole:
58
Operación OR
Operación AND
Propiedad conmutativa. Las
operaciones son conmutativas
a+b=b+a
a ⋅b =b⋅a
Propiedad distributiva. Las
operaciones son distributivas entre sí
a + (b ⋅ c ) = ( a + b ) ⋅ ( a + c )
a ⋅ (b + c ) = ( a ⋅ b ) + ( a ⋅ c )
Identidad. Las operaciones tienen
elementos identidad diferentes dentro
de B. Estos elementos son definidos
como 0 para (+) y 1 para (·)
a+0=a
a ⋅1 = a
Complemento. Para cada elemento, a
del conjunto B, existe otro elemento ā
denominado complemento, tal que se
cumple:
a + a =1
a⋅a =0
Elementos nulos. Para cualquier
elemento a, se verifica:
a +1=1
a⋅0=0
Asociatividad
( a + b ) + c = a + (b + c )
( a ⋅ b ) ⋅ c = a ⋅ (b ⋅ c )
Idempotencia
a+a=a
a⋅a=a
Involución
(a ) = a
Absorción
a + ( a ⋅ b) = a
a ⋅ ( a + b) = a
Para cada par de elementos, se verifica:
a + (a ⋅ b) = a + b
a ⋅ (a + b) = a ⋅ b
Leyes de De Morgan. Para cada par de
elementos, a y b, se verifica:
(a + b) = a ⋅ b
(a ⋅ b) = a + b
Leyes de De Morgan generalizadas.
Para cualquier conjunto de elementos
se verifica:
( x0 + x1 + ... + xn ) = x0 ⋅ x1 ⋅ ... ⋅ xn
( x 0 ⋅ x1 ⋅ ... ⋅ x n ) = x 0 + x1 + ... ⋅ + x n
Tabla 3.4 Propiedades del Álgebra de Boole
Expresiones booleanas
La Figura 3.9 muestra el diagrama de una función lógica f de n variables.
La función f (E1, E2,… , En) establece una relación entre las variables de entrada
que genera como resultado la variable de salida S = f (E1, E2, … , En). Las
entradas E1, E2, …, En son variables lógicas independientes y la salida S toma un
valor lógico dependiendo de los valores de las variables de entrada.
Para definir el valor de la salida S, la función lógica relaciona las
variables de entrada E1, E2, …, En, por medio de los operadores booleanos:
producto lógico, suma lógica y complemento, es decir, que toda función lógica
puede ser representada por una expresión algebraica booleana.
Figura 3.9 Función lógica de n entradas.
59
Ejemplo
Determinar el valor de la función lógica representada por la siguiente expresión booleana:
f (E1, E2, E3) = (E1 . E2) + (E3 . E1)
Solución: Los valores de la salida S se obtienen evaluando la función lógica f (E1, E2, E3). La evaluación
de la función lógica para encontrar el valor de la salida S consiste en reemplazar los valores de las
variables de entrada en la expresión booleana de la función lógica.
S = f (E1, E2, E3) = (E1 . E2) + (E3 . E1)
Si E1 = 0, E2 = 1 y E3 = 1:
S = f (E1,E2,E3) = (E1 . E2) + (E3 . E1)
S = f (0,1,1) = (0 . 1) + (1 . 1)
S = f (0,1,1) = (0) + (1)
S = f (0,1,1) = 1
La función queda totalmente definida encontrando los valores que toma para cada una de las 2n
combinaciones posibles que pueden presentar las n variables de entrada.
Formas canónicas
Dentro de las expresiones algebraicas booleanas, hay algunas que son de
especial interés, las cuales se definen a continuación:
Se denomina término producto al producto lógico de un número dado de
variables o constantes.
Se denomina término suma a la suma lógica de un número dado de variables
o constantes.
Se define expresión algebraica disyuntiva a la expresión de la función como
suma de términos producto. Se dice que la función se encuentra expresada en
forma normal disyuntiva o como suma de productos.
Expresión algebraica disyuntiva: f ( A, B, C ) = A.B + A.B .C
Se define como minterm al término producto en el que aparecen todas las
variables de la función, una sola vez, ya sea en forma directa o
complementada. Por lo tanto, un minterm es un caso especial de término
producto. Por ejemplo,
, , = ̅. . ̅ es un minterm.
Se define expresión algebraica conjuntiva a la expresión de la función como
producto de términos suma. Se dice que la función se encuentra expresada en
forma normal conjuntiva o como producto de sumas. Por ejemplo:
Expresión algebraica conjuntiva: f ( A, B.C ) = ( A + B + C ).( A + B)
Se define como maxterm al término suma en el que aparecen todas las
variables de la función, una sola vez, ya sea en forma directa o
complementada. Por lo tanto, un maxterm es un caso especial de término
suma. Por ejemplo,
, , = ̅ + + ̅ es un maxterm.
Expresión canónica disyuntiva
A la expresión algebraica disyuntiva en la que todos los términos
producto que aparecen son minterm, se le denomina expresión canónica
disyuntiva.
60
Se verifican las siguientes propiedades:
Dada la lista completa de minterm de n variables, asignando arbitrariamente
valores 1 o 0 a cada variable, se verifica que un único minterm tomará el
valor 1.
n
La fórmula compuesta por los 2 minterm tomará el valor 1.
La fórmula canónica disyuntiva o de minterm es única.
Para una función lógica, se cumple que
f ( x1 , x2 ,..., xn ) = x1 ⋅ f (1, x2 ,..., xn ) + x1 ⋅ f (0, x2 ,..., xn )
Toda función puede expresarse como suma de minterms. Por ejemplo dada
la fórmula disyuntiva
, , = . + , se puede pasar a la fórmula
canónica disyuntiva aplicando los postulados y propiedades del algebra de
Boole.
Ejemplo
Dada la función
, ,
= .
+ , encontrar su expresión canónica disyuntiva (suma de minterms).
Solución: Comparando la forma del término A.B, con la definición de minterm, se observa que
solamente falta la variable C. Para agregar este literal faltante sin modificar la igualdad, podemos utilizar
las propiedades del álgebra de Boole. En este caso, como el elemento identidad del producto es la
constante 1, podemos escribir: A.B = A.B .1. Pero como
+ ̅ = 1 por la propiedad del complemento,
̅
reemplazando queda: . = . . 1 = . . + .
En forma similar, al segundo término de la función le faltan las variables A y B para formar un minterm,
pero podemos multiplicar por
+ ̅ y
+
sin alterar la igualdad. Entonces:
, , = . +
, , = . . + ̅ + + ̅ . + .
Aplicando distributiva, obtenemos:
, , = . . + . . ̅ + . .
+ . . + ̅. . + ̅. . Como puede observarse, luego de aplicar propiedad distributiva, cada término de la expresión es un
minterm, pero el primer término producto es igual al tercero. Así, luego de aplicar la propiedad de
idempotencia, la expresión canónica disyuntiva de la función f será:
, ,
= . . + . . ̅ + . . + ̅. . + ̅. . Expresión canónica conjuntiva
A la expresión algebraica conjuntiva escrita mediante maxterm se le
denomina fórmula canónica conjuntiva.
Se verifican las siguientes propiedades
Dada la lista completa de maxterms de n variables, asignando
arbitrariamente 1 o 0 a cada variable, se verifica que un único maxterm
tomará el valor 0.
n
La fórmula compuesta por los 2 maxterms tomará el valor 0.
La fórmula canónica conjuntiva o de maxterm es única.
Para una función lógica, se cumple que
f ( x1 , x2 ,..., xn ) = [ x1 + f (0, x2 ,..., xn )] ⋅ [ x1 + f (1, x2 ,..., xn )]
Toda función puede expresarse como producto de maxterms. Por ejemplo
dada la fórmula disyuntiva
, , = . + , se puede pasar a la
fórmula canónica conjuntiva aplicando los postulados y propiedades del
algebra de Boole.
61
Ejemplo
, ,
Dada la función
maxterms).
= .
+ , encontrar su expresión canónica conjuntiva (producto de
Solución: Analizando la expresión, vemos que se trata de una forma disyuntiva no canónica. En este
ejemplo, conviene aplicar la propiedad distributiva para transformar la expresión a una forma conjuntiva.
Así:
, , = . + = + . =
+ . +
Esta expresión se encuentra en forma conjuntiva, pero no es canónica. Para serlo, al término (C + A) le
falta la variable B y al término (C + B) le falta la variable A. Para agregar los literales faltantes sin
modificar la igualdad, podemos utilizar las propiedades del álgebra de Boole. En este caso, como el
elemento identidad de la suma es la constante 0, podemos escribir: (C + A) = (C + A + 0). Pero como
.
= 0 por la propiedad del complemento, reemplazando y aplicando propiedad distributiva queda:
+
=
+
+
=
+
+
.
+
+
.
En forma similar, al término (C + B) le falta la variable A para formar un maxterm, pero podemos
̅ sin alterar la igualdad.
sumarle
El proceso completo sería:
,
,
,
,
,
,
,
,
= . + = + .
=
+
+
=
+ +
. + +
=
+ +
+ + .
̅
+
+
+
+ ̅
Como puede observarse, luego de aplicar propiedad distributiva, cada término de la expresión es un
maxterm, pero el primer término suma es igual al tercero. Por lo tanto, luego de reducir aplicando
propiedad de idempotencia queda:
, ,
=
+
+
+
+
.
+
+ ̅
Finalmente, luego de reordenar los literales en cada término suma, la expresión canónica conjuntiva de la
función f será:
, ,
=
+
+
+
+
.
̅+
+
Tablas de verdad
Una tabla de verdad describe el valor de una función para cada una de las
combinaciones posibles de valores lógicos de las variables.
Cada fila de la tabla de verdad contiene la combinación de valores
lógicos de las variables de la función y el correspondiente valor de la función
para esa combinación. Es decir que la tabla de verdad muestra explícitamente
todos los casos posibles de entrada y sus respectivos resultados (salida).
Dada una función lógica de n variables, existen 2 combinaciones
posibles de sus valores, de modo que la tabla de verdad de dicha función tiene
2 filas.
En la Figura 3.10a se muestra la tabla de verdad de una función lógica de
dos variables, designada como F1. La tabla de verdad muestra los valores que
tomará la función F1 de acuerdo a la combinación de valores lógicos de las
variables. Cada fila de la tabla muestra una de las combinaciones posibles y el
valor de F1 para dicha combinación. La Figura 3.10 muestra también la tabla de
verdad para una función de tres variables y la tabla de verdad para una función
de cuatro variables.
62
B
0
0
1
1
A
0
1
0
1
F1
0
1
0
0
C
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
A
0
1
0
1
0
1
0
1
F2
1
1
0
1
1
1
0
1
D
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
(a)
C
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
A
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
F3
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
(b)
(c)
Figura 3.10
Ejemplos de tablas de verdad. a) Función lógica de dos variables
b) Función lógica de tres variables. c) Función lógica de cuatro variables
Relación entre tablas de verdad y expresiones booleanas
Las tablas de verdad y las expresiones booleanas son formas de
representar una función lógica. Se puede encontrar la tabla de verdad de una
función lógica a partir de la expresión booleana de dicha función lógica. Para
ello se debe evaluar la expresión booleana para cada una de las combinaciones
posibles de valores de entrada.
En forma similar, dada la tabla de verdad de una función lógica, se puede
encontrar la expresión booleana correspondiente.
Ejemplo
Dada la siguiente tabla de verdad de una función de tres variables,
hallar la expresión booleana correspondiente
Esta tabla de verdad expresa que la función F(A,B,C) toma el
valor lógico 1 cuando: A = 0; B = 1 y C = 0
ó también cuando:
A = 1; B = 0 y C = 0
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
F(A,B,C)
0
0
1
0
1
0
0
0
Esto se interpreta de la siguiente manera:
F = 1 cuando A = 0 y B = 1 y C = 0, es decir: F = A ⋅ B ⋅ C = 0 ⋅ 1 ⋅ 0 = 1 ⋅ 1 ⋅ 1 = 1
ó (+) cuando A = 1 y B = 0 y C = 0 es decir F = A ⋅ B ⋅ C = 1 ⋅ 0 ⋅ 0 = 1 ⋅ 1 ⋅ 1 = 1
Luego:
F = A⋅ B ⋅C + A⋅ B ⋅C
63
Tabla de verdad, minterms y maxterms
Figura 3.11 Lista completa de
minterms y maxterms distintos que
pueden formarse con tres variables:
A, B y C.
Por definición, un minterm es un término producto en el cual figuran
todas las variables de la función una sola vez, ya sea en forma directa o
complementada. La Figura 3.11 muestra la lista completa de los ocho minterms
distintos que pueden formarse con tres variables. En general, dada una función
de n variables, es posible formar 2 minterms distintos.
Así, al considerar la lista completa de minterms distintos hay una relación
directa con las filas de la tabla de verdad, la cual contiene las 2 combinaciones
posibles de los valores de las variables de entrada, de manera tal que cada fila
de la tabla identificará a un único minterm.
Por otra parte, dada una combinación cualquiera de valores de las
variables, al evaluar la lista completa de minterms distintos con esos valores,
sólo uno de ellos será igual a 1. Por ejemplo, si analizamos la combinación de
valores = 0, = 1y = 1, el único minterm cuyo resultado vale 1 es el
minterm ̅ . Cualquier otro minterm dará como resultado cero para esa
combinación de valores.
Al analizar los maxterm, encontramos el comportamiento dual. Un
maxterm es, por definición, un término suma en el cual aparecen todas las
variables de la función una sola vez, en forma directa o complementada. Por
esta razón, dada una función de n variables, es posible formar 2 maxterms
distintos. La Figura 3.11 muestra los ocho maxterms distintos que pueden
formarse con tres variables. Debido a que con n variables es posible formar 2
maxterms distintos y una función de n variables tiene 2 combinaciones posibles
de los valores de las variables de entrada, podemos relacionar cada fila de la
tabla de verdad con un único maxterm. Si tomamos una combinación cualquiera
de valores de las variables, al evaluar la lista completa de maxterms distintos
con esa combinación de valores, sólo uno de ellos tomará el valor 0. Por
ejemplo, al evaluar los maxterms con la combinación de valores = 0, =
1y = 1, el único de ellos cuyo resultado vale 0 es el maxterm + + ̅ .
Cualquier otro maxterm dará como resultado uno para esa combinación de
valores.
La asociación de un minterm con una fila de la tabla se obtiene al igualar
a uno la expresión del minterm y deduciendo los valores de las variables que
cumplen la igualdad. Por ejemplo, analicemos el minterm ̅ .
La expresión del minterm igualada a uno es: ̅
=1
La igualdad sólo se cumple cuando = 0,
= 1 = 1, ya que en ese caso ̅
= 0.1. 1 = 1
La combinación de valores = 0,
= 1 = 1 corresponde a la cuarta fila de la tabla.
Análogamente, igualando a cero la expresión del maxterm, puede
deducirse el valor que debe tomar cada variable para cumplir la igualdad y
ubicar esa combinación entre las fila de la tabla. Por ejemplo, al analizar el
maxterm + + ̅ , tenemos que:
La expresión del maxterm igualada a cero es:: + + ̅ = 0
La igualdad sólo se cumple cuando = 0,
= 1 = 1, ya que en ese caso + + ̅ = 0 + 1 + 1 = 0
La combinación de valores = 0,
= 1 = 1 corresponde a la cuarta fila de la tabla.
La Figura 3.12 muestra las combinaciones de valores de tres variables y
los minterms y maxterms relacionados a cada combinación de valores.
64
Figura 3.12 Expresión y notación de
minterms y maxterms para una tabla de
verdad de tres variables
Observe que la Figura 3.12 muestra la notación de los minterms como mi
y los maxterms como Mi , donde i es un subíndice cuyo valor se corresponde
con el número binario formado con los valores lógicos de las variables. Debe
tenerse en cuenta que la tabla muestra combinaciones de valores lógicos 0 y 1
de las variables, pero los símbolos 0 y 1 también se utilizan en el sistema de
numeración de base dos. Esta coincidencia permite asociar una combinación de
valores lógicos con un número binario.
Tabla de verdad y expresiones equivalentes
Una función es unívocamente representada por su tabla de verdad. Se
dice que dos o más expresiones algebraicas son equivalentes (F1 = F2) si ambas
tienen la misma tabla de verdad, es decir, describen la misma función lógica.
Por ejemplo, evaluando las expresiones de las siguientes funciones F1, F2
y F3 encontrará que poseen la misma tabla de verdad.
A
0
0
1
1
B
0
1
0
1
F1 ( A, B ) = AB + A( B + A )
F(A,B)
0
1
1
0
F2 ( A, B) = A B + AB
F3 ( A, B ) = ( A + B )( A + B )
Como se puede observar, es posible que existan muchas expresiones
algebraicas que describan a la misma función lógica. Esta equivalencia se
evidencia en la tabla de verdad.
Relación entre la tabla de verdad y las expresiones
canónicas
De las expresiones equivalentes de una función, existen dos de ellas que
pueden obtenerse en forma directa de la tabla de verdad: la expresión canónica
disyuntiva y la expresión canónica conjuntiva.
A primera vista, las expresiones canónicas pueden parecer expresiones
más complejas, ya que estas expresiones se caracterizan porque en cada uno de
los términos aparecen todas las variables de la función. Sin embargo, esta
complejidad es solo aparente y por el contrario, presentan la ventaja de ser
obtenibles a partir de la tabla de verdad de una manera muy sencilla, como
veremos a continuación.
65
La expresión canónica disyuntiva se encuentra en forma de suma de
productos. Como cada término es un minterm, también se denomina suma de
minterms o expansión en minterms. Esto permite utilizar una notación compacta
para representar la función, en base a la notación mi de los minterms que la
componen.
Ejemplo
A
0
0
0
0
1
1
1
1
Dada la siguiente tabla de verdad de una función de tres variables,
hallar la forma canónica disyuntiva.
Para encontrar la forma canónica disyuntiva, se toman las filas de
la tabla de verdad donde la función vale 1. Como cada fila
referencia un minterm, la forma canónica se construye sumando
los minterms encontrados.
La tabla de verdad muestra que la función F(A,B,C) toma el valor
lógico 1 cuando:
= 0,
= 0 = 1 → minterm ̅
= 0,
= 1 = 0 → minterm ̅
= 1,
= 0 = 0 → minterm
= 1,
= 1 = 1 → minterm
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
F(A,B,C)
0
1
1
0
1
0
0
1
̅
̅
Luego: "
, ,
= ̅
+ ̅
̅+
̅+
En notación compacta: "
, ,
= #$ + #% + #& + #'
Análogamente, la expresión canónica conjuntiva se encuentra en forma
de producto de sumas. Cada término es un maxterm y por tal razón también se
conoce como producto de maxterms o expansión en maxterms. Referenciando
cada maxterm de la función con la notación Mi puede representarse la
expresión de la función mediante una notación compacta.
Ejemplo
A
0
0
0
0
1
1
1
1
Dada la siguiente tabla de verdad de una función de tres variables,
hallar la forma canónica conjuntiva.
La forma canónica conjuntiva, se construye tomando las filas de la
tabla de verdad donde la función vale 0. Como cada fila referencia
un maxterm, se construye la expresión realizando el producto de
los maxterms encontrados.
La tabla de verdad muestra que la función F(A,B,C) toma el valor
lógico 0 cuando:
= 0,
= 0 = 0 → maxterm
+
+
= 0,
= 1 = 1 → maxterm
+
+ ̅
= 1,
= 0 = 1 → maxterm
̅+
+
= 1,
= 1 = 0 → maxterm
̅+
+
+
+
+
+ ̅
Luego: "
, ,
=
En notación compacta: "
, ,
= *+ + *, + *- + *.
66
̅+
+
B
0
0
1
1
0
0
1
1
̅+
C
0
1
0
1
0
1
0
1
+
F(A,B,C)
0
1
1
0
1
0
0
1
Funciones incompletas o incompletamente especificadas
Hasta ahora hemos tratado con funciones que se encuentran definidas
para todas las combinaciones posibles de los valores de las variables, pero
puede ocurrir que una función lógica no se encuentre definida para todas las
combinaciones. Esto suele pasar cuando las variables de la función no son
independientes entre sí o cuando no puedan producirse todas las combinaciones.
A este tipo de funciones se les denomina funciones incompletas o
incompletamente especificadas.
En la tabla de verdad, el valor de la función para aquellas combinaciones
de entrada que no tienen un valor de salida definido se indica con “-” o con “x”.
Ejemplo
Sea la función incompleta expresada por la siguiente tabla de verdad:
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
F(A,B,C)
0
1
1
0
1
-
Las combinaciones de valores de entrada para las cuales la función
no está especificada son:
A = 0, B = 1, C = 1
A = 1, B = 1, C = 0
A = 1, B = 1, C = 1
Se puede asignar cualquier valor lógico a la función cuando de
acuerdo al problema esas combinaciones de entrada no se presentarán
o el valor de la función en esos casos no será tenido en cuenta.
Algebraicamente, las funciones incompletamente especificadas pueden
ser expresadas mediante la unión de dos funciones diferentes:
Una función completa f, que contempla únicamente los 0 ó 1 de las
combinaciones para las cuales la función está definida. En el caso anterior
sería f = m1 + m2 + m5 = M3·M7.
Y otra función, denominada función inespecificación Φ, que contempla
todas las combinaciones para las cuales la función no está definida. En el
caso anterior sería Φ= m3 + m6 + m7 = M0·M1·M4.
Es decir F = f + Φ
Al momento de crear la implementación de dicha función, hay que tener
en cuenta que:
La función f debe ser completamente implementada.
La función Φ no tiene porqué ser completamente implementada. Ésta puede
que no sea implementada, que sea implementada sólo parcialmente o que
esté completamente implementada.
En el caso de funciones incompletamente especificadas, se cumple que la
fórmula de minterm o de maxterm no es única, ya que pueden existir tantas
expresiones como combinaciones de sus inespecificaciones.
Veremos más adelante cómo se pueden emplear las inespecificaciones
para minimizar la expresión lógica de la función.
67
Compuertas lógicas
Como vimos en la unidad anterior, los transistores son componentes
electrónicos que pueden ser utilizados como elementos de conmutación para
operar en uno de dos estados posibles: en corte o en saturación. Esta
característica de funcionamiento de los transistores se utiliza para formar
circuitos electrónicos que realizan operaciones lógicas simples, denominadas
compuertas lógicas o simplemente compuertas.
De esta manera, las compuertas sirven como bloques fundamentales de
cualquier dispositivo lógico, de manera tal que los circuitos lógicos son un
conjunto de compuertas lógicas interconectadas para realizar alguna tarea
específica.
Los circuitos electrónicos que implementan las compuertas lógicas
pueden construirse mediante diodos, transistores y resistencias conectados de tal
forma que la salida del circuito es el resultado de la operación lógica aplicada a
las entradas. En estos circuitos, las entradas y salidas son señales eléctricas de
tensión cuyo valor representa uno de los valores lógicos.
Compuertas lógicas básicas
Figura 3.13 Símbolos
tradicionales de las compuertas
lógicas básicas.
Una compuerta lógica básica es aquella que implementa una operación
booleana básica. Se designan con los mismos nombres de la operación que
implementan y se identifican mediante símbolos especiales. En la Figura 3.13 se
muestran los símbolos tradicionales utilizados para representar las compuertas
básicas.
En el diseño de circuitos digitales estas compuertas básicas se combinan
para formar los circuitos lógicos que implementan las funciones lógicas más
complejas.
La compuerta OR
La compuerta OR es un circuito que tiene dos o más entradas y cuya
salida es igual a la suma lógica de las entradas. La Figura 3.14 muestra el
símbolo lógico, la tabla de verdad y la expresión booleana para una compuerta
OR de dos entradas.
A
0
0
1
1
(a)
B
0
1
0
1
S=A+B
0
1
1
1
(c)
(b)
Figura 3.14 a) Símbolo lógico y expresión booleana para la compuerta OR de dos entradas.
b) Tabla de verdad de la operación OR.
c) Ejemplo de diagrama temporal de la compuerta OR.
Tanto las entradas como la salida de la compuerta son niveles lógicos de
voltaje. La compuerta OR opera de tal forma que su salida es ALTO (valor
lógico 1) si cualquiera de sus entradas están en ALTO. La salida será BAJO
(valor lógico 0) sólo si todas las entradas están en BAJO. Esta característica se
muestra en la tabla de verdad y en el diagrama temporal de ejemplo mostrado en
la Figura 3.14c.
68
La expresión booleana S = A + B indica que la salida S es la combinación
OR (suma lógica) de sus entradas. Este principio general se puede ampliar a
más de dos entradas, como se muestra en la Figura 3.15. De nuevo, la tabla de
verdad muestra que la salida será 1 siempre que una o más entradas sean 1 y que
la salida será 0 sólo cuando todas las entradas sean 0.
Figura 3.15 Compuerta OR de tres entradas
A
B
C
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
S=A+B+
C
0
1
1
1
1
1
1
1
La compuerta AND
La compuerta AND es un circuito con dos o más entradas que opera de
tal forma que la salida es igual al producto lógico de las entradas. En la Figura
3.16 se muestra el símbolo lógico, la tabla de verdad y la expresión booleana
para una compuerta AND de dos entradas.
A
0
0
1
1
(a)
B
0
1
0
1
S = A.B
0
0
0
1
(c)
(b)
Figura 3.16 a) Símbolo lógico y expresión booleana para la compuerta AND de dos entradas.
b) Tabla de verdad de la operación AND.
c) Ejemplo de diagrama temporal.de la compuerta AND.
Tal como muestra la tabla de verdad de la Figura 3.16, la salida de la
compuerta AND es 1 sólo cuando todas sus entradas son 1 y la salida será 0
cuando una o más entradas sean 0.
La expresión booleana S = A.B indica que la salida S se obtiene
realizando la operación AND (producto lógico) entre las entradas. Esta
característica puede extenderse a más de dos entradas, como se muestra en la
Figura 3.17, en la cual se corrobora que la salida será 0 cuando una o más
entradas sean 0 y que la salida será 1 sólo cuando todas las entradas sean 1.
69
A
0
0
0
0
1
1
1
1
Figura 3.17 Compuerta AND de tres
entradas
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
S = A.B.C
0
0
0
0
0
0
0
1
La compuerta NOT
La compuerta NOT es un circuito que tiene una sola entrada y cuya salida
se obtiene realizando la operación NOT al valor de entrada. En la Figura 3.18 se
muestra el símbolo lógico, la tabla de verdad y la expresión booleana para una
compuerta NOT.
A
0
1
(a)
S=Ā
1
0
(b)
(c)
Figura 3.18 a) Símbolo lógico y expresión booleana para la compuerta NOT o INVERSOR.
b) Tabla de verdad de la operación NOT.
c) Ejemplo de diagrama temporal de la compuerta NOT o INVERSOR.
Tal como muestra la tabla de verdad de la Figura 3.18, la salida de la
compuerta NOT es siempre el opuesto de la entrada, es decir, cuando la entrada
es 0 la salida es 1 y viceversa. Por ello, es muy común el uso del término
INVERSOR para referirse a esta compuerta.
La expresión booleana / = ̅ indica que la salida se obtiene realizando la
operación NOT (complemento) sobre la entrada. Esta operación se realiza
siempre sobre una sola entrada, como se muestra en la Figura 3.18.
Funciones lógicas y circuitos lógicos
Figura 3.19 Función lógica y su implementación con un circuito digital o circuito lógico.
En la Figura 3.19a el diagrama representa una función lógica de n
entradas y en la Figura 3.19b se muestra un circuito digital de n entradas y
salida única. El valor de la salida S del circuito digital queda determinado
mediante la aplicación de un conjunto de reglas lógicas sobre las entradas. Estas
reglas definen el comportamiento o lógica del circuito y determina la forma en
que un circuito digital responde a las entradas.
70
El conjunto de reglas que relaciona las entradas con la salida se
representa mediante una función lógica, cuyas variables representan las señales
de entrada del circuito digital. La función lógica se describe mediante una
expresión algebraica, en la cual los operadores del álgebra booleana relacionan
las variables intervinientes.
Así, la función lógica representa la relación entrada-salida del circuito
digital. En el otro sentido, también puede decirse que el circuito digital es la
implementación física del conjunto de reglas descrito por la función lógica.
Implementación de funciones lógicas mediante
circuitos lógicos con compuertas básicas
Una función lógica se representa mediante expresiones booleanas y las
compuertas lógicas básicas implementan las operaciones booleanas. Puede
observarse entonces que existe una correspondencia directa entre la expresión
booleana de una función lógica y los circuitos lógicos a nivel de compuertas
básicas, como se muestra en el siguiente ejemplo.
Ejemplo
Implementar la siguiente función lógica mediante compuertas básicas: , ,
=
+
.
Solución: Para implementar la función lógica, se deben identificar las operaciones booleanas de la
expresión algebraica y relacionarlas con la compuerta básica correspondiente. La expresión de la función
muestra el orden de precedencia con que deben realizarse las operaciones. En este caso, primero
debe realizarse la suma lógica de
+ . Esta suma lógica se implementa con una compuerta OR
cuyas entradas son A y B. La operación de complemento se realiza con un INVERSOR, cuya entrada
será la salida de la compuerta OR, esto es
+
para luego obtener su complemento
+ .
Finalmente el producto lógico se implementa con una compuerta AND que tiene, en una de sus entradas
la salida del INVERSOR y en la otra, la variable construyendo así la expresión completa de f
Figura 3.20 Implementación de una función lógica mediante compuertas básicas.
Como las compuertas básicas implementan las operaciones definidas en
el algebra de Boole, el conjunto de compuertas AND, OR y NOT es
funcionalmente completo y permite implementar cualquier función lógica. Es
decir que, a partir de estas compuertas elementales pueden construirse circuitos
lógicos, tales como contadores, comparadores, sumadores y combinaciones más
complejas.
71
Representación de circuitos lógicos mediante funciones
lógicas
Los circuitos lógicos se construyen mediante la interconexión de
compuertas lógicas, cada una de las cuales implementa una operación booleana.
Por esta razón, dado un circuito lógico a nivel de compuertas, siempre se
pueden obtener las expresiones booleanas individuales de las compuertas y
formar la función lógica correspondiente.
Ejemplo
El circuito lógico de la Figura 3.21 recibe en sus terminales de entrada las señales A, B y C. En el
terminal de salida S se encuentra conectado un diodo led que se enciende cuando la salida S del circuito
se pone en valor ALTO y permanece apagado siempre que la salida S esté en BAJO. Encuentre la
función lógica correspondiente.
Figura 3.21 Circuito lógico de tres entradas cuya salida S en valor ALTO enciende el diodo led.
Solución: Siguiendo el circuito desde las entradas hacia la salida, se pueden ir obteniendo las
expresiones booleanas de las compuertas que intervienen:
La compuerta AND1 tiene conectada a una de sus entradas la señal de salida de INV1, o sea ̅,
mientras que la otra entrada de AND1 es , por lo cual la salida de la compuerta AND 1 es ̅. .
Una de las entradas de AND4 es la salida de AND1 y la otra entrada es , por lo tanto la salida
de la compuerta AND4 es ̅. . .
La compuerta AND2, tiene como una de sus entradas la señal . La otra entrada de AND2 es la
salida de la compuerta inversora INV2, o sea, . Por lo tanto, la salida de AND2 es . .
Una de las entradas de AND5 es la salida de AND2, mientras que la otra entrada es , por lo
tanto la salida de la compuerta AND5 es . .
Las entradas de AND3 son y , por lo tanto su salida es el producto lógico . .
72
Ejemplo (continuación)
Una de las entradas de AND6 es la salida de AND3. La otra entrada de AND6 es la salida de
INV3, o sea, ̅ . Por lo tanto, la salida de la compuerta AND6 es . . ̅ .
La compuerta OR1 realiza la suma lógica de las salidas de AND4 y AND5, obteniendo ̅. . +
. .
Una de las entradas de OR2 es la salida de OR1. Como la otra entrada de OR2 es la salida de
AND6, la salida de la compuerta OR2, es decir ̅. . + . . + . . ̅
Otra forma de obtener la función lógica es ir escribiendo sobre el diagrama del circuito las expresiones
booleanas de las compuertas, completando las expresiones para cada compuerta, desde las entradas hacia
a salida, como se muestra a continuación:
El circuito lógico de la Figura 3.22 recibe en sus terminales de entrada las señales A, B y C. En el
terminal de salida S se encuentra conectado un diodo led que se enciende cuando la salida S del circuito
se pone en valor ALTO y permanece apagado siempre que la salida S esté en BAJO.
Para encontrar la función lógica correspondiente se pueden ir escribiendo las expresiones booleanas a la
salida de cada compuerta, comenzando desde las entradas y siguiendo progresivamente hacia la salida,
como se muestra en la siguiente figura:
Figura 3.22 Formación de la expresión booleana de la salida S.
Otras compuertas
Además de las compuertas básicas, que implementan electrónicamente el
comportamiento de los operadores del algebra de Boole, existen compuertas que
implementan funciones simples y útiles en la implementación de circuitos
lógicos, tales como la suma lógica negada y el producto lógico negado.
73
La compuerta NOR
La compuerta NOR es un circuito que tiene dos o más entradas y su
salida es igual al complemento de la suma lógica de las entradas es decir, opera
en forma equivalente a una compuerta OR seguida de un INVERSOR, como se
muestra en la Figura 3.23:
Figura 3.23 Circuito equivalente de la compuerta NOR
El símbolo de la compuerta NOR es similar al de la compuerta OR. De
hecho, la única diferencia es el círculo pequeño en la salida de la compuerta
NOR. Este círculo pequeño denota la operación de complemento que el
INVERSOR realiza a la salida de la compuerta OR en el circuito equivalente.
Esta diferencia también se puede apreciar al comparar las expresiones booleanas
de las compuertas OR y NOR.
A continuación se muestra el símbolo lógico, la tabla de verdad y la
expresión booleana para una compuerta NOR de dos entradas.
Figura 3.24 Compuerta NOR
a) Tabla de verdad de la operación NOR.
c) Símbolo lógico y expresión booleana para
la compuerta NOR de dos entradas.
A
0
0
1
1
B
0
1
0
1
x=A+B
1
0
0
0
(b)
(a)
La compuerta NOR opera de tal forma que su salida es el opuesto de la
salida de la compuerta OR al considerar las mismas condiciones de entrada. Es
decir, la salida de la compuerta NOR es BAJO si cualquiera de sus entradas está
en ALTO. La salida será ALTO sólo si todas las entradas están en BAJO. Esta
característica se muestra en la tabla de verdad de la Figura 3.24.
La expresión booleana x = A + B indica que la salida de la compuerta
NOR es el complemento de la combinación OR de sus entradas. Este principio
general se puede ampliar a más de dos entradas.
La compuerta NAND
La compuerta NAND es un circuito que tiene dos o más entradas y su
salida es igual al complemento del producto lógico de las entradas es decir,
opera en forma equivalente a una compuerta AND seguida de un INVERSOR,
como se muestra en la Figura 3.25:
74
Figura 3.25 Circuito equivalente de la compuerta NAND
El símbolo de la compuerta NAND es similar al de la compuerta AND,
excepto por el círculo pequeño que posee la compuerta NAND en la salida. Este
círculo pequeño denota la operación de complemento que el INVERSOR realiza
a la salida de la compuerta AND en el circuito equivalente. Esta diferencia
también surge al comparar las expresiones booleanas de las compuertas AND y
NAND.
A continuación se muestra el símbolo lógico, la tabla de verdad y la
expresión booleana para una compuerta NAND de dos entradas.
Figura 3.26 Compuerta NAND
a) Tabla de verdad de la operación NAND.
c) Símbolo lógico y expresión booleana para la
compuerta NAND de dos entradas.
A
0
0
1
1
B
0
1
0
1
x = A.B
1
1
1
0
(b)
(a)
La tabla de verdad de la Figura 3.26 muestra que la compuerta NAND
opera de tal forma que su salida es el opuesto de la salida de la compuerta AND
al considerar las mismas condiciones de entrada. Es decir, la salida de la
compuerta NAND es ALTO si cualquiera de sus entradas está en ALTO. La
salida será BAJA sólo si todas las entradas están en ALTO.
La expresión booleana x = A ⋅ B indica que la salida de la compuerta
NAND es el complemento de la combinación AND de sus entradas. Este
principio general se puede ampliar a más de dos entradas.
Universalidad de las compuertas NOR y NAND
Las expresiones booleanas representan funciones lógicas combinando
variables y constantes booleanas mediante las operaciones básicas OR, AND y
NOT. Por esta razón, cualquier función lógica puede a su vez ser implementada
en un circuito lógico que utiliza combinaciones de compuertas OR, AND e
INVERSORES que llevan a cabo las operaciones booleanas básicas.
La compuerta NAND se puede utilizar para lograr el comportamiento de
cualquiera de las demás compuertas básicas, por esta razón la compuerta NAND
es una compuerta universal y mediante su uso se puede implementar cualquier
función lógica. Esta característica hace que en el mercado de circuitos
integrados exista una disponibilidad mayor de compuertas NAND que los otros
tipos de compuertas.
La compuerta NOR es también una compuerta universal porque se puede
utilizar para lograr el comportamiento de cualquiera de las compuertas básicas.
Es decir, cualquier función lógica se puede implementar basándose únicamente
en compuertas NOR.
75
Implementación de funciones lógicas mediante
compuertas NAND
La Figura 3.27 muestra la forma en que las compuertas NAND se pueden
utilizar para sustituir las compuertas básicas. Del análisis de las expresiones
booleanas surge la validez de los circuitos equivalentes.
Figura 3.27 Implementación de compuertas básicas mediante compuertas NAND.
La implementación de circuitos lógicos mediante compuertas NAND se
puede realizar en base a la implementación de operaciones básicas mediante
compuertas NAND.
En la práctica, esta implementación no se realiza por sustitución directa,
sino que se manipula la expresión booleana de la función lógica para obtener
una función equivalente que presente la forma de productos negados, que suele
denominarse lógica NAND.
Ejemplo
Implementar la función lógica / = ̅. .
+ . .
+ . . ̅ mediante compuertas NAND.
Solución: La función se encuentra en forma disyuntiva (suma de términos producto). A partir de esta
forma, el método consiste en aplicar doble negación a la expresión completa y luego aplicar el teorema
de De Morgan, como se muestra a continuación:
/ = ̅. . + . . + . . ̅
Aplicando doble negación:
̅. . + . . + . . ̅
/̿ = 11111111111111111111111111111111
(no se modifica la expresión, pues /̿ = /)
Aplicando el teorema de De Morgan a la negación inferior:
/ = ̅. . . . . . . . ̅
Analizando esta expresión equivalente se observa que se encuentra en la forma de productos negados. La
implementación de la función lógica consiste en utilizar una compuerta NAND por cada variable negada
y por cada producto negado presente en la expresión equivalente, como se muestra a continuación:
76
Ejemplo (continuación)
Figura 3.28 Implementación de la función lógica mediante compuertas NAND.
Implementación de funciones lógicas mediante
compuertas NOR
En la Figura 3.29 se muestra la forma en que las compuertas NOR se
pueden utilizar para sustituir las compuertas básicas. Del análisis de las
expresiones booleanas surge la validez de los circuitos equivalentes
77
Figura 3.29 Implementación de compuertas básicas mediante compuertas NOR.
Implementar circuitos lógicos mediante compuertas NOR consiste en
realizar las operaciones básicas mediante compuertas NOR. En la práctica, se
busca expresar la función lógica mediante una función equivalente que presente
la forma de sumas negadas, que suele denominarse lógica NOR.
Ejemplo
Implementar la función lógica / = ̅. .
+ . .
+ . . ̅ mediante compuertas NOR.
Solución: La función se encuentra en forma disyuntiva (suma de términos producto). A partir de esta
forma, el método consiste en aplicar doble negación a la expresión completa y luego aplicar el teorema
de De Morgan, como se muestra a continuación:
/= . . + . . + . .
Aplicando doble negación:
/̿ = 11111111111111111111111111111111
. . + . . + . .
(no se modifica la expresión, pues /̿ = /)
Aplicando el teorema de De Morgan a la negación inferior:
/ = ̅. . . . . . . . ̅
Aplicando el teorema de De Morgan a los términos producto negados:
/ = + + ̅ . ̅ + + ̅ . ̅ + +
Aplicando el teorema de De Morgan nuevamente:
/ = + + ̅ + ̅ + + ̅ + ̅ +
+
Analizando esta expresión equivalente, se observa que los términos producto se han transformado en
sumas negadas por aplicación del teorema de De Morgan. Sin embargo, la suma entre estas sumas
negadas no se encuentra negada, como requiere la forma NOR. Por esta razón se debe volver a aplicar
doble negación a la expresión completa:
/̅ = + + ̅ + ̅ + + ̅ + ̅ + + 78
Ejemplo (continuación)
La implementación de la función lógica consiste en utilizar una compuerta NOR por cada variable
negada y por cada suma negada presente en la expresión equivalente, como se muestra a continuación:
Figura 3.30 Implementación de la función lógica mediante compuertas NOR.
Simplificación de funciones lógicas
Cualquiera sea la implementación que se realice de una función lógica, su
costo estará en relación directa a su complejidad. Como hemos visto, las
funciones lógicas pueden presentar expresiones equivalentes, cada una de ellas
con mayor o menor número de términos. Por esta razón, a fin de alcanzar un
diseño óptimo, suele ser recomendable simplificar o reducir las funciones
previamente a su implementación.
La minimización de términos de una expresión booleana, consiste en
hallar una expresión booleana equivalente que sea más sencilla, es decir, que
tenga, si es posible, menos términos que la expresión original y que cada
término tenga la menor cantidad de variables. Esto se consigue mediante la
detección y absorción de términos de alguna de las siguientes formas:
A + A = 1;
A + 1 = 1;
79
A⋅ A = 0 ;
A⋅0 = 0
Ejemplo
Sea simplificar la expresión de la función F ( A, B, C ) = A ⋅ C + B ⋅ C + A ⋅ C + A ⋅ B
Para implementar la función original se requieren 4 compuertas AND de 2 entradas, una OR de 4
entradas y dos inversores.
Figura 3.31 Implementación
de la función lógica sin
reducir.
F ( A, B, C ) = A ⋅ C + B ⋅ C + A ⋅ C + A ⋅ B
Sacando factor común C en los términos 1º y 3º (propiedad distributiva):
F ( A, B, C ) = ( A + A) ⋅ C + B ⋅ C + A ⋅ B = 1 ⋅ C + B ⋅ C + A ⋅ B = C + B ⋅ C + A ⋅ B
Haciendo lo mismo ahora con los 2 primeros términos:
F ( A, B, C ) = C ⋅ (1 + B ) + A ⋅ B = C ⋅ 1 + A ⋅ B = C + A ⋅ B
La implementación de la función una vez reducida, requiere sólo 1 compuerta AND de 2 entradas, una
OR de dos entradas y 2 inversores.
Figura 3.32 Implementación de la función
lógica simplificada.
Con la simplificación se busca lograr:
1. Menor número de variables.
2. Menor número de términos (ya que, por lo general, un término suele
corresponderse con una compuerta lógica).
3. Menor valor asociado. Este valor sigue la siguiente fórmula:
nº variables + nº términos – nº términos con un solo literal –1
El primer criterio (el número de variables) nos va a dar idea del número
de entradas que debe tener cada compuerta lógica del primer nivel. Es decir, en
el caso de suma de productos, nos indicará el número de entradas de cada
80
compuerta AND. En el caso de producto de sumas, nos indicará el número de
entradas de cada compuerta OR.
El segundo criterio nos va a dar idea del número aproximado de
compuertas del primer nivel.
Por último, el tercer criterio nos va a dar idea del número de términos que
no serán implementados con compuertas (cada término con un solo literal será
implementado con un solo cable).
Métodos para la simplificación de funciones lógicas
La simplificación no resulta, en general, tan evidente como en el ejemplo
anterior. Se recurre entonces a métodos de simplificación de funciones lógicas.
Los más usados son:
Simplificación algebraica. Consiste en la aplicación de los teoremas y
propiedades del algebra de Boole. Es un método por inspección y por ello se
convierte en un proceso de prueba y error, ya que no siempre es obvio
determinar cuál de los teoremas es conveniente aplicar para obtener el
resultado más simple. Tiene como desventaja que la aplicación del método
no garantiza por sí misma que la expresión equivalente obtenida sea la más
simple.
Mapas de Karnaugh. Es un método gráfico que permite obtener la
expresión equivalente más simple de una expresión algebraica booleana. Su
uso práctico se limita a funciones de hasta seis variables.
Métodos tabulares. Es un método que aplica los mismos principios que el
de mapas de Karnaugh, pero su forma tabular permite aplicar algoritmos
numéricos y su implementación mediante programas informáticos. Su
ventaja es la de permitir trabajar con funciones de más de 6 variables.
Nos limitaremos al uso de mapas de Karnaugh como método de
simplificación
Mapas de Karnaugh
El método de simplificación de mapas de Karnaugh es un método que
consiste en representar gráficamente las adyacencias lógicas que hacen posible
la detección de términos a absorber.
Se dice que dos términos tienen adyacencia lógica o son lógicamente
adyacentes cuando difieren en una sola variable, de manera tal que esa variable
aparece en forma directa en uno de los términos y en forma complementada en
el otro término. Cuando dos términos presentan esta característica, es posible
realizar una simplificación entre ambos, como se muestra en la Figura 3.33
La Figura 3.33 muestra el concepto de adyacencia lógica utilizando una
función de ejemplo F expresada en forma canónica disyuntiva y el proceso de
simplificación algebraica que permite reducir los términos adyacentes.
̅+
" , ,
= ̅ ̅+
1º y 2º término: ̅ ̅ y
̅ y ̅
2º y 3º término:
1º y 3º término: ̅ ̅ y ̅
̅
̅ nosonadyacentesporquedi9ierenenlasvariablesAyB
nosonadyacentesporquedi9ierenenlasvariablesA, ByC
sonadyacentesporquesólodi9ierenenlavariableC
81
Simplificación:
Reordenando términos: "
, ,
= ̅
̅+ ̅
"
, ,
= ̅
̅+
"
, ,
= ̅ +
̅
+
̅
+
̅
Figura 3.33 Simplificación de términos adyacentes.
El mapa de Karnaugh consiste en utilizar celdas o casillas dispuestas
gráficamente de manera tal que entre celdas vecinas, en forma horizontal o
vertical, exista adyacencia lógica. Esto significa que entre una celda y otra sólo
cambia una variable y agrupando celdas adyacentes obtenemos términos
adyacentes que pueden reducirse a una expresión con una variable menos, como
se muestra en la Figura 3.33.
B
B
A
BA
B
0
C
1
B
00
A 0
C 0
A 1
C 1
B
01
A
a) 2 variables AB
DC
00
BA
B
B
D
11
DC
10
00
01
B
A
11
10
A
C
C
C
B
D
00
BA
A
A
A
DC
D
01
11
10
00
A
01
B
A
11
10
A
C
C
B
C
D
00
BA
Mapa para E = 0
c) 4 variables ABCD
10
b) 3 variables ABC
D
01
11
D
01
11
10
00
A
01
A
11
10
A
C
C
C
Mapa para E = 1
d) 5 variables ABCDE
Figura 3.34 Mapas de Karnaugh según el número de variables.
Dada una función lógica, la representación gráfica del mapa
correspondiente asocia las celdas del mapa con las filas de la tabla de verdad de
la función lógica. El mapa presenta las siguientes características:
Existen tantas celdas como filas tiene la tabla de verdad de la función a
representar. O sea, para funciones de n variables resultan mapas de 2n celdas.
Cada celda del mapa se corresponde con una fila de la tabla y contiene el
valor de la función para esa combinación de valores de las variables
(generalmente suelen colocarse los 1’s y obviarse los 0’s).
Los términos que difieren sólo en una variable (adyacencia lógica) resultan
físicamente adyacentes en la tabla. Esta relación de adyacencia física, se
entiende horizontal y/o verticalmente (no diagonal). En las representaciones
de 5 y 6 variables, las vecindades se determinan superponiendo mapas para 4
variables. No se utilizan, en general, para más de 6 variables.
82
De acuerdo a estas consideraciones, resultarán mapas de 4 celdas si se
opera con 2 variables; de 8 celdas para 3 variables y de 16 celdas para 4
variables. Para representar funciones de 5 variables se trazan 2 mapas de 4
variables que se consideran superpuestos.
La disposición de las celdas del mapa se realiza de forma tal que las
celdas contiguas representen minterms que difieran solamente en una variable.
Esto se representa mediante encabezados de filas y de columnas en el mapa,
como se muestra en la Figura 3.34.
Llenado de un mapa
El llenado del mapa consiste en transcribir en las celdas correspondientes
los unos, las inespecificaciones y si fuese necesario los ceros, de la tabla de
verdad de la función a minimizar. La correspondencia de cada una de las filas
de la tabla con las celdas del mapa se produce de acuerdo a la ubicación de las
variables de referencia del mapa.
Figura 3.35 Ejemplo de llenado de un
mapa.
Encirculamientos
Este paso consiste en agrupar términos que tienen adyacencia lógica. Para
ello, se observan en el mapa los 1's y sus eventuales vecindades para detectar
grupos formados por 2,4 u 8 celdas vecinas.
Los unos que tengan un solo adyacente, se encircularán juntos y esto
indica que absorben 1 variable. Los grupos de 4 unos vecinos absorben 2
variables; los grupos de 8 unos vecinos absorben 3 variables; etc. El método
consiste en realizar los encirculamientos más grandes posibles
El proceso concluye cuando se han encirculado todos los unos. El hecho
de que un "1" haya sido incluido en más de un encirculamiento, significa que
ese minterm fue utilizado más de una vez para hacer reducciones, lo cual es
correcto (equivale a haber usado la propiedad de que A + A + ... + A = A).
Puede ocurrir que el mapa presente unos aislados (sin vecinos).Esto
significa que ese término no se puede asociar con otro para realizar alguna
absorción.
83
(a)
(b)
(c)
Figura 3.36 a) y b) Encirculamientos del mapa c) Resultado de los encirculamientos realizados.
Aunque lo más habitual sea realizar los encirculamientos de los unos del
mapa de Karnaugh, también es posible volcar en el mapa los ceros de la tabla y
hacer los encirculamientos entre ellos. En este caso, se debe tener en cuenta que
al leer los encirculamientos de los ceros se estará obteniendo " .
Lectura de un mapa
El último paso consiste en leer todos los encirculamientos en términos de
las variables lógicas, obteniendo así la expresión de la función lógica en su
forma simplificada.
La lectura de los encirculamientos realiza el proceso de absorción de
variables en forma gráfica. Para aclarar esto, considere como ejemplo el primer
encirculamiento de cuatro unos mostrado en la Figura 3.36. El equivalente
analítico de leer dicho encirculamiento es el siguiente:
Sacando factor común
y
Como +
= 1; resulta:
Sacado factor común :
Como ̅ +
= 1,resulta:
:
@ABCDBEFG#CHAIJK
@ABCDBEFG#CHAIJK
@ABCDBEFG#CHAIJK
@ABCDBEFG#CHAIJK
@ABCDBEFG#CHAIJK
= ̅
+ ̅
+
̅
=
+
+
= ̅ +
̅+
=
=
+
+
Para realizar la lectura de los encirculamientos, se toma como referencia
las zonas de las variables dispuestas en el mapa. Si el encirculamiento se
encuentra totalmente contenido en la zona perteneciente a una variable, ya sea
directa o negada, esa variable forma parte de la expresión. Si el encirculamiento
ocupa zonas donde una variable esta en forma directa pero también ocupa zonas
donde dicha variable se encuentra negada, esa variable queda absorbida. La
utilidad del mapa es que estas absorciones se evidencian gráficamente.
Finalmente, la expresión simplificada de la función lógica, se obtiene
realizando la suma lógica de los encirculamientos del mapa.
Figura 3.37 Proceso de lectura de un mapa:
84
Ejemplo
Minimizar mediante el mapa de Karnaugh la función dada por la siguiente tabla de verdad:
D
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
C
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
A
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
F
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
Como puede observarse en el mapa, no hay 1's aislados. Los términos 0011 y 1101 tienen un vecino cada
uno, que son respectivamente los minterms 0010 y 0101. Esto define los 2 primeros encirculamientos.
Luego seguimos con los términos 0100 y 0110 que son vecinos entre sí -considerando la vecindad entre
la columna de la derecha y la de la izquierda como si el mapa se cerrara en forma de cilindro vertical- y
además con casillas de la fila superior, admitiendo un encirculamiento máximo de 4 elementos y
absorbiendo 2 variables. Para terminar, nos falta encircular los 1's de las esquinas, que al considerar las
vecindades entre la columna de la izquierda y la de la derecha que acabamos de indicar y entre la fila
superior y la inferior (cilindro horizontal), nos permite reunirlos juntos en otro encirculamiento de 4
elementos (se absorben también aquí 2 variables).
N ̅+ ̅ ̅+
Finalmente la función simplificada será: " = M
N ̅
+M
Funciones con términos indiferentes
Como se mencionó anteriormente, algunas funciones presentan la
particularidad de que ciertas combinaciones de sus variables de entrada nunca
se pueden presentar, por lo que reciben el nombre de funciones
incompletamente especificadas o funciones con términos indiferentes.
No tiene sentido entonces hablar del valor de la función para estas
combinaciones, ya que nunca se van a presentar (o no deberían presentarse). En
los mapas y tablas, se les hace una marca distintiva (generalmente una “x”).
Estos valores no especificados de la función pueden considerarse como unos o
ceros, según convenga para obtener la expresión mínima.
85
Ejemplo
Minimizar la expresión de la función indicada en el mapa de Karnaugh de la figura 3.31
En a) se han marcado los encirculamientos tomando en cuenta sólo los “1’s”, lo cual equivale a suponer
“0” los valores no especificados. La expresión mínima para F en estas condiciones resulta de leer los tres
N
N ̅
encirculamientos: " = M
+M
+M
(a)
Figura 3.38
(b)
Mapa con inespecificaciones
a) Encirculamiento de los unos del mapa
b) Encirculamiento utilizando adecuadamente los valores no especificados:
En cambio si se utilizan los valores no especificados (x) de manera conveniente, se pueden realizar los
N
encirculamientos marcados en b), con lo cual la expresión de F resulta más compacta: " =
+M
Esto significa haber considerado como “1’s” los valores no especificados incluidos en los
encirculamientos y como “0’s” los restantes. Si se llegaran a presentar las combinaciones prohibidas de
los valores de entrada, los valores no especificados tomados como “0’s” no activarán la función F (F = 0)
y los tomados como “1’s” sí la activarán (F = 1).
Diseño de circuitos lógicos
Una vez que se encuentra definido el comportamiento y funcionalidad
que debe resolver un circuito lógico, el diseño consiste en la implementación de
la función lógica que describe las reglas a aplicar sobre las entradas para
obtener la salida deseada.
A este efecto, se propone una metodología de diseño en base a los
conceptos hasta aquí vertidos, siguiendo los siguientes pasos:
1. Obtener la tabla de verdad. Como se ha mostrado en los apartados previos,
la tabla de verdad es una forma de representación de la función lógica. Puede
obtenerse a partir de la descripción de las condiciones a cumplir o en caso de
disponer de una expresión booleana, evaluando dicha expresión para las
combinaciones posibles de las variables de entrada.
2. Minimización de la función lógica. Como criterio de optimización de
diseño, se debe buscar la implementación de la expresión mínima de la
función. Utilizaremos el método de mapas de Karnaugh para obtener la
expresión mínima.
86
3. Implementación a nivel de compuertas. Según la complejidad de la
función lógica, la implementación puede realizarse mediante compuertas
lógicas que conformen un conjunto completo (compuertas universales).
Cabe mencionar que otras alternativas para el diseño de circuitos lógicos
(que no serán tratadas aquí), incluyen el uso de simuladores, emuladores y
lenguajes de descripción de componentes de hardware.
Concepto eléctrico de Entrada y Salida de un circuito
Hemos descrito las entradas y salidas de los circuitos digitales como
señales eléctricas de tensión o voltaje que representan valores lógicos.
Describiremos a continuación aspectos a tener en cuenta en el análisis de
circuitos lógicos desde el punto de vista eléctrico.
En la Figura 3.39 se muestra el bloque funcional representativo de un
circuito o dispositivo electrónico digital cualquiera con una entrada y una salida,
en donde se indican los terminales de alimentación del circuito y los terminales
de entrada y salida del mismo.
Figura 3.39 Bloque funcional representativo de un
dispositivo eléctrico / electrónico cualquiera:
El terminal GND es el terminal de masa o tierra del circuito. Es el punto
de referencia de potencial eléctrico al que se le asigna el nivel de tensión cero y
al cual se conecta el borne negativo de la fuente de alimentación. El terminal de
alimentación del circuito, Vcc, es el terminal por donde se aplica la tensión de
alimentación al circuito, es decir, en el cual se conecta el borne positivo de la
fuente de alimentación. Dado que estas conexiones son un requisito práctico
para el funcionamiento del circuito, por simplicidad se suele omitir la
representación de estos terminales en los diagramas circuitales.
En el bloque funcional, Ve representa la señal eléctrica aplicada en la
entrada y Vs la señal eléctrica generada o volcada por el circuito sobre su salida.
Se define como entrada de un circuito o dispositivo electrónico a aquel
terminal por donde el circuito está preparado para “recibir” una señal eléctrica
de entrada. Esta señal eléctrica de entrada es la diferencia de potencial o voltaje
Ve aplicado entre dicho terminal de entrada y la masa o tierra del circuito. En el
diagrama funcional se identifica el terminal de entrada con una flecha de sentido
entrante al circuito o al bloque funcional representativo del mismo.
De la misma manera, se define como salida de un circuito o dispositivo
electrónico al terminal por donde el circuito “vuelca o coloca”, a modo de un
generador eléctrico o fuente de alimentación, una señal eléctrica de salida. Esta
señal eléctrica de salida es la diferencia de potencial o voltaje Vs generado entre
dicho terminal de salida y la masa o tierra del circuito (ver Figura 3.39). En un
diagrama funcional se puede identificar al terminal de salida con una flecha de
sentido saliente del circuito o bloque funcional representativo del mismo. La
87
señal de salida de un circuito puede usarse como la señal de entrada a otro
circuito, estableciendo una conexión eléctrica entre ambos.
Es importante aclarar que las flechas identificatorias de los terminales de
entrada y de salida mostradas en el diagrama de la Figura 3.39 se grafican a los
fines de resaltar la función de dichos terminales en el circuito. Estas flechas no
indican el sentido de circulación de corriente en los terminales, sino que
simbolizan su carácter de entrada o salida. Como veremos más adelante, la
circulación de corriente puede ser saliente o entrante, independientemente de
que se trate de un terminal de entrada o de salida, Con esto se pretende dejar en
claro que las entradas y salidas de un dispositivo no son corrientes propiamente
dichas sino que son valores de voltaje o tensión presentes en los respectivos
terminales. En el caso de circuitos lógicos, las entradas y salidas serán señales
eléctricas digitales binarias que materializan “ceros” y “unos” a través de dos
intervalos de tensión bien diferenciados (ver Figura 3.7).
También se debe tener en cuenta que el bloque funcional de la Figura
3.39 representa un circuito con una sola entrada y una sola salida, pero en
general, un circuito puede tener varias entradas y varias salidas.
Ejemplo
Sea el circuito lógico mostrado en la Figura 3.40, compuesto por una compuerta inversora. Se muestra el
terminal de alimentación Vcc y el terminal GND (masa del circuito), los cuales deben conectarse a los
bornes positivo y negativo de la fuente de alimentación, respectivamente.
(a)
(b)
Figura 3.40 a) Terminales de un circuito lógico b) Diagrama temporal
En el terminal de entrada, se aplica al circuito la señal Ve, una señal eléctrica digital que toma un valor
de tensión de 0 volts en nivel BAJO y 5 volts en nivel ALTO. El diagrama temporal muestra un ejemplo
de los valores que toma esta señal digital de entrada.
En el terminal de salida, el circuito vuelca los valores de la señal eléctrica Vs, que es una señal eléctrica
digital cuyo valor depende de los valores de la señal de entrada. En este caso, por tratarse de un circuito
compuesto por un INVERSOR, la señal de salida Vs será el complemento booleano de la señal de
entrada Ve, tal como se muestra en el diagrama temporal.
88
Descargar