Está en la página 1de 21

Introducción

Los sistemas y dispositivos analógicos procesan las señales variantes en el tiempo

que pueden adquirir cualquier valor a lo largo de un intervalo continuo de voltaje, corriente

u otra medida.

Figura 1. Señal analógica.

Una señal digital se modela para tomar, en cualquier instante, solamente uno de dos

valores discretos, que denominamos 0 y 1 (o BAJO y ALTO, LOW y HIGH, Falso y

Verdadero). Al usarse solo dos valores discretos, se le da el nombre de valores binarios.

Cuando se trabaja con 0 y 1, a estos valores se les llama bit (Binary Digit).

Figura 2. Señales digitales

Figura 3. Señal discreta. (Imagen de dominio público)

1
Los fabricantes de dispositivos lógicos expresan las tablas de funcionamiento de

estos en función de H y L. Cuando a la H se le asigna 1 y a la L 0 se dice que se trabaja con

lógica positiva. Cuando a la H se le asigna 0 y a la L 1 es lógica negativa.

Estos valores discretos se emplean para codificar información que será procesada

por un sistema digital. Una calculadora es un ejemplo de sistema digital. Otro sistema

digital es la computadora. Mientras la calculadora es un sistema de propósito especifico, el

computador es un sistema de propósito general.

Los primeros computadores fueron empleados principalmente para cálculos

numéricos, en este caso los valores discretos usados son los dígitos. De esta aplicación ha

surgido los nombres de computador digital, sistema digital.

Ventajas de los circuitos digitales sobre los circuitos analógicos:

• Reproducibilidad de los resultados.

• Facilidad de diseño.

• Flexibilidad y funcionalidad.

• Programabilidad.

• Velocidad.

• Economía

• Avance tecnológico constante.

Se le llama lógica porque está basada en los mismos principios que rigen el

pensamiento humano. Pero ¿qué es la lógica? Es el estudio de los métodos y principios que

se usan para distinguir el pensamiento bueno (correcto) del malo (incorrecto).

La lógica binaria trata con variables que toman dos valores discretos y con

operaciones que asumen significado lógico (conjunción, disyunción, negación).

2
Una compuerta lógica (Logic Gates) es un circuito electrónico que ejecuta una

función lógica. Las compuertas básicas son tres: AND, OR, NOT.

Hay dos más que son

combinaciones de las anteriores: NAND y

NOR.

Hay otras dos especiales: XOR y

XNOR.

También están los dispositivos

triestado.

El determinante de una

compuerta es un valor que una vez

presente en una de sus entradas determina

cual será el valor de la salida sin

necesidad de conocer el valor presente en

las demás entradas.


Imagen tomada del libro Digital
Tabla de verdad: es una tabla de
Design and Computer Architecture, de
todas las combinaciones posibles de las
David Money Harris y Sarah L. Harris.
variables de entrada y el valor
Morgan Kaufmann Publishers, primera
correspondiente que toma la salida. La
edición.
cantidad de combinaciones se calcula

elevando 2 a la cantidad de variables de

entrada.1

1
John F. Wakerly, Diseño digital: principios y
prácticas

3
Compuertas Lógicas (Logic gates)

Compuerta lógica AND

Notación matemática: S = X • Y, S = XY.

Símbolo esquemático: Tabla de verdad:

X Y S
0 0 0
0 1 0
1 0 0
1 1 1

La compuerta AND es 1 a su salida solo cuando todas sus entradas son 1. El

determinante de la compuerta AND es el 0: un 0 en una entrada inmediatamente determina

un 0 a la salida.

Compuerta lógica OR.

Notación matemática: S = X + Y.

Símbolo esquemático: Tabla de verdad:

X Y S
0 0 0
0 1 1
1 0 1
1 1 1

La compuerta OR es 1 a su salida cuando cualquiera de sus entradas es 1. El

determinante de la compuerta OR es el 1: un 1 en una entrada inmediatamente determina

un 1 a la salida.

Compuerta lógica NOT.

Notación matemática: S = X’.

4
Símbolo esquemático: Tabla de verdad:

X S
0 1
1 0

La compuerta NOT es un operador unitario por lo tanto no tiene determinante. Es

conocida como inversor, negación. Una variante de la notación matemática es una barra

encima de la variable y en algunos manuales técnicos de fabricantes se suele poner un #

después del nombre de la variable para indicar su negación, ej. SEL#.

Compuerta lógica NAND

Notación matemática: S = (X • Y)’, S = (XY)’.

Símbolo esquemático: Tabla de verdad:

X Y S
0 0 1
0 1 1
1 0 1
1 1 0

La compuerta NAND es la negación de la salida de la compuerta AND. Por esto es

0 a su salida solo cuando todas sus entradas son 1. El determinante de la compuerta NAND

es el 0: un 0 en una entrada inmediatamente determina un 1 a la salida.

Compuerta lógica NOR

Notación matemática: S = (X + Y)’.

Símbolo esquemático: Tabla de verdad:

X Y S
0 0 1
0 1 0
1 0 0
1 1 0

5
La compuerta NOR es la negación de la salida de la compuerta OR. Por esto es 0 a

su salida cuando cualquiera de sus entradas es 1. El determinante de la compuerta NOR es

el 1: un 1 en una entrada inmediatamente determina un 0 a la salida.

Compuerta lógica XOR (OR exclusiva)

Notación matemática: S = X  Y.

Símbolo esquemático: Tabla de verdad:

X Y S
0 0 0
0 1 1
1 0 1
1 1 0

La compuerta XOR es 1 a su salida cuando sus entradas son diferentes. No tiene

determinante. La compuerta XOR es llamada función impar pues para que la compuerta

genere un 1 a su salida debe haber una cantidad impar de 1s en sus entradas. Este

enunciado es muy útil al analizar compuertas XOR de más de dos entradas

Compuerta lógica XNOR (NOR exclusiva)

Notación matemática: S = XʘY.

Símbolo esquemático: Tabla de verdad:

X Y S
0 0 1
0 1 0
1 0 0
1 1 1

La compuerta XNOR es 1 a su salida cuando sus entradas son iguales. No tiene

determinante. La compuerta XNOR es llamada función par pues para que la compuerta

6
genere un 1 a su salida debe haber una cantidad par de 1s en sus entradas. Este enunciado

es muy útil al analizar compuertas XNOR de más de dos entradas.

(Hojas de datos de compuertas)

Circuitos lógicos

Un circuito lógico (logic circuit o logic network) es un conjunto de compuertas que

implementan una función lógica compleja.

Figura 5. Circuito lógico de un sumador completo.

Los valores lógicos son una representación de valores de voltajes. Estos valores

tienen un margen como se ve en la figura 6.

Figura 6. Valores lógicos.

7
Debido al ruido eléctrico que puede afectar los niveles de voltaje de las salidas y las

entradas de las compuertas, los niveles del 0 y del 1 son diferentes en las entradas y salidas,

estableciéndose la siguiente relación:

VOL < VIL < VIH < VOH

Los circuitos lógicos pueden dividirse en dos grandes grupos:

Circuitos Lógicos Combinacionales (CLC)

El valor de la salida depende exclusivamente del valor de las entradas. Para

determinar qué valor hay a la salida basta con saber los valores de las entradas.

Circuitos Lógicos Secuenciales (CLS)

El valor de la salida depende del valor de las entradas y del valor actual de la salida

misma. Para determinar el próximo valor de la salida se debe saber el valor de las entradas

y el valor actual de la salida. Estos circuitos tienen elementos de memoria (Flip-Flops).

El proceso de determinar el funcionamiento de un circuito lógico, la obtención de su

tabla de verdad y su ecuación booleana es llamado análisis. Mientras que la tarea contraria,

diseñar un circuito que implemente el comportamiento de una función dada es llamada

síntesis.2

Hay muchos circuitos diferentes que pueden realizar la misma función. Algunos

serán más simples que otros. Mediante la manipulación algebraica se puede derivar una

función simplificada.3

Una buena indicación del costo de un circuito lógico es la suma del número total de

compuertas más el número total de entradas a todas las compuertas del circuito.

2
Stephen Brown, Digital Logic with Verilog Design pag. 27
3
Stephen Brown, Digital Logic with Verilog Design pag 39

8
Figura 7

Figura 8

El circuito de la figura 7 tiene un costo de 27, mientras que el de la figura 8 tiene un

costo de 13 y ambos realizan la misma función.

Álgebra de Boole

En general, un álgebra consta de un conjunto de elementos K, un conjunto de

funciones u operaciones P que actúan sobre los elementos de K y un conjunto de axiomas o

leyes básicas que definen las propiedades de K y P.4

4
John P. Hayes, Diseño de sistemas digitales y microprocesadores, Pag. 246

9
George Boole (1815-1864), matemático autodidacta, hijo de un zapatero aficionado

por las matemáticas, se interesa por la lógica a partir de 1842. Su atracción hacia ella fue

provocada por su amigo Augustus de Morgan, empeñado en conseguir que la lógica

evolucionara pasando del terreno filosófico al matemático. En 1854, George Boole publicó

la obra que iba a servir de fundamento a la lógica moderna, cuyos principios se hallarían

algún día en el corazón de los ordenadores: The Laws of Tought. En aquella obra Boole

describía los mecanismos del cerebro humano que actúan en el razonamiento y son de

naturaleza estrictamente lógica.5

El trabajo de Claude E. Shannon (1938), matemático norteamericano, había probado

la posibilidad de construir una maquina lógica con la sola ayuda de conmutadores.

Retomando las leyes de la lógica tal como las había enunciado Boole, mostró que existe un

paralelismo con circuitos eléctricos dotados de relés electrónicos que podían estar abiertos,

en cuyo caso no pasaba la corriente eléctrica (lo que corresponde al 0 o “falso” de Boole), o

cerrado, en cuyo caso sí pasaba (1 o “verdadero”).

Se usaron los postulados formulados por E. V. Huntington en 1904 para la

definición formal del álgebra de Boole.

Un álgebra de Boole se puede definir como un conjunto K de valores o constantes

boléanos (0 y 1), más el conjunto P de tres operadores AND, OR, NOT.6

El dual de una expresión algebraica es obtenido intercambiando las operaciones

AND por OR y reemplazando los ceros por unos y los unos por ceros.7

El principio de dualidad del álgebra de Boole establece que una ecuación booleana

permanece válida si tomamos el dual de la expresión en ambos lados.8

5
Roman Ikonicoff, La conciencia y la máquina, pag. 47
6
Hayes, Idem
7
Morris mano, Charles Kime, Logic and Computer Design Fundamentals, pag 33

10
Ejemplo: el dual de la expresión X = A’B es X’ = A + B’.

Una función de Boole es una expresión formada con variables binarias, los

operadores binarios OR y AND, el operador NOT, el paréntesis y el signo igual. Para un

valor dado de variables la función puede ser 0 o 1.9

Un literal es una variable negada o no.

Prioridad del operador10

La prioridad del operador para la evaluación de una función de Boole es:

1) El paréntesis

2) NOT

3) AND

4) OR

8
Idem, pag37
9
Morris Mano, Lógica Digital y Diseño de Computadores, pag 45
10
Idem, pag 43

11
Identidades básicas del álgebra de Boole

Axiomas
1a 1+1=1 1b 0 . 0 =0
2a 0+0=0 2b 1 . 1 = 1
3a 1+0=0+1=1 3b 1 . 0 = 0 . 1 = 0
4a Si X = 0, entonces X’ = 1 4b Si X = 1, entonces X’ = 0

Teoremas
5a X + 0 = X Identidad 5b X 1 = X
6a X + 1 = 1 Unión 6b X 0 = 0
7a X + X = X Tautología 7b XX = X
8a X + X ' = 1 Complementos 8b X X '=0
9. X’’ = X Involución
10a. X+Y=Y+X Conmutativa 10b XY = YX
11a X+(Y+Z)=(X+Y)+Z Asociativa 11b X(YZ)=(XY)Z
12a X(Y+Z)= XY +XZ Distributiva 12b X+YZ=(X+Y)(X+Z)
13a (X+Y)’= X’Y’ De Morgan 13b (XY)’=X’+Y’

Igualdades

X’Y+XY’=X  Y X’Y’+XY=XʘY
(X’+Y)(X+Y’)=XʘY (X+Y)(X’+Y’)=X  Y

Igualdades: absorción

X+XY=X X(X+Y)=X
X+XY’=X X(X+Y’)=X
X+X’Y=X+Y X(X’+Y)=XY
X+X’Y’= X+Y’ X(X’+Y’)=XY’
X’+XY=X’+Y X’(X+Y)=X’Y
X’+XY’= X’+Y’ X’(X+Y’)=X’Y’
X’+X’Y= X’ X’(X’+Y)=X’
X’+X’Y’= X’ X’(X’+Y’)=X’

12
Forma Normalizada de una Función Booleana11

Una función booleana puede ser escrita en una variedad de formas cuando es

expresada algebraicamente. Hay una forma estandarizada de hacerlo que facilita el proceso

de simplificación.

La forma estándar contiene términos de suma (+) y términos de productos (.).

Un término de producto en el cual aparecen todas las variables, complementadas o

no, es llamado un término mínimo (minterm). Su propiedad característica es que

representa explícitamente una combinación de las variables de entrada de la tabla de

verdad. Hay 2 n minterms diferentes para n variables. Para dos variables X y Y hay cuatro

minterms: X’Y’, X’Y, XY’, XY.

Los minterms se forman haciendo un producto de la combinación de entrada,

negando las variables que valen cero y dejando iguales las que valen uno. El símbolo del

minterm es m j , donde j denota el equivalente decimal de la combinación de entrada.

Un término de suma en el cual aparecen todas las variables, complementadas o no,

es llamado un término máximo (maxterm). De nuevo, es posible generar 2 n maxterms de

n variables.

Los maxterms se forman haciendo una suma de la combinación de entrada, negando

las variables que son uno y dejando igual las que son cero. El símbolo del maxterm es M j ,

donde j denota el equivalente decimal de la combinación de entrada.

Una función booleana puede ser expresada algebraicamente a partir de una tabla de

verdad formando la suma lógica de todos los minterms que producen un uno a la salida.

Esta expresión es llamada una suma de minterms.


11
Charles Kime, Morris Mano, Logic and Computer Design Fundamentals pags 39-44

13
La suma de minterms se expresa de la siguiente forma: F ( X , Y , Z ) =  m(0,2,5,7) .

Los números entre paréntesis indican los minterms.

Una función booleana puede ser expresada algebraicamente a partir de la tabla de

verdad formando el producto de los maxterms que producen un cero a la salida. Esta

expresión es llamada producto de maxterms.

El producto de maxterms se expresa de la siguiente forma:

F ( X , Y , Z ) =  M (1,3,4,6) . Los números entre paréntesis indican los maxterms.

Dos formas no estandarizadas de expresar ecuaciones booleanas son la suma de

productos y el producto de sumas. Estas se caracterizan por no tener todas las variables

en los términos.

Ejemplos:

F = Y’ + X’YZ’ + XY P = X (Y’ + Z) (X + Y Z’)

Mapas de Karnaugh

Se puede hacer grupos de 1, 2, 4, 8, 16, 32, 64, etcétera. Siempre potencia de dos.

Se debe hacer la menor cantidad de grupos, lo más grande posible.

Los grupos se deben hacer horizontales o verticales, nunca en diagonal.

Las variables que cambian de valor para un grupo se pierden.

Las variables que no cambian de valor para un grupo se conservan.

Se deben agrupar todos los elementos con los que se esté trabajando.

Se puede compartir elementos, siempre que sea para hacer un grupo más grande.

Si el mapa está lleno de unos la función es igual a uno.

Si el mapa está lleno de ceros la función es igual a cero.

14
Si se agrupan los unos:

El resultado de un grupo es el producto de las variables que se conservan, negadas si

son cero y sin negar si son uno.

El resultado del mapa es la unión de todos los grupos mediante signos + (una

suma de productos, términos mínimos).

Si se agrupan los ceros:

El resultado de un grupo es la suma de las variables que se conservan, negadas si

son uno y sin negar si son cero.

El resultado del mapa es la unión de todos los grupos mediante signos •, (un

producto de sumas, términos máximos).

Las funciones que tienen salidas sin especificar para algunas combinaciones de

entrada son llamadas funciones especificadas incompletas. En la mayoría de las

aplicaciones, simplemente no importa qué valor es asumido por la función para los

términos sin especificar. Por esta razón se le suele llamar a los términos sin especificar de

una función “condiciones no importa” (don’t care). Estos don’t cares se representan con

un * en la tabla de verdad. Estas condiciones de no importa pueden utilizarse en el mapa de

Karnaugh como ceros o unos, como más convenga para una mayor simplificación del

mapa.

En un mapa de dos variables:

Un grupo de uno da un término de dos variables.

Un grupo de dos da un término de una variable.

Un grupo de cuatro dice que la función es igual a cero o a uno.

En un mapa de tres variables:

Un grupo de uno da tres variables.

15
Un grupo de dos da dos variables.

Un grupo de cuatro da una variable.

Un grupo de ocho dice que la función es igual a cero o a uno.

En un mapa de cuatro variables:

Un grupo de uno da un término de cuatro variables.

Un grupo de dos da un término de tres variables.

Un grupo de cuatro da un término de dos variables.

Un grupo de ocho da un término de una variable.

Un grupo de dieciséis dice que la función es igual a cero o a uno.

En un mapa de cinco variables:

Un grupo de uno da un término de cinco variables.

Un grupo de dos da un término de cuatro variables.

Un grupo de cuatro da un término de tres variables.

Un grupo de ocho da un término de dos variables.

Un grupo de dieciséis da un término de una variable.

Un grupo de treinta y dos, dice que la función es igual a cero o a uno.

Complemento a la base

El complemento a la base de un número a de n dígitos en la base b es igual a b n − a .

Complemento a la base reducida

El complemento a la base reducida de un número a de n dígitos en la base b es igual a

(bn − 1) − a .

16
Procedimiento de diseño

El diseño de un circuito lógico combinacional comienza con la especificación del

problema y culmina en un diagrama lógico o un conjunto de ecuaciones booleanas a partir

de las cuales se puede obtener el diagrama lógico. El procedimiento incluye los siguientes

pasos:

1. De las especificaciones del circuito determine el número requerido de

entradas y salidas y asígnele un nombre a cada una, puede ser una letra.

2. Derive la tabla de verdad que define la relación requerida entre las

entradas y las salidas.

3. Obtenga una función booleana simplificada para cada salida.

4. Dibuje el diagrama lógico.

5. Verifique el funcionamiento del circuito.

Compuertas universales12

Las compuertas NAND y NOR son consideradas compuertas universales por que a

partir de ellas se puede construir cualquier compuerta. De hecho, los circuitos MSI son

construidos con compuertas NAND. Para construir una compuerta NAND se requieren

menos transistores que para construir una compuerta AND.

Procedimiento para obtener el diagrama lógico utilizando solo compuertas NAND

de una función booleana.

1. Simplifique la función y exprésela como suma de productos.

2. Dibuje una compuerta NAND para cada término de producto que tenga al

menos dos literales. Las entradas de cada NAND son las literales de los

términos. Esto constituye un grupo de compuertas de primer nivel.

12
Charles Kime, Morris Mano, Logic and Computer Design Fundamentals pags 64-71

17
3. Dibuje una compuerta NAND utilizando el símbolo AND-NOT o el símbolo

NOT-OR en el segundo nivel, cuyas entradas vienen de las salidas de las

compuertas del primer nivel.

4. Un término con una sola literal requiere un inversor en el primer nivel antes de

ser conectada a la NAND de segundo nivel. Si se complementa la literal puede

ser conectada directamente a una entrada de la NAND de segundo nivel.

Procedimiento para convertir un diagrama AND-OR multinivel en un diagrama que

use solo compuertas NAND.

1. Convierta todas las compuertas AND en compuertas NAND utilizando el

símbolo AND-NOT.

2. Convierta todas las compuertas OR en compuertas NAND utilizando el símbolo

NOT-OR.

3. Verifique todas las burbujas de negación en el diagrama. Cada burbuja debe

tener otra burbuja de contraparte en el otro extremo de la línea, si no la tiene

inserte una compuerta NOT, o complemente la literal.

Figura 9. Circuito de dos niveles, S = X’Z + XY.

18
Figura 10. El mismo circuito utilizando compuertas NAND, S = [(X’Z)’ (XY)’]’.

Convertidores de código (Code converters)

Son circuitos lógicos combinacionales que convierten información binaria de un

código a otro código. Por ejemplo: convertidor de BCD a exceso a tres, convertidor de

BCD a 7 segmentos.

Multiplexores (Multiplexers)

Un multiplexor es un circuito lógico combinacional que selecciona información

binaria procedente de una de muchas entradas y la envía a una salida única. Un multiplexor

tiene 2 n líneas de entrada, n líneas de selección y una salida. Se hace referencia a estos en

la forma 2 n -to-1 Line Multiplexer.

Implementación de un circuito combinacional usando multiplexores

Para implementar una función booleana de n variables con un multiplexor se

necesita un multiplexor de 2 n−1 entradas y n-1 líneas de selección. Las variables de entrada

de menos peso se conectan a las líneas de selección, las líneas de entrada del multiplexor

irán conectadas a la variable de entrada, directamente o negada, a 0 o a 1. Se debe hacer

una tabla para determinar esto.

19
Decodificadores (Decoders)

Un decodificador es un circuito lógico combinacional que convierte información

binaria procedente de n líneas codificadas de entrada a un máximo de 2 n salidas únicas. Si

la información codificada de n bits tiene combinaciones sin usarse, el decodificador tendrá

menos de 2 n salidas. Se hace referencia a los decodificadores en la forma n-to-m-line

decoder, donde m ≤ 2 n .

El decodificador tiene un funcionamiento parecido al demultiplexor.

Implementación de circuitos lógicos combinacionales usando decodificadores

Dado que un decodificador provee 2 n términos mínimos para n variables de entrada

es posible implementar cualquier circuito combinacional de n entradas y m salidas con un

decodificador n –to- 2 n y m compuertas OR si el decodificador es activo a nivel alto o

compuertas NAND si es activo a nivel bajo. Si el número de términos mínimos en una

función F es mayor que 2 n /2, entonces se puede usar el complemento de la función,

teniendo en cuenta utilizar la compuerta complemento adecuada.

Demultiplexores (Demultiplexers)

Un demultiplexor es un circuito combinacional que realiza la operación inversa al

multiplexor: es decir, recibe información de una sola entrada y la envía a una de muchas

posibles salidas. El demultiplexor tiene una entrada, n líneas de selección y 2 n líneas de

salida. Se hace referencia a estos en la forma 1-to- 2 n Line Demultiplexer.

Codificadores (Encoders)

Un codificador tiene 2 n , o menos, líneas de entrada y n líneas de salida. Las líneas

de salida generan el código binario correspondiente al valor de la entrada activa. Pueden

tener una línea de habilitamiento (Enable).

20
Codificador de prioridad (Priority encoder)

Es un codificador que implementa una función de prioridad.

21

También podría gustarte