Tema 62 – Puertas lógicas. Técnicas de diseño y simplificación de funciones lógicas

Tema 62 – Puertas lógicas. Técnicas de diseño y simplificación de funciones lógicas

Índice.

1.- Introducción.

2.- Puertas lógicas.

2.1.- Desarrollo de la lógica digital.

2.2.- Conceptos generales y tipos.

2.2.1.- Puerta or (o).

2.2.2.- Puerta and.

2.2.3.- Puerta not (inversor).

2.3.- Puertas especiales

2.3.1.- Puerta nor.

2.3.2.- Puerta nand.

2.3.3.- Puerta or-exclusivo (X-OR).

2.3.4.- Puerta nor-exclusivo (x-nor).

2.4.- Tecnologías.

3.- Técnicas de diseño de funciones lógicas.

3.1.- Algebra de Boole.

3.1.1.- Funciones lógicas.

3.1.2.- Teoremas fundamentales.

3.1.3.- Representación en forma canónica.

4.-Técnicas de simplificación de funciones lógicas.

4.1.- Simplificación por el método algebraico.

4.2.- Método gráfico de Karnaugh.

4..3.- Método numérico de Quine-Maccluskey.

5.- Conclusión.

Bibliografía.

§ MANDADO, E.” Sistemas Electrónicos Digitales “ Ed. Marcombo 1987.

§ ÁNGULO, J. M. ”Enciclopedia de Electrónica Moderna”.Ed. Paraninfo. 1991

§ MUÑOZ MERINO E.” Circuitos Electrónicos “ E.T.S.I.T. Madrid 1986.

§ DE MUIDERKRING, “Circuitos Integrados Digitales “ Ed. Paraninfo. 1989.

§ MILLMAN, J. “Microelectrónica “ Ed. Hispano Europea 1981.

1.- Introducción.

¿Qué son las puertas lógicas? ¿Para que sirven? ¿Qué son las funciones lógicas? ¿Cómo se simplifican?. Todas estas preguntas las contestaremos a lo largo del tema.

Todos los ordenadores, circuitos de control, etc., utilizan circuitos de conmutación complejos para efectuar su función de forma económica y eficiente. Cuando se conecta un sólo interruptor resulta sencillo observar sólo los estados “on” y “off”.

Sin embargo, los circuitos utilizados en ordenadores o en sistemas industriales, no siempre se basan en sistemas de “todo” y “nada”, sino que están a menudo regidos por órdenes lógicas, por las que la situación “on” ocurrirá solamente cuando se cumplan unas condiciones determinadas.

La situación a esta situación se obtiene por la aplicación del Álgebra de Boole a los circuitos de conmutación. El Álgebra de Boole se debe al filósofo y matemático George Boole (1815-1864), que en 1854 publicó las Leyes de pensamiento en las que se fundan las teorías Matemáticas de la lógica y las probabilidades.

2.- Puertas lógicas

2.1.-Desarrollo de la lógica digital.

Dentro del área de la Electrónica, la lógica es relativamente moderna. Mientras las válvulas de vacío y los primitivos dispositivos electrónicos se remontan a principios de este siglo, los conceptos de la lógica digital no se desarrollan como independientes hasta finales de 1940, cuando se construyó el primer computador moderno.

Inicialmente, los avances de la electrónica Digital fueron muy lentos, porque sus elementos básicos tuvieron que ser construidos con válvulas de vacío que, dado su gran volumen, precio y complejidad de los circuitos anexos, resultaban prohibitivos en cuanto se requería una cierta cantidad de puertas.

La sustitución de la válvula de vacío por el transistor en 1950 redujo el tamaño de los circuitos. En 1960 la lógica digital se usó en computadores y en algunos circuitos electrónicos muy avanzados destinados a armamento militar.

El mayor impulso de la Electrónica Digital llegó con el descubrimiento del circuito integrado en 1960. Los circuitos integrados se adaptaron perfectamente a la lógica digital y proporcionaron los medios para la fabricación de bloques lógicos con un tamaño inferior a un cuadrado de 3 mm. de lado. ¿Pero, se ha tocado fondo en la lógica digital?.

2.2.- Conceptos generales y tipos.

Se denominan puertas lógicas a los dispositivos electrónicos capaces de efectuar las funciones u operaciones lógicas.

Tales operaciones son:

– Suma lógica o función OR .

– Producto lógico o función AND.

– También incluimos entre las básicas a la NOT o inversor que realiza la función de complementación o negación.

2.2.1.- Puerta OR (O).

Su símbolo característico es el representado en la figura. La expresión analítica correspondiente es:

F = A+B y su tabla de verdad. Una tabla de verdad es la representación gráfica de todas las posibles combinaciones de las variables de entrada con el valor de la función a la salida.

clip_image002

2.2.2.- Puerta AND (Y).

Su símbolo característico es el representado en la figura . La expresión analítica correspondiente es F = A×B y su tabla de verdad está en la misma figura.

clip_image004

2.2.3.-Puerta NOT (Inversor).

Su símbolo representado en la figura junto con su tabla de verdad. La expresión analítica correspondiente es: F = clip_image006, otros autores lo indican así A’ y su tabla de verdad está en la misma figura.

clip_image008

Todas estas puertas se han estudiado con sólo dos entradas pero es extensible a tres, cuatro u ocho variables de entrada.

2.3.- Puertas especiales.

Las puertas lógicas que acabamos de ver las podríamos denominar como básicas por realizar las operaciones consideradas como tales en el Álgebra de Boole. Pero existen otras puertas lógicas derivadas de las anteriores de gran importancia.

2.3.1.- Puerta NOR.

Su símbolo característico es el representado en la figura. Su expresión analítica es la siguiente: clip_image010, que como puede observarse es la negada de la OR. Por tanto, su tabla de verdad es la que aparece en la figura.

clip_image012

2.3.2.- Puerta NAND.

Su símbolo característico es el representado en la figura. Su expresión analítica es: clip_image014es decir, negada de la función AND. La tabla de verdad será la negada de la correspondiente a una puerta AND.

clip_image016

2.3.3.- Puerta OR-EXCLUSIVA (X-OR).

Su símbolo es el de la figura. La expresión analítica es:

clip_image018. Es de notar que estos tipos de puertas sólo tienen dos entradas a diferencia de las vistas anteriormente. Ver su tabla de verdad en la figura.

clip_image020

clip_image022

2.3.4.- Puerta NOR-EXCLUSIVO (X-NOR).

La función que realiza es la de comparación, por lo que a menudo se le denomina puerta de coincidencia o de comparación. Su símbolo y tabla de verdad se representa en la figura . Siendo su expresión analítica:

clip_image024

clip_image026

clip_image028

2.4.- Tecnologías integradas.

Las dos tecnologías electrónicas integradas básicas son:

§ La TTL . en la denominada lógica positiva, el valor binario 1 se le denomina Nivel alto y se representa con la letra H (High Level), teniendo una equivalencia de tensión de +5 V., siendo el valor binario 0 denominado Nivel bajo, representándose por la letra L (Low Level), con una equivalencia de tensión de 0 V. En la llamada lógica negativa, el valor binario 1 se representa por la tensión 0 V. y el valor binario 0 por un valor de tensión de -5 V.

§ La CMOS. Para la CMOS se usa el mismo argumento, con la salvedad de que las tensiones pueden variar entre los valores 0 y 3 V. para bajo consumo de potencia a una velocidad lenta o entre 0 y 15 V. para alta velocidad con consumo mayor.

3.- Técnicas de diseño de funciones lógicas.

Los sistemas digitales de tratamiento de datos han de poder efectuar automáticamente procesos lógicos estrictamente definidos. Con el f in de poder llevar a cabo el diseño y descripción de tales sistemas lógicos, que por lo general son largos y complicados, es esencial una notación matemática especial adaptada a las necesidades de esos circuitos de conmutación. Tal es el objeto de la actual álgebra de Boole.

3. 1. – Álgebra de Boole.

Un conjunto B dotado con dos operaciones (+) y (×) es un álgebra de Boole si y sólo si se verifican los postulados:

1. Las operaciones (+) y ( × ) son conmutativas.

clip_image030

clip_image032

  1. Existen en B dos elementos distintos denominados unitarios o de identidad y representados por 0 y 1, de, tal forma que :

clip_image034

clip_image036

Para todo elemento del conjunto B.

3. Para cada elemento a perteneciente al conjunto B existe un elemento a en B, tal que se verifica:

clip_image038

clip_image040

4. Cada operación es distributiva respecto de la otra.

clip_image042

clip_image044

Se define el principio de dualidad: dada una expresión lógica, se define su dual como aquella obtenida al cambiar los ceros por los unos y los unos por los ceros. La ley de dualidad es una de las reglas básicas del álgebra de Boole y de la que puede decirse: “Si una expresión lógica es cierta, su dual también lo es”

3.1.1.- Funciones lógicas.

En la definición del álgebra de Boole del punto anterior, la primera condición era la de definir dos operaciones básicas. (+) y ( × ). Dichas operaciones reciben el nombre de suma y producto lógico, que también denominaremos Función OR y Función AND, Función NAND, NOR, X-OR, X-NOR.

Son las reglas de operación de tales funciones para el caso binario que es el que nos Interesa, las indicadas en las tablas de verdad de los puntos anteriores.

3.1.2.- Teoremas fundamentales.

Como consecuencia de los postulados expresados en el punto 3.1. se relacionan a continuación los teoremas que gobiernan el álgebra de Boole:

clip_image046

clip_image048

clip_image050

clip_image052

clip_image054

clip_image056

clip_image058

clip_image060

Ambas columnas cumplen con el principio de Dualidad. La demostración de estos sencillos teoremas puede hacerse mediante las tablas de verdad.

§ Teorema de Morgan.

clip_image062

clip_image064

De nuevo ambos teoremas son duales y se enuncian de la siguiente manera:

– El complementario o negado de una suma es igual al producto de los negados de los sumandos.

– El complementario o negado de un producto es igual a la suma de los negados de los factores.

Es necesario que el lector comprenda y recuerde estos teoremas porque serán utilizados con frecuencia. Veamos una tabla de equivalencias con circuitos eléctricos,

clip_image066

3.1.3. Representación en forma canónica.

Nos limitaremos a exponer brevemente las dos formas posibles de representación de las funciones lógicas, sin hacer uso de demostraciones y desarrollos extensos.

Se demuestra que toda función lógica puede representarse de dos formas:

– Como suma lógica de producto de las variables o primera forma canónica. A cada uno de los términos se les denomina minterms (minitérminos)

clip_image068

– Como producto de sumas lógicas o segunda forma canónica. A cada uno de los términos se les denomina maxterms (maxitérminos).

clip_image070

Por ejemplo, la función F= A + BC + ABC, no está en forma canónica porque es una función de tres variables y sólo uno de sus términos incluye las tres variables. Sin embargo si lo es la función:

clip_image072

Porque todos sus términos son de tres variables.

Por último, enunciaremos que de toda función lógica en forma no canónica, siempre será posible obtener una expresión que sí lo sea, aplicando las leyes del álgebra de Boole.

La forma práctica de poner en forma canónica una expresión se explica mediante el siguiente ejemplo:

clip_image074

– Si multiplicamos el primer término A por las variables que le faltan puestas de la forma clip_image076 Y clip_image078no habremos modificado la función, ya que si recordamos loa teoremas fundamentales:

clip_image076[1]=1

así pues, la expresión queda de la siguiente forma:

clip_image081

operando lo productos:

clip_image083

Aplicando la propiedad A + A = A eliminamos términos comunes:

clip_image085

función que estaría en forma canónica. La segunda forma canónica se deduce igual.

4.- Técnicas de simplificación de funciones lógicas.

Las expresiones lógicas que describen el funcionamiento de sistemas digitales se traducen en la práctica en una serie de circuitos cuya complejidad estará directamente relacionada con la de la expresión correspondiente. Así pues, al plantearse la realización física de una función el diseñador deberá conseguir que dicha función sea la mínima posible en orden a obtener, por tanto, una minimización de costes.

No existe actualmente un criterio único de minimización de la expresión de una función lógica y además se prevé una gran evolución de este concepto debido a que cada día es mucho mayor la disponibilidad en el mercado de sistemas funcionales complejos que permiten realizar cualquier función lógica.

Adoptaremos el criterio más intuitivo y más extendido actualmente, que es el de obtener una expresión en forma de suma de productos o producto de sumas que tengan un número mínimo de términos con el menor número de variables posibles en cada uno de ello.

4.1.- Simplificación por el método algebraico.

La utilización de los teoremas y leyes del álgebra de Boole permite la simplificación de funciones lógicas sencillas, no siendo un método sistemático ni útil para expresiones complejas. No es posible con este método asegurar que el resultado obtenido sea una expresión irreducible; por tanto no conduce en muchos casos a la expresión mínima.

Mediante un ejemplo vamos a ver su dificultad y la total ausencia de sistematización. Dada la función:

clip_image087

Aplicando la propiedad distributiva los términos 1 y 2 quedan de la siguiente forma:

clip_image089

clip_image091

Eliminando los término comunes, a partir del teorema fundamental que dice clip_image093, por tanto la función queda de la siguiente manera,

clip_image095

Aplicando de nuevo la propiedad distributiva:

clip_image097

Conociendo los teoremas fundamentales :

clip_image054[1]

clip_image099

Y como: clip_image101 , la función queda de la siguiente manera:

clip_image103

Aplicando la ley de absorción en sentido inverso, C = AC + C , entonces:

clip_image105

Aplicando de nuevo la propiedad distributiva:

clip_image107

4.2.- Método gráfico de Karnaugh.

El mapa de Karnaugh soluciona los inconvenientes del método algebraico obteniendo la expresión reducible mínima de una función de conmutación. Dicho método es realmente una forma gráfica de representar la tabla de verdad de una función lógica.

El fundamento del método de Karnaugh consiste en reducir a un sólo termino dos que sean adyacentes. Con n variables es posible obtener 2n términos o combinaciones diferentes. Así, si se desea representar una función de 2 variables en un plano, será necesario prever 22 = 4 casillas. Si son 3 las variables, necesitaremos 23 = 8 casillas, etc.

El mapa de Karnaugh para dos, tres, cuatro, cinco variables se representa de dos formas distintas

clip_image109

clip_image111

clip_image113

clip_image115

clip_image117

clip_image119

Cualquier función en forma canónica podrá representarse también mediante una tabla de verdad, para lo cual deberemos convenir asignar un 1 a las variables no negadas y un 0 a las variables negadas.

Dada la función:

clip_image121

que puesta en forma canónica:

clip_image123

siendo su tabla de verdad la representad en la figura:

clip_image125

Se representa por un lado todas las posibles combinaciones de tres variables, y en la columna de tres variables, y en la columna de la función F, el valor de la misma para cada una de las combinaciones de las variables de entrada.

Por tanto, será igual a “1” para los casos en que existe minitérmino en la función y “0” cuando no forman parte de la misma. El proceso se inicia, por tanto, como ya se ha visto, y los pasos a seguir son los siguientes:

  1. Poner en forma canónica la función, caso de que no lo sea. Si la función viene definida por una tabla de verdad, no es necesaria su canonización.
  2. Representar sobre el mapa de Karnaugh la función. Se asigna un “1” a la casilla correspondiente a cada uno de los términos presentes en la función, y un “0” al resto (los ceros no se representan sobre el mapa).
  3. Se forman agrupamientos de “1” (se podrán simplificar si son adyacentes) con el criterio siguiente:

a) Se toman todos los “1” que no se pueden agrupar con ningún otro.

b) Se forman los grupos de dos “1” que no pueden formar un grupo de cuatro.

c) Se forman los grupos de cuatro “1” que no puedan formar un grupo de ocho.

d) Cuando se hayan cubierto todos los “1” finaliza el proceso de grupos posible con el mayor numero de casillas posible cada uno.

Los agrupamientos conseguido y los “1” aislados serán los términos que expresarán la función lógica en forma irreducible. Este procedimiento de simplificar no es único, pudiéndose obtener por tanto varias formas irreducibles de la misma función. También diremos que en caso de que no tengamos agrupaciones de “unos” pero si de “ceros”, nos servirla todo lo dicho anteriormente.

Simplificar la función:

clip_image127

1º la ponemos en forma canónica:

clip_image129

clip_image131

Sobre el mismo mapa se han realizado los agrupamientos posibles y obtenemos las siguientes simplificaciones:

clip_image133

Los términos comunes en cada una de las agrupaciones nos dan las simplificaciones correspondientes de la ecuación inicial, la unión de estos términos será la ecuación simplificada.

clip_image135

Por tanto:

clip_image137

clip_image139

clip_image141

clip_image143

clip_image145

clip_image147

clip_image149

clip_image151

clip_image153

Siendo la función lógica simplificada: clip_image155

Representación de la función de puertas lógicas.

clip_image157

Implementación con puertas NAND. Aplicando Morgan. clip_image159

clip_image161

Implementar con puertas NOR. Aplicando Morgan.

clip_image163

clip_image165

4.2.1-Funciones o términos de indiferencia.

Hasta ahora hemos supuesto que cada término de una función lógica cualquiera ha de hacerse o bien “cero” o “uno” de manera categórica. A veces sucede que algunos de dichos términos no podrán existir debido a las especificaciones del diseño. A estos términos se les denominará de indiferencia y se representarán por “0” tanto en la tabla de verdad como en el mapa.

Para aclarar el significado, el criterio a seguir será el de añadir un “1” a la combinación de salida cuando exista un número par de unos, y un cero en el resto de los casas. La tabla de verdad se representa en la figura.

clip_image167

A partir de la combinación 1010, todos serán términos de indiferencia ya que dichas combinaciones no deberán presentarse nunca, por no pertenecer al código en cuestión. El mapa de Karnaugh corresponde a la siguiente figura.

clip_image169

Si observamos los “unos” del mapa, no pueden realizarse agrupamientos, luego tal función no es simplificación. Por esta razón ha sido posible realizar los agrupamientos apuntados sobre el mapa y simplificar la función. Los términos “0” que forman parte de los agrupamiento han sido considerados como “1” y el resto de ellos como “0” . A continuación se expresa el resultado de la función en ambos casos:

clip_image171

clip_image173

4.3.- Método numérico de Quine-Maccluskey.

Es un método más adecuado cuando el número de variables es muy grande. Resulta apto para su utilización en programas de ordenador. Se basa en el siguiente principio:

“ Si dos términos difieren en una sola variable, sus mimterms correspondientes difieren en una potencia de dos y pueden agruparse en un solo término al que le falte dicha variable”.

De manera alternativa:

“Sí dos términos a los que le falta la misma variable difieren en una misma potencia de dos pueden agruparse en un término al cual le falta la variable correspondiente a dicha diferencia”.

El proceso es repite sucesivamente. Dada la función clip_image175el método a seguir para la simplificación consiste en los siguientes pasos, como ejemplo de aplicaciones de este método, simplificaremos la función:

clip_image177

  1. Forma la tabla 1: se ordenan los términos canónicos según el nº de unos de poseen.

clip_image179

  1. Formar tabla 2. comparar términos que pertenecen a grupos adyacentes y agrupar en un solo término aquellos cuya diferencia sea una potencia de dos positiva (Nº con más unos-Nº con menos unos). Otras columna indicará la diferencia entre términos canónicos que forman cada elemento.

clip_image181

  1. Formar la tabla 3 : se agrupan los términos pertenecientes a grupos adyacentes cuya diferencia interna es igual ( 2ª columna tabla 2 ) y que además difieren entre sí en una potencia de dos positiva. Otras columna en la que se indicarán las dos diferencias se dispone al lado . Los términos que aparecen duplicados, se toma sólo uno de ellos, por ejemplo el de orden creciente.

clip_image183

  1. Se repite el proceso, formando las tablas 4º, 5º…
  2. Los términos que no han pasado de una tabla a otra se llaman primos y pueden utilizarse para realizar la función.
  3. Realizar una tabla con los términos primos en columnas y en filas cada uno de los términos canónicos que forman la función. En la fila correspondiente aun determinado numero primo se coloca el termino X en las columnas cuyo numero esta contenido en el termino.
  4. Se marcan con una flecha las columnas que contengan una sola X. El termino primo que le corresponde es esencial para formar la función. Se marcan con un recuadro todos los términos canónicos que forman parte de estos primos.
  5. De los términos canónicos restantes hay que buscar la combinación más sencilla de los términos primos. Para ello se asocia una letra a cada término en cuestión y se obtiene una expresión algebraica igual al producto lógico de las sumas lógicas de los términos primos disponibles para realizar cada término canónico; aplicamos la propiedad distributivo del producto respecto a la suma y escogemos cualquier término de los que aparece en esta suma lógica. Se escogen entonces los términos primos que hay que sumar a los esenciales para obtener la expresión simplificada de la función.

clip_image185

  1. Obtener las expresiones algebraicas de la función:

Buscamos la expresión en variables de cada termino primo. Los que están formados por un solo minterm tienen todas las variables, en los que están formados por 2 minterms desaparece la variable loica que corresponde a la diferencia de los términos. Los que están formados por 4 minterms simplificando las 2 variables que corresponden a las 2 diferencias correspondientes a ese termino…

En resumen la función queda:

clip_image187

5.- Conclusión.

En este tema hemos desarrollado los aspectos básicos de la lógica digital, introduciéndonos en todos las funciones de la lógica, demostrando las utilidades de las mismas a través del álgebra de Boole y de las leyes fundamentales de Morgan. Hemos aprendido que se puede simplificar las funciones por tres métodos, siendo el más usado el de Karnaugh.

En conclusión para finalizar el tema recomendamos realizar unas prácticas en el laboratorio para afianzar los conocimientos teóricos adquiridos.

clip_image189