Subido por Encarnita Electrónica

Tema 1. Fundamentos de electronica digital

Anuncio
LÓGICA DIGITAL Y MICROPROGRAMABLE
TEMA 1: FUNDAMENTOS DE ELECTRÓNICA DIGITAL. PUERTAS LÓGICAS.
TÉCNICAS DE DISEÑO Y SIMPLIFICACIÓN DE FUNCIONES LÓGICAS.
1.- INTRODUCCIÓN.
2.- SISTEMAS DE NUMERACIÓN.
2.1.- SISTEMA BINARIO NATURAL.
2.2.- CÓDIGO BCD.
2.3.- CÓDIGO GRAY.
2.4.- SISTEMA HEXADECIMAL.
3.- ALGEBRA DE BOOLE.
3.1.- VARIABLES Y OPERACIONES BÁSICAS.
3.1.1.- Suma lógica.
3.1.2.- Producto lógico.
3.1.3.- Complementación o negación.
3.2.- PROPIEDADES.
4.- TABLA DE VERDAD Y FUNCIONES LÓGICAS.
5.- PUERTAS LÓGICAS.
5.1.- PUERTA NOT.
5.2.- PUERTA OR.
5.3.- PUERTA AND.
5.4.- PUERTA EX–OR.
5.5.- PUERTA NOR.
5.6.- PUERTA NAND.
5.7.- PUERTA EX–NOR.
6.- DISEÑO Y SIMPLIFICACIÓN DE FUNCIONES LÓGICAS.
6.1.- OBTENCIÓN DE LAS FORMAS CANÓNICAS.
6.2.- MÉTODO ALGEBRAICO.
6.3.- MAPAS DE KARNAUGH.
6.4.- REALIZACIÓN DE FUNC. LÓGICAS CON PUERTAS NAND O NOR.
6.5.- OTROS MÉTODOS.
7.- BIBLIOGRAFÍA.
Curso 2009-10
Lógica Digital y Microprogramable
1.- INTRODUCCIÓN. DIFERENCIA ENTRE ELECTRÓNICA DIGITAL Y
ELECTRÓNICA ANALÓGICA.
El enunciado de este tema hace referencia a unos elementos que son la base de la
electrónica digital, ya que las puertas lógicas (implementación física de las funciones
lógicas) son la base de un gran grupo de circuitos digitales conocidos como circuitos
combinacionales.
La electrónica digital está presente hoy en día en multitud de aparatos y
electrodomésticos, tales como relojes, calculadoras, ordenadores y accesorios, y un
largo etcétera. Cada día aparecen nuevos usos, normalmente para mejorar las
prestaciones de aparatos y electrodomésticos que ya existían antes, como teléfonos
móviles, televisores, o reproductores de DVD y mp3, estos últimos que antes no
existían, pero sí otros aparatos que realizaban funciones equivalentes con peores
prestaciones.
Pero, ¿dónde están las ventajas? El uso de la electrónica en las aplicaciones
anteriormente mencionadas se centra, fundamentalmente, en el tratamiento de la
información o de las señales eléctricas implicadas. Para entender las ventajas que
presenta el tratamiento digital de la información hay que diferenciar entre electrónica
digital y analógica. En la electrónica analógica, las señales eléctricas tienen un valor
máximo y otro mínimo, entre los cuales pueden presentar infinitos valores intermedios,
siendo la calidad de los componentes la que marque la sensibilidad del sistema. En la
electrónica digital, las señales eléctricas sólo pueden presentar dos valores, de forma
que la información que presenta una única señal digital es de tipo binario. A esta
información, se la llama de diferentes maneras: verdadero o falso, nivel alto o nivel
bajo, uno lógico (‘1’) o cero lógico (‘0’). Obviamente la información digital viene en un
conjunto de señales eléctricas codificadas de una manera determinada. A cada señal
binaria de información de la llama bit (del inglés binary digit), que significa
literalmente dígito binario, es decir dígito con dos únicas posibilidades.
Las ventajas más importantes de la electrónica digital se resumen en:
-
-
La precisión o sensibilidad del sistema no dependen de la calidad de los
componentes, sino del número de bits empleado, ya que cuanto mayor es el
número de bits, mayor información puede contener.
La información se puede codificar de distintas formas, según interese.
Hoy en día existen multitud de soportes de almacenamiento de información
digital, así como para su posterior tratamiento.
2.- SISTEMAS DE NUMERACIÓN.
Dado que en electrónica digital, la información viene contenida en bits, esto quiere
decir que la información es de tipo binario. Por lo tanto, vamos a repasar el sistema
binario, y algunos de los códigos binarios más importantes. Después, estudiaremos el
sistema hexadecimal, ya que al tener base 16, tiene una equivalencia inmediata con el
sistema binario.
Antes de repasar el sistema binario, vamos a repasar el sistema decimal, ya que
todos los sistemas de numeración son iguales, con la salvedad de la base. Como
David Sornosa Cervera
2
Curso 2009-10
Lógica Digital y Microprogramable
sabemos, en sistema decimal tenemos 10 cifras (desde 0 al 9), y tiene base 10. Para
obtener un número en sistema decimal, multiplicamos cada cifra por potencias de la
base (donde dn ... d0 son las cifras con valores entre 0 y 9):
d n ·10 n + d n −1 ·10 n −1 + .... + d 1 ·101 + d 0 ·10 0
Por ejemplo: 537 = 5·10 2 + 3·101 + 7·10 0
2.1.- SISTEMA BINARIO NATURAL.
El sistema binario natural tiene la misma estructura que el sistema decimal, con la
diferencia que tiene base 2, y sus cifras (bn ... b0), sólo pueden tomar el valor 0 ó 1. Por
lo tanto, para obtener el número en base 10:
b n ·2 n + b n −1 ·2 n −1 + .... + b1 ·21 + b 0 ·2 0
Por ejemplo: 100101( 2 = 1·2 5 + 0·2 4 + 0·2 3 + 1·2 2 + 0·21 + 1·2 0 = 37 (10
Si queremos hacer la conversión al revés, de decimal a binario, hay que hacer
sucesivas divisiones entre 2, sin tomar decimales, donde el cociente de una división es
el dividendo de la siguiente, hasta que el cociente de 1 como resultado. Entonces, este
último cociente, junto con los restos, tomados en el orden contrario al que se
obtuvieron, forman el número binario.
37
1
2
18
0
2
9
1
último bit
(LSB)
37 (10 = 100101( 2
2
4
0
2
2
0
2
1
MSB y LSB son las siglas, en inglés, de
bit más significativo y bit menos
significativo, respectivamente; es decir,
en una escritura de izquierda a derecha,
primer bit y último bit.
primer bit
(MSB)
El número de combinaciones (N) en sistema binario natural, que se pueden hacer
con n bits es:
N = 2n
[1]
El número más grande que se puede representar con n bits es: 2 n − 1
[2]
2.2.- CÓDIGO BCD.
Existen multitud de códigos binarios, cada uno con sus aplicaciones. Las siglas
BDC significan, en inglés, decimal codificado en binario. El código BCD representa las
cifras del sistema decimal, una a una, en sistema binario. Para representar cifras del 0 al
David Sornosa Cervera
3
Curso 2009-10
Lógica Digital y Microprogramable
9 en binario, se necesitan 4 bits (ecuación [1]), por lo tanto el código BCD utiliza 4 bits
por cada cifra decimal.
Ejemplo: 852 (10 = 1000
{ 0101
{ 0010
{
8
5
2
( BCD
Como se observa en el ejemplo, escribiendo en el lugar de cada cifra los cuatro bits
correspondientes en binario natural, se obtiene rápida y fácilmente el código BCD.
Además, esta operación es reversible, es decir si tomamos los bits de cuatro en cuatro, y
los sustituimos por su valor en decimal, obtenemos las cifras del sistema decimal. Esta
rápida conversión a y desde decimal, es la principal ventaja del código BCD,
especialmente de cara a los circuitos digitales necesarios para hacer las conversiones.
Como con 4 bits aparecen 16 combinaciones, hay 4 combinaciones prohibidas, las
que se corresponden con los números 11 al 15.
Tener que usar obligatoriamente 4 bits para cada cifra, es una desventaja porque se
necesitan muchos bits para representar poca información.
2.3.- CÓDIGO GRAY.
El código GRAY es un código binario cuya característica principal es que, entre
dos números cualesquiera consecutivos, sólo cambia un bit.
La forma de obtener el código Gray de n bits, es partir del código Gray de n – 1
bits. Se escribe el código Gray de n – 1 bits y se copia en orden inverso (o reflejado).
Después, se añade un 0 a la primera mitad del código, y un 1 a la segunda mitad (la
copiada o reflejada). Veamos como obtener el código Gray, de 4 bits.
El código Gray de 1 bit es, simplemente: 0, 1.
Para obtener el código Gray de 2 bits, copiamos dos veces el de 1 bit, y añadimos
ceros y unos.
0, 1
00, 01
1, 0
11, 10
Con lo que el código Gray de 2 bits es: 00, 01, 11, 10.
Obtenemos por último el código Gray de 3 bits, a partir del de 2 bits:
00, 01, 11, 10 10, 11, 01, 00
000, 001, 011, 010 110, 111, 101, 100
Con lo que el código Gray de 3 bits es: 000, 001, 011, 010, 110, 111, 101, 100.
La ventaja del código Gray no está en su equivalente numérico, el cual no tiene
importancia, sino en que establece un orden de las combinaciones, de forma que sólo
cambia un bit de un número al siguiente, incluidos el primero y el último.
David Sornosa Cervera
4
Curso 2009-10
Lógica Digital y Microprogramable
2.4.- SISTEMA HEXADECIMAL.
El sistema hexadecimal emplea la base 16. Como en sistema decimal sólo tenemos
10 cifras, faltan 6, que se toman de las 6 primeras letras del alfabeto: A, B, C, D, E y F.
Las cifras del sistema hexadecimal son: (entre paréntesis su equivalente decimal)
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A (10), B (11), C (12), D (13), E (14) y F (15).
A parte de utilizar 6 cifras nuevas, en lo demás es como cualquier sistema de
numeración, por lo tanto para obtener su equivalente decimal hay que multiplicar sus
cifras (hn ... h0) por potencias de la base:
h n ·16 n + h n −1 ·16 n −1 + .... + h 1 ·161 + h 0 ·16 0
Ejemplo: FE0 (16 = 15·16 2 + 14·161 + 0·16 0 = 15·256 + 14·16 = 3840 + 224 = 4064 (10
Obsérvese que se ha usado el valor 15 para la cifra F, y el valor 14 para la cifra E.
Para realizar la conversión de decimal a hexadecimal, se procede de igual forma
que para pasar de decimal a binario, sólo que ahora el divisor es 16, por tratarse de
hexadecimal, y se divide hasta que el cociente sea menor de 16.
4064
0
16
254
14
16
15
E
F
último dígito
hexadecimal (LSD)
primer dígito
hexadecimal (MSD)
La utilidad del sistema hexadecimal, a parte de representar números con menor
cantidad de cifras que otros sistemas de base menor, estriba en que al ser la base una
potencia de dos, el sistema hexadecimal tiene una conversión directa a y desde el
sistema binario.
Para pasar de binario a hexadecimal, basta con tomar los bits de cuatro en cuatro y
representar su correspondiente dígito hexadecimal.
Ejemplo: 101111000011( 2 = 1011
{ 1100
{ 0011
{ = BC3 (16
11( B ) 12 ( C )
3
Para pasar de hexadecimal a binario, basta con representar cada dígito hexadecimal
por sus cuatro bits correspondientes.
Ejemplo: ADE (16 = 1010
{ 1101
{ 1110
{
A (10 ) D (13) E (14 )
David Sornosa Cervera
(2
5
Curso 2009-10
Lógica Digital y Microprogramable
3.- ALGEBRA DE BOOLE.
3.1.- VARIABLES Y OPERACIONES BÁSICAS.
A mediados del siglo XIX, el matemático inglés George Boole desarrolló un
álgebra en la cual los elementos sólo pueden tomar los valores1 ‘0’ y ‘1’, y sobre la cual
se definen tres operaciones básicas: suma lógica, producto lógico y complementación o
negación. Esta álgebra ha sido utilizada posteriormente en el desarrollo matemático de
circuitos en los cuales los elementos pueden tomar dos valores o posiciones, como son
los circuitos digitales; pero también en circuitos neumáticos, o en circuitos con
interruptores. Sea cual sea la naturaleza del circuito, se asocian ciertas magnitudes
variables implicadas a las variables lógicas. Por ejemplo, en electrónica digital, es
frecuente que el valor de tensión 5 V se asocie con ‘1’ y el valor de tensión 0 V se
asocie con ‘0’.
3.1.1.- Suma lógica.
Es una función que da ‘1’ cuando al menos una de las variables de está a ‘1’. Esta
operación lógica se simboliza con el signo +, pero hay que recordar que se trata de una
operación del álgebra de Boole, y no del álgebra tradicional.
3.1.2.- Producto lógico.
Es una función que da ‘1’ cuando todas las variables de entrada están a ‘1’. Se
simboliza con el signo normal del producto ·, pero nuevamente no hay que confundir
con el producto del álgebra tradicional.
3.1.3.- Complementación o negación.
También llamada función inversora, su salida es ‘0’ si la entrada es ‘1’, y viceversa.
Su símbolo es una raya por encima de la variable a negar, por ejemplo para representar
la variable A negada se escribe A .
3.2.- PROPIEDADES.
El álgebra de Boole tiene una serie de postulados, teoremas y leyes, de los cuales se
van a mostrar únicamente los más importantes.
a) a = a
b) a + 1 = 1
c) a · 0 = 0
d) a + a = 1
e) a · a = 0
1
Se utilizan comillas para remarcar que son valores lógicos, pertenecientes al álgebra de Boole.
David Sornosa Cervera
6
Curso 2009-10
f) Idempotencia:
Lógica Digital y Microprogramable
a+a=a
a·a=a
g) Elemento neutro:
a+0=a
a·1=a
h) Propiedad conmutativa:
a+b=b+a
a·b=b·a
i) Propiedad asociativa:
a + (b + c) = (a + b) + c
a · (b · c) = (a · b) · c
j) Propiedad distributiva:
a · (b + c) = a · b + a · c
a + (b · c) = (a + b)·(a + c)
k) Ley de absorción:
a + a · b = a;
a · (a + b) = a
l) Leyes de De Morgan:
a + b = a ·b
a·b = a + b
Muchas de las propiedades son postulados, por lo que no requieren demostración,
las otras, son demostrables o bien mediante el álgebra de Boole, o bien mediante tabla
de verdad, herramienta que se presenta en el siguiente apartado, y mediante la cual se
pueden demostrar todas las propiedades.
Algunas propiedades llaman la atención, por comparación a como resultan en el
álgebra tradicional. Por ejemplo, las propiedades de idempotencia, nos dicen que una
variable sumada o multiplicada por ella misma es ella misma. Esta propiedad, sin
embargo, no requiere más demostración que recordar las definiciones de la suma y el
producto lógicos.
Las leyes de absorción, tienen fácil demostración por álgebra de Boole:
a + a · b = a · (1 + a); como 1 + a = 1, queda: a + a · b = a · 1 = a
a · (a + b) = a · a + a · b = a + a · b = a
La segunda propiedad distributiva, se demuestra así:
(a + b)·(a + c) = a · a + a · c + a · b + b · c = a + a · c + a · b + b · c = a + b · c
David Sornosa Cervera
7
Curso 2009-10
Lógica Digital y Microprogramable
4.- TABLA DE VERDAD Y FUNCIONES LÓGICAS.
Las funciones lógicas son funciones que operan con variables de tipo lógico, y dan
como resultado otras variables lógicas. La suma lógica, el producto lógico y la función
negación son las funciones lógicas básicas, en función de ellas se puede expresar
cualquier otra función lógica. Pero hay otra manera de expresar una función lógica:
mediante su tabla de verdad. Una tabla de verdad es una tabla, donde se recogen todas
las combinaciones posibles de las variables entradas, y se muestran las salidas para cada
combinación de las entradas. Es por tanto, una manera gráfica muy directa, para
representar una función lógica, pero tiene el inconveniente que, al tener que mostrar
todas las combinaciones posibles de las entradas, puede ocupar mucho espacio. Veamos
un ejemplo de función lógica de 3 entradas (a, b, c) y una salida (f). El número de
combinaciones posibles con 3 entradas es: 23 = 8.
Figura 1.
Ejemplo de 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
1
1
0
0
1
0
1
0
La tabla de verdad es también un herramienta para el diseño de las funciones
lógicas. A no ser que la función sea muy sencilla, es conveniente plasmarla en una tabla
de verdad antes de expresarla algebraicamente.
Por ejemplo, supongamos que hay un proceso industrial, con unos captadores de
alarma que, una vez adaptados convenientemente se convierten en señales digitales
(supongamos sólo 3 con objeto de simplificar) llamadas a, b y c. Queremos una función
lógica que se active cuando se active cualquiera de las 3 alarmas. Esto sería claramente
una función suma lógica: f = a + b + c. Si la función de alarma se tiene que activar
cuando se activen todas las alarmas a la vez, entonces la función sería f = a · b · c.
Pero supongamos el caso en que la función de alarma deba activarse en el caso de
que se activen dos de las tres alarmas a la vez. En este caso, y en muchos otros, lo mejor
es escribir la tabla de verdad y mirar cada combinación de entradas para pensar cual es
la salida correspondiente.
Figura 2. Tabla de verdad de la
función “alarma activada cuando
se activan 2 entradas”.
David Sornosa Cervera
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
0
0
0
1
0
1
1
1
8
Curso 2009-10
Lógica Digital y Microprogramable
5.- PUERTAS LÓGICAS.
Es ahora el momento de introducir el concepto de puertas lógicas al que hace
referencia el título del tema. Las puertas lógicas, son la implementación física de las
funciones lógicas, en electrónica digital. Como se ha contado, las funciones lógicas no
son de uso exclusivo de la electrónica digital, en cambio cuando se habla de puertas
lógicas, se entiende que son dispositivos electrónicos que realizan funciones lógicas.
Hay 7 funciones lógicas implementadas en puertas lógicas, de cada una de ellas
vamos a ver su tabla de verdad, su expresión algebraica, sus símbolos, y su
implementación mediante diagrama de contactos, es decir, mediante interruptores o
pulsadores. En esta representación, las variables de entrada son interruptores o
pulsadores (es decir contactos en general), y se les da el valor ‘1’ cuando se pulsan o se
actúa sobre ellos, y el valor ‘0’ cuando se dejan en reposo. Por lo tanto, si se trata de un
contacto normalmente abierto, el uno lógico quiere decir contacto cerrado, pero si se
trata de un contacto normalmente cerrado, el uno lógico quiere decir contacto abierto.
La salida de la función se representa por una lámpara, si le llega electricidad y por tanto
se ilumina, el valor de la función es ‘1’, mientras que si la lámpara está apagada el valor
de la función es ‘0’.
Hay dos estándares para los símbolos de las puertas lógicas, el estándar
tradicional, que tuvo su origen en la industria militar, y el estándar 91-1984
IEEE/ANSI, que posteriormente ha sido adoptado por la mayoría de organismos y
normas internacionales, como la CEI (Comisión Electrotécnica Internacional) y las
normas españolas UNE. No obstante, el estándar tradicional estaba tan arraigado en la
industria que todavía es frecuente encontrarlo en muchas publicaciones, aunque
gradualmente está siendo aceptado el nuevo estándar.
5.1.- PUERTA NOT.
Representa a la función negación, también llamada función inversora o
complemento.
Tabla de verdad
a a
0 1
1 0
Símbolo tradicional
Símbolo CEI
a
a
a
1
a
5.2.- PUERTA OR. Representa la función suma lógica (función O).
Tabla de verdad Símbolo tradicional
a
0
0
1
1
b a+b
0 0
1 1
0 1
1 1
Símbolo CEI
Diagrama de contactos
a
a
b
David Sornosa Cervera
a+b
a
b
≥1
a+b
b
9
Curso 2009-10
Lógica Digital y Microprogramable
5.3.- PUERTA AND.
Representa la función producto lógico (función Y).
Tabla de verdad Símbolo tradicional
a
0
0
1
1
b a+b
0 0
1 0
0 0
1 1
Símbolo CEI
Diagrama de contactos
a
a
b
a
b
a ⋅b
&
b
a ⋅b
5.4.- PUERTA EX–OR.
Representa la función exclusive-OR (O exclusiva), también abreviada
frecuentemente XOR. La salida resulta ‘1’ cuando o bien una entrada está a ‘1’, o bien
la otra, pero no cuando ambas entradas están ‘1’ a la vez. Esta función, y por tanto su
puerta lógica, se definen únicamente para 2 entradas, a diferencia de las funciones suma
lógica y producto lógico, que pueden tener teóricamente cualquier número de entradas.
Para diferenciarse de la suma lógica, su símbolo es: ⊕ .
Tabla de
verdad
a
0
0
1
1
b a+b
0 0
1 1
0 1
1 0
Símbolo tradicional
Símbolo CEI
Diagrama de contactos
a
a
b
a⊕b
a
b
=1
b
a⊕b
En realidad, es una función compuesta, que se puede escribir en el álgebra de Boole
como:
Función XOR:
a ⊕ b = a·b + a·b
[3]
Por tratarse de una función compuesta, su diagrama de contactos, representa a la
función mostrada en la ecuación [3], por lo tanto por cada variable de entrada se
necesitan dos contactos, que se accionan a la vez, hecho que se simboliza uniendo los
contactos mediante líneas discontinuas.
5.5.- PUERTA NOR.
Representa a la función suma lógica negada. Obsérvese que su símbolo es el de la
puerta OR, negado con un pequeño círculo o con un pequeño triángulo.
David Sornosa Cervera
10
Curso 2009-10
Lógica Digital y Microprogramable
Tabla de
verdad
a
0
0
1
1
b a+b
0 1
1 0
0 0
1 0
Símbolo tradicional
Símbolo CEI
Diagrama de contactos
a
a
b
a
b
a+b
≥1
b
a+b
5.6.- PUERTA NAND.
Representa a la función producto lógico negada.
Tabla de
verdad
a
0
0
1
1
b a+b
0 1
1 1
0 1
1 0
Símbolo tradicional
Símbolo CEI
Diagrama de contactos
a
a
b
a
b
a ⋅b
a⊕b
=1
b
5.7.- PUERTA EX–NOR.
Representa a la función XOR negada, por lo que frecuentemente se abrevia XNOR.
Tabla de
verdad
a
0
0
1
1
b a⊕b
0
1
1
0
0
0
1
1
Símbolo tradicional
Símbolo CEI
Diagrama de contactos
a
a
b
a⊕b
a
b
=1
b
a⊕b
Al igual que la función XOR, es una función compuesta, de dos únicas entradas,
que se puede escribir en el álgebra de Boole como:
Función XNOR:
David Sornosa Cervera
a ⊕ b = a·b + a·b
[4]
11
Curso 2009-10
Lógica Digital y Microprogramable
6.- IMPLEMENTACIÓN Y SIMPLIFICACIÓN DE FUNCIONES LÓGICAS.
Hasta ahora se han mostrado dos formas de representar una función lógica:
mediante tabla de verdad y mediante representación algebraica. Una misma función
puede por tanto, representarse de ambas maneras y ser equivalente. Una función puede,
además, tener diferentes representaciones algebraicas, pero sólo dos de ellas son formas
canónicas, que se corresponden con una única tabla de verdad.
Conocida la expresión algebraica, implementar la función consiste en realizar la
función mediante componentes físicos, que como sabemos pueden ser de diferentes
tecnologías. En este tema, utilizaremos la representación de las puertas lógicas que se
han mostrado en los apartados anteriores.
Ejemplo: Implementación de la función lógica f = a·c + b·c
a b c
b·c
f = a·c + b·c
a ·c
Figura 3.
6.1.- OBTENCIÓN DE LAS FORMAS CANÓNICAS.
Si no se conoce la expresión algebraica, lo primero hay que obtener una de las dos
formas canónicas. Para que una función esté expresada en forma canónica, cada término
de la función debe contener a todas las variables de entrada a la función. Las dos formas
canónicas son: suma de productos y producto de sumas.
En la forma canónica suma de productos, cada término, llamado aquí
minitérmino, es el producto lógico de todas las variables de entrada, negadas o no
individualmente según corresponda, de forma que la suma lógica de todos los
minitérminos da la función.
Ejemplo: f1 = a·b·c + a·b·c
En la forma canónica producto de sumas, cada término, llamado aquí
maxitérmino, es la suma lógica de todas las variables de entrada, negadas o no
individualmente según corresponda, de forma que el producto lógico de todos los
maxitérminos da la función.
Ejemplo: f 2 = (a + b + c)·(a + b + c)
Veamos ahora como se obtienen las formas canónicas a partir de la tabla de verdad.
Para obtener la forma canónica de suma de productos hay que fijarse en las
combinaciones de entrada que producen un ‘1’ a la salida. De cada una de ellas se
David Sornosa Cervera
12
Curso 2009-10
Lógica Digital y Microprogramable
obtiene un minitérmino, formado por el producto de las variables de entrada, de forma
que si la variable de entrada es ‘0’ se pone negada en el minitérmino, y si es ‘1’, se pone
sin negar.
Para obtener la forma canónica de producto de sumas hay que observar las
combinaciones de entrada que producen un ‘0’ a la salida. De cada una de ellas se
obtiene un maxitérmino, formado por la suma de la variables de entrada, de forma que
si la variable de entrada es ‘0’ se pone sin negar, y si es ‘1’, se pone negada.
Ejemplo de obtención de formas canónicas:
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
1
1
0
0
1
0
1
0
Forma canónica de suma de productos:
f = a·b·c + a·b·c + a·b·c + a·b·c
Forma canónica de producto de sumas:
f = (a + b + c)·(a + b + c)·(a + b + c)·(a + b + c)
Figura 4. Tabla de verdad y formas canónicas.
6.2.- MÉTODO ALGEBRAICO.
Consiste en aplicar las propiedades del álgebra de Boole, con objeto de simplificar
las expresiones. Veamos un ejemplo, con la forma canónica de suma de productos
anterior.
f = a·b·c + a·b·c + a·b·c + a·b·c = a·b·(c + c) + a·c·(b + b) = a·b·1 + a·c·1 = a·b + a·c
Es un buen método cuando las expresiones sin simplificar no son muy largas ni
tienen muchas variables. El inconveniente es que no hay ninguna regla ni algoritmo para
simplificar, simplemente se trata de aplicar la propiedades del álgebra de Boole, y según
la experiencia de la persona que lo haga, puede ser más costoso o menos. Lo que es
peor, si se parte de una expresión complicada, como por ejemplo que hubiéramos
partido de la forma canónica de producto de sumas, llegar al mismo punto de
simplificación hubiera sido bastante más largo y complicado. Además, en general no se
tiene la garantía de que no haya otra expresión equivalente más simplificada.
6.3.- MAPAS DE KARNAUGH.
El método de los mapas de Karnaugh es un algoritmo para llegar a expresiones, tipo
suma de productos o productos de sumas, pero simplificadas al máximo.
Un mapa de Karnaugh no es otra cosa que expresar la tabla de verdad de una
manera más compacta, de forma que cada combinación de variables de entrada se
representa por una casilla, y en dicha casilla se escribe el valor de la función para dicha
combinación. La posición de las casillas debe ser tal que, de una casilla a la siguiente o
a la anterior, en cualquier dirección que se recorra el mapa, sólo varíe una variable de
David Sornosa Cervera
13
Curso 2009-10
Lógica Digital y Microprogramable
entrada. Esto implica ordenar las casillas según un código Gray2. Veamos como
distribuir las casillas para funciones de 2, 3, 4 y 5 variables de entrada (figuras 5-a, 5-b,
5-c y 5-d respectivamente).
b
a
bc
0
1
a
0
1
Figura 5-a
0
1
cde
ab
000 001 011 010
00
(A)
(C)
01
(C)
11
(B) (C)
10
(C)
00 01 11 10
(A)
(A)
(A)
(A)
Figura 5-b
110 111 101 100
(C)
(A)
(C)
(C) (B)
(C)
cd
ab
00 01 11 10
00 (A)
(A)
01 (B) (B) (B) (B)
11
10 (A)
(A)
Figura 5-c
Figura 5-d
Figura 5. Ejemplos de mapas de Karnaugh y asociaciones de casillas.
Una vez se ha rellenado el mapa con los ‘1’ y ‘0’ en las casillas correspondientes,
se trata de hacer agrupaciones de cuadros adyacentes. Para ello hay que seguir las
siguientes reglas:
-
-
-
El número de casillas agrupadas, para ser válido, ha de ser potencia de 2.
Los grupos se pueden tomar en vertical, horizontal, cuadrados o rectangulares, pero
nunca en diagonal.
La primera columna y la última son adyacentes, lo mismo que la primera fila y la
última, por lo pueden formar parte del mismo grupo.
Al igual que hay dos formas canónicas, hay dos formas de tomar los grupos de
Karnaugh. En una forma, el objetivo es agrupar, en distintos grupos, todos los ‘1’,
y en la otra se toman todos los ‘0’.
Se empieza tomando los grupos más grandes posibles, acabando por los más
pequeños, si hace falta para completar los ‘1’, o los ‘0’, se puede hacer grupos de
una única casilla.
Se pueden repetir ‘1’ en diferentes grupos, siempre que con ello se contribuya a
agrupar ‘1’ que estaban sueltos. Lo mismo si las agrupaciones son de ‘0’.
En la figura 5, se muestran algunas de las posibilidades de hacer grupos. En cada
tabla, se han sombreado las casillas agrupadas, y entre paréntesis se han nombrado los
grupos para facilitar su identificación. Se observa en la figura 5-d, que el grupo A, y el
grupo B, están en casillas que aparentemente no son adyacentes. Sin embargo, el grupo
A está en las casillas (0,0,1) y (1,0,1), de forma que sólo cambia un bit en las variables
de entrada (c, d, e); lo mismo ocurre con el grupo B, cuyas casillas son (0,1,1) y (1,1,1).
Por lo tanto, se observa que hay columnas, en que las casillas de la misma fila son
adyacentes, aunque no están juntas en el mapa. Es por esto, que con 5 variables de
entrada o más, el método de Karnaugh se vuelve bastante lioso y deja de ser útil.
2
Visto en este mismo tema, apartado 2.3.-
David Sornosa Cervera
14
Curso 2009-10
Lógica Digital y Microprogramable
Para explicar que se hace con los grupos tomados, y como se simplifica, volvamos
al ejemplo de la figura 4.
bc
a
0
1
00 01 11 10
1 1 0 0
1 0 0 1
Figura 6-a
Figura 6-b
Figura 6-c
La figura 6-a muestra como queda el mapa de Karnaugh de la función de la figura
4. En la figura 6-b se han hecho las asociaciones de ‘1’ correspondientes. Obsérvese que
se podía también haber tomado un grupo de la primera columna (0,0) pero esto no se
hace porque ya están todos los ‘1’ agrupados.
Como hemos agrupado los ‘1’, la función se expresará en forma de suma de
productos, aunque no en forma canónica, puesto que se va a simplificar. No obstante,
para demostrar el proceso de simplificación, partiremos de la forma canónica.
Escribimos los minitérminos correspondientes al primer grupo (g1), situado en la
fila a = 0 y simplificamos:
g 1 = a·b·c + a·b·c = a·b·(c + c) = a·b·1 = a·b
Hacemos lo mismo con el segundo grupo (g2), situado en la fila a = 1:
g 2 = a·b·c + a·b·c = a·c·(b + b) = a·c·1 = a·c
La función (f) es: f = g 1 + g 2 = a·b + a·c
Si miramos la figura 6-b, observamos que en el primer grupo, la única variable que
varía en las casillas agrupadas es la ‘c’, que en una casilla es ‘0’ y en la adyacente es
‘1’. Luego observamos que en el resultado final (g1) ha quedado eliminada en la
simplificación. Por lo tanto, el método de Karnaugh simplifica al eliminar las variables
que aparecen cambiadas de valor en las casillas del grupo, de forma que las variables
que no cambian, aparecen en el término, negadas o sin negar, según sean ‘0’ ó ‘1’
respectivamente. Como ‘a’ y ‘b’ son ‘0’ para el primer grupo, aparecen en g1 negadas.
Si observamos el segundo grupo (g2), observamos que en la variable que cambia de la
valor es la ‘b’, por eso desaparece (se simplifica), mientras que ‘a’ es ‘1’ y aparece sin
negar, y ‘c’ es ‘0’ y por eso se escribe negada.
En la figura 6-c, se han hecho grupos con los ‘0’. Procediendo igual que en la figura
6-b, obtenemos primero obtenemos la forma canónica del grupo que está en la fila a = 0
(g1):
g 1 = (a + b + c)·(a + b + c) = a·a + a·b + a·c + a·b + b·b + b·c + a·c + b·c + c·c
Aplicando las propiedades de idempotencia y la ley de absorción, se llega a:
David Sornosa Cervera
15
Curso 2009-10
Lógica Digital y Microprogramable
g 1 = (a + b)
Obtenemos ahora la forma canónica correspondiente al segundo grupo y
simplificamos, aplicando las mismas propiedades del álgebra de Boole:
g 2 = (a + b + c)·(a + b + c) = a·a + a·b + a·c + a·b + b·b + b·c + a·c + b·c + c·c = a + c
Por lo que la función (f) es: f = g 1 ·g 2 = (a + b)·(a + c)
Lo que nos lleva a la conclusión de que la regla para simplificar por Karnaugh,
agrupando los ‘0’ es la misma que agrupando los ‘1’, es decir, en cada término se
eliminan (o se simplifican) aquellas variables que cambian de valor (en el ejemplo, la
‘c’ del primer término y la ‘b’ del segundo).
Ambas expresiones obtenidas: f = a·b + a·c = (a + b)·(a + c) son completamente
equivalentes.
Veamos ejemplos de aplicación directa del método de Karnaugh, sin obtener
previamente las formas canónicas.
Ejemplo 1: Función f(a,b,c,d) representada por la tabla de verdad de la figura 7-a.
Suma de productos:
a
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
b
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
c
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
d
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
f
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
g1 = b·c·d
g 2 = a·b
g 3 = a·c
f = b·c·d + a·b + a·c
Figura 7-b
Producto de sumas:
g1 = a + b
g2 = a + c
g3 = b + c + d
Figura 7-a
f = (a + b)(a + c)(b + c + d )
Figura 7-c
En el siguiente ejemplo se ha añadido, en la tabla de verdad, una tercera
posibilidad, además de ‘0’ y ‘1’ al valor de la función. Esta posibilidad es el término
David Sornosa Cervera
16
Curso 2009-10
Lógica Digital y Microprogramable
indefinido, también conocido como condición “no importa”. Se representa por una X, y
se utiliza para no especificar el valor de la salida para una combinación concreta de las
variables de entrada, bien porque no se pueden producir, bien porque, de producirse tal
combinación, realmente no importa el valor de la salida.
Debido a esta característica, el término indefinido, se utilizará en los mapas de
Karnaugh como más interese, es decir, si utilizándolo se obtiene un grupo más grande,
se usa, y si no, se deja sin agrupar en ningún grupo.
Ejemplo 2: Función f(a,b,c,d) representada por la tabla de verdad de la figura 8-a.
Suma de productos:
a
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
b
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
c
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
d
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
f
0
0
0
X
0
0
0
1
1
1
1
1
1
1
X
1
g1 = c·d
g2 = a
f = c·d + a
Figura 8-b
Producto de sumas:
g1 = a + d
g2 = a + c
f = (a + d )(a + c)
Figura 8-a
Figura 8-c
Se observa que las condiciones “no importa” se han aprovechado en la figura 8-b,
porque así se consiguen grupos mayores, pero no se han aprovechado en la figura 8-c,
porque para tomar las ‘X’ se hubieran tenido que formar más grupos, y por tanto
simplificar menos.
Obsérvese también que cuando hay casillas con términos indefinidos, al aplicar
Karnaugh no tienen porque obtenerse expresiones matemáticamente iguales agrupando
los ‘1’ o agrupando los ‘0’, ya que la ‘X’ se puede considerar diferente en cada
agrupación. Sin embargo, ambas expresiones representan igualmente a la tabla de
verdad.
En el ejemplo de la figura 8, las ‘X’ se han tomado como ‘1’ para obtener la
expresión de suma de productos, y como ‘0’ para obtener la expresión de producto de
sumas, por lo que en este caso concreto se comprueba que: f = (a + d )(a + c) = c·d + a
David Sornosa Cervera
17
Curso 2009-10
Lógica Digital y Microprogramable
Se ha dicho al principio del apartado que mediante al método los mapas de
Karnaugh, se obtienen expresiones simplificadas al máximo. Esto es cierto si se
consideran sólo las 3 operaciones básicas del álgebra de Boole; pero si se consideran el
resto de funciones que se han explicado en las puertas lógicas (XOR, NOR, NAND) en
ocasiones puede ocurrir que con Karnaugh no se obtenga la solución óptima.
Ejemplo 3: Sea la función f(a,b,c)
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
0
1
1
0
1
0
0
1
Figura 9-a
bc
a
0
1
00 01 11 10
0 1 0 1
1 0 1 0
Figura 9-b: Mapa de Karnaugh.
Se observa en el mapa que no hay agrupaciones posibles de más
de 1 casilla, por lo que la función obtenida es igual a la forma
canónica.
Forma canónica de suma de productos: f = a·b·c + a·b·c + a·b·c + a·b·c
Simplificamos por álgebra de Boole: f = a·(b·c + b·c) + a (b·c + b·c)
Recordando la definición de O exclusiva (XOR) y O exclusiva negada (XNOR):
f = a·(b ⊕ c) + a (b ⊕ c) = a ⊕ (b ⊕ c)
Se puede observar que la última expresión está bastante simplificada respecto a la
obtenida por Karnaugh.
6.4.- REALIZACIÓN DE FUNCIONES LÓGICAS CON PUERTAS NAND O
NOR.
En muchas ocasiones, se transforma la función para realizarla exclusivamente con
un tipo de puertas, o bien puertas NOR, o puertas NAND, utilizando para ello las leyes
de De Morgan.
Ejemplo 4: f = a·b + a·c
Le aplicamos las leyes de De Morgan, para transformar los productos en sumas
negadas (funciones NOR), y el resultado lo negamos dos veces para obtener la función
NOR.
f = a·b + a·c = a + b + a + c = a + b + a + c
David Sornosa Cervera
18
Curso 2009-10
Lógica Digital y Microprogramable
Aunque la última expresión pueda parecer más compleja, tiene la ventaja de que
sólo utiliza un único tipo de puertas (NOR). Además, para realizar la implementación de
f = a·b + a·c se necesitan 6 puertas lógicas (3 puertas NOT, 2 puertas AND y 1 puerta
OR), mientras que para implementar f = a + b + a + c se necesitan únicamente 5 puertas
NOR.
a
b
c
a·b
Figura 10-a
f = a ·b + a ·c
a·c
a
b
c
a +c
a+c+a+b
Figura 10-b
f =a +c+a+b
a+b
Figura 10. Dos formas de implementar la función f = a·b + a·c
Para implementar la función negación, con puertas NOR o con puertas NAND, hay
que unir las entradas de una puerta NOR o NAND a la variable o función que se desea
negar. Para comprobarlo, basta con mirar la tabla de verdad de estas puertas, ya que
cuando las variables de entrada tienen el mismo valor, a la salida se obtiene el valor
contrario (negado).
Obsérvese en la figura 10, el número de puertas lógicas empleadas en cada caso, y
sobre todo que la figura 10-b, tan sólo emplea puertas NOR. Se podría haber logrado
también una implementación, a base exclusivamente de puertas NAND.
6.5.- OTROS MÉTODOS.
Como se ha mencionado, aunque teóricamente se pueden hacer mapas de Karnaugh
del número de variables que se quiera, a partir de 5 variables o más deja de ser útil,
porque es difícil encontrar las casillas adyacentes que no están a la vista.
Hay una serie de métodos, entre los que destaca el método numérico de Quine –
McCluskey, pensados para simplificar funciones de más de 4 variables, aunque debido a
los algoritmos empleados, no se usan de forma manual, sino informatizada.
David Sornosa Cervera
19
Curso 2009-10
Lógica Digital y Microprogramable
7.- BIBLIOGRAFÍA.
Blanco Flores, F. y Olvera Peralta, S.: “Electrónica digital y microprogramable”. Ed.
Paraninfo. Madrid, 2002.
Murgui Izquierdo, M., Vela Rozalén, J. J. y Vinagre Prieto, J. J.: “Tecnología industrial
II”. Ed. Edebé. Barcelona, 1999.
Tocci, R: “Sistemas digitales. Principios y aplicaciones”. Ed. Prentice-Hall
Hispanoamericana. México, 1996.
Val Blasco, S., Huertas Talón, J. L., Ibáñez Bellé, J., González Esteras, J. A. y Torres
Leza, F.: “Tecnología industrial II”. Ed. McGraw-Hill. Madrid, 1996.
David Sornosa Cervera
20
Descargar