Vous êtes sur la page 1sur 10

Tema 9 Lógica de circuitos Página 1 de 10

Tema 9: Lógica de circuitos. Circuitos combinacionales y secuenciales


1. Introducción
2. Álgebra de boole
3. Puertas lógicas
4. Circuitos combinacionales
4.1. Implementación de funciones booleanas
4.2. Multiplexores y decodificadores
4.3. Array lógico programable (PLA)
4.4. Memorias ROM
4.5. Sumadores
5. Circuitos secuenciales
5.1. Biestables
5.2. Registros
5.3. Contadores

1. Introducción

El funcionamiento de los ordenadores digitales se basa en la memorización y


procesamiento de datos binarios.

Para realizar estos procesos, los ordenadores disponen de memoria que puede estar en dos
estados estables y de circuitos que pueden operar con datos binarios bajo la acción de
señales de control.

En este tema vamos a ver como están implementados estos elementos de memoria y
circuitos en lógica digital, concretamente con circuitos combinacionales y secuenciales. A
su vez, los circuitos combinacionales y secuenciales se componen de puertas lógicas cuyo
funcionamiento está basado en el álgebra de Boole que es el fundamento matemático de la
lógica digital.

2. Álgebra de Boole

La circuitería de los ordenadores digitales se diseña y analiza con el uso de una disciplina
matemática denominada álgebra de Boole. El álgebra de Boole es una herramienta útil tanto
en el análisis como en el diseño de circuitos digitales:

 En el análisis nos proporciona una forma concisa de describir el


funcionamiento de los circuitos digitales.
 En el diseño, dada una función deseada, se puede aplicar el álgebra de Boole
para desarrollar una implementación de complejidad simplificada de dicha función.

El álgebra de Boole utiliza los siguientes elementos y operaciones. Los elementos del
álgebra de Boole son {verdadero, falso} que los podemos representar por {0,1}.
Tema 9 Lógica de circuitos Página 2 de 10

Ā A·B A+B
A B
NOT A A AND B A OR B
0 0 1 0 0
0 1 1 0 1
1 0 0 0 1
1 1 0 1 1

En ausencia de paréntesis la operación AND tiene más prioridad que la operación OR.

Postulados básicos del álgebra de Boole


A*B=B*A A+B=B+A Ley conmutativa
A* (B+C) = (A*B) + (A*C) A + (B*C) = (A+B) * (A+C) Ley distributiva
1*A=A 0+A=A Elemento neutro
A*Ā=0 A+Ā=1 Elemento complementario
Otras identidades
0*A=0 1+A=1
A*A=A A+A=A
A * (B * C) = (A * B) * C A + (B + C) = (A + B) + C Ley asociativa
NOT(A*B)=NOT A+NOT B NOT(A+B)=NOT A*NOT B Teorema DeMorgan

3. Puertas lógicas

El bloque fundamental de construcción de circuitos lógicos digitales son las puertas lógicas.
Las funciones lógicas se implementan interconectando puertas.

Una puerta es un circuito electrónico que produce como señal de salida una operación
booleana sencilla de las señales de entrada. Las puertas básicas usadas en lógica digital son
AND, OR, NOT, NAND, y NOR. Cada puerta se define de tres formas:

 Por su símbolo gráfico

 Definiendo su función algebraica

 Por su tabla de verdad

La operación NOT se denota gráficamente por un círculo.

Cada puerta lógica tiene una o más entradas y una salida. Cuando los valores de entrada
cambian, la señal de salida correcta aparece retrasada por el tiempo de propagación de la
señal a través de la puerta (retardo de puerta).
Tema 9 Lógica de circuitos Página 3 de 10

Nombre Símbolo Función algebraica Tabla de verdad


AB F
00 0
AND F=A*B 01 0
10 0
11 1
AB F
00 0
OR F=A+B 01 1
10 1
11 1
A F
0 1
NOT F = NOT A
1 0

AB F
00 1
NAND F = NOT(A * B) 01 1
10 1
11 0
AB F
00 1
NOR F = NOT(A + B) 01 0
10 0
11 0

Normalmente, no se usan todos los tipos de puertas en implementación. El diseño y la


fabricación pueden ser más sencillos si sólo se usan uno o dos tipos de puertas. Por tanto, es
importante identificar conjuntos de puertas funcionalmente completos. Esto significa
que cualquier función booleana se puede implementar usando sólo las puertas del conjunto.
Los siguientes conjuntos son funcionalmente completos:
 AND, OR, NOT
 AND, NOT
 OR, NOT
 NAND
 NOR

Las puertas AND, OR y NOT representan un conjunto funcionalmente completo ya que


representan las tres operaciones del álgebra de Boole. Para que las puertas AND y NOT
formen un conjunto completo, debe haber una forma de sinterizar la operación OR a partir
de las operaciones AND y NOT. Esto se puede hacer aplicando el teorema de De Morgan:

A + B = NOT(NOT A * NOT B)

A OR B = NOT(NOT A) AND (NOT B))


Tema 9 Lógica de circuitos Página 4 de 10

Veamos un ejemplo de implementación de las funciones AND, OR y NOT a partir de


puertas NAND:

4. Circuitos combinacionales

Un circuito combinacional es un conjunto de puertas interconectadas, cuya salida, en un


momento dado, es función solamente de la entrada en ese instante. Al igual que en las
puertas lógicas, en los circuitos combinacionales también hay un retardo entre la entrada y
la salida.

En general, un circuito combinacional consiste en n entradas binarias y m salidas binarias y


podemos definirlo de tres formas al igual que las puertas lógicas:

 Tabla de verdad: Para cada una de las 2n combinaciones posibles de las n señales
de entrada, se enumera el valor binario de cada una de las m señales de salida.
 Símbolo gráfico: Describe la organización de las interconexiones entre puertas.
 Ecuaciones booleanas: Cada señal de salida se expresa como una función booleana
de señales de entrada.

4.1 Implementación de funciones booleanas

Cualquier función booleana se puede implementar con puertas lógicas. Para una función
dada, podemos implementarla de varias formas alternativas.

Ejemplo: Sea F una función con la siguiente tabla de verdad


Podemos expresar F como el detalle de las combinaciones
A B C F que hacen que la función valga 1:
0 0 0 0
0 0 1 0 esta expresión se conoce como suma de productos
0 1 0 1
0 1 1 1 También podríamos decir que F=1 si ninguna de las
1 0 0 0 combinaciones de entrada que producen 0 es cierta:
1 0 1 0
1 1 0 1
1 1 1 0
Tema 9 Lógica de circuitos Página 5 de 10

Esta expresión se puede escribir como producto de sumas empleando una generalización
del teorema de De Morgan:

En principio podríamos elegir la implementación como suma de productos o como


producto de sumas en función de que la tabla de verdad de la función tuviese más ceros o
más unos como resultado. Sin embargo, hay otras consideraciones:

 Generalmente es posible obtener una expresión booleana más sencilla de la tabla de


verdad que las expresiones anteriores utilizando métodos de simplificación de
funciones:
o Simplificación algebraica
o Mapas de Karnaugh
o Tablas de Quine-McKluskey
 Puede ser preferible implementar la función solo con puertas sencillas (NAND o
NOR). A menudo es deseable implementar una función booleana solo con puertas
NAND o solo con puertas NOR. Pues aunque pueda no ser la implementación con
un número mínimo de puertas, tiene la ventaja de la regularidad, que puede
simplificar el proceso de fabricación.

4.2 Multiplexores y decodificadores

Un multiplexor es un circuito que conecta varias entradas con una única salida. En un
momento dado se selecciona una de las entradas para que pase a la salida.

Los multiplexores se usan en circuitos digitales para controlar el enrutamiento de señales y


datos. Un ejemplo es la carga del contador de programa. El valor a cargar en el contador
puede venir de una o varias fuentes diferentes:
 De un contador binario si el contador de programa se va a incrementar para la
siguiente instrucción.
 Del registro de instrucción, si se acaba de ejecutar una instrucción de salto usando
direccionamiento directo.
 De la salida de la ALU, si la instrucción de salto especifica la dirección usando
modo de desplazamiento.

S2 S1 F Ejemplo de multiplexor de 4 entradas y una salida:


0 0 D0
0 1 D1
1 0 D2
1 1 D3
Tema 9 Lógica de circuitos Página 6 de 10

Decodificadores

Un decodificador es un circuito combinacional con varias líneas de salida, con una sola de
ellas seleccionada en un instante dado, dependiendo del patrón de líneas de entrada. En
general un decodificador tiene n entradas y 2n salidas.

Los decodificadores tienen muchos usos en ordenadores digitales. Un ejemplo es la


decodificación de direcciones de memoria. Supongamos que queremos construir una
memoria de 1 kbyte usando cuatro chips RAM de 256x8 bits. Queremos un espacio de
direcciones único que se pueda descomponer como sigue:

Dirección Chip
0000-00FF 0
0100-01FF 1
0200-02FF 2
0300-03FF 3

Cada chip requiere 8 líneas de dirección, y estos se toman de los 8 bits menos significativos
de la dirección. Los 2 bits más significativos de los 10 bits de dirección, se usan para
seleccionar uno de los cuatro chips de RAM. Para ello se puede usar un decodificador de 2
a 4 cuya salida habilita uno de los cuatro chips.
Tema 9 Lógica de circuitos Página 7 de 10

4.3 Array lógico programable (PLA, Prorammable Logic Array)

Las puertas lógicas suelen presentarse encapsuladas en chips. Para construir una función
lógica, se disponen de varios de estos chips en una tarjeta de circuito impreso y se hacen las
interconexiones adecuadas entre los terminales de los chips.

El utilizar un alto nivel de integración hace posible añadir mas puertas en un chip y hacer
interconexiones dentro del chip también. Esto tiene como ventajas la disminución del coste
y del tamaño, y el incremento de velocidad (pues los retardos dentro del chip son inferiores
a los retardos fuera del chip).

Sin embargo, surge un problema de diseño. Para cada función lógica particular o conjunto
de funciones, hay que diseñar la organización de las puertas e interconexiones en el chip. El
coste y el tiempo implicados en el diseño del chip a medida son altos.

Para resolver el problema anterior se construyen arrays lógicos programables (PLA) que
son chips de uso general preparados para adaptarse a usos específicos.

Los PLA se basan en el hecho de que cualquier función booleana se puede expresar en
forma de suma de productos. Un PLA consiste en una disposición regular de puertas NOT,
AND y OR en un chip. Cada entrada al chip pasa a través de una puerta NOT, así tenemos
disponible la entrada y su complemento para cada puerta AND. La salida de cada puerta
AND está disponible para cada puerta OR, y la salida de cada puerta OR es una salida del
chip. Haciendo las conexiones adecuadas, se pueden implementar funciones booleanas.

Los PLA se fabrican de dos formas para hacer más fácil la tarea de establecer las
conexiones (programar el chip) entre los diferentes elementos del chip.
 PLA de campo. Las conexiones se hacen a través de fusibles en cada punto de
intersección.
 PLA de máscara. Las conexiones se hacen durante la fabricación del chip usando
una máscara adecuada para un patrón de interconexión particular.

4.4 Memoria de solo lectura (ROM)

A los circuitos combinacionales se les llama, a veces, circuitos “sin memoria” ya que su
salida depende sólo de la entrada actual y no retiene la historia de las entradas anteriores.
Sin embargo, las memorias ROM pueden ser implementadas con circuitos
combinacionales.

La ROM es una memoria de sólo lectura. Esto implica que la información almacenada en
una ROM es permanente y se creó en el proceso de fabricación del chip de memoria.
Entonces, dada una entrada a un chip de ROM siempre producirá la misma salida.

La tabla de verdad asociada a una ROM tendría como entrada una dirección de memoria y
como salida el contenido de una dirección de memoria. Se podría implementar una ROM
Tema 9 Lógica de circuitos Página 8 de 10

con un decodificador y con puertas OR realizando el conexionado en función de los datos


que queramos en cada posición de memoria.
4.5. Sumadores

La suma binaria difiere de la del álgebra booleana en que el resultado incluye un término de
acarreo (1 + 1 = 10).
No obstante, la suma de dos bits puede ser implementada como una función booleana
especificando las entradas y sus correspondientes salidas en una tabla de verdad y
deduciendo de la misma su función booleana asociada.

Para sumar dos números de n bits podemos hacerlo poniendo un conjunto de sumadores de
dos bits de forma que el acarreo de un sumador sea una entrada del siguiente.

A continuación se presenta la tabla de verdad para un sumador de 2 bits y para un sumador


de 2 bits con acarreo de entrada.

Suma de 2 bits Suma con acarreo de entrada


A B Suma Acarreo Cin A B Suma Cout
0 0 0 0 0 0 0 0 0
0 1 1 0 0 0 1 1 0
1 0 1 0 0 1 0 1 0
1 1 0 1 0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

Hay que notar que, como la salida de cada sumador depende del sumador previo, hay un
retardo que crece del bit menos significativo al más significativo. Cada sumador de un bit
experimenta un cierto retardo de puerta, y este retardo de puerta se acumula.

Este problema se puede solucionar siguiendo un procedimiento que se llama acarreo


anticipado. Se trata de expresar cada término de acarreo como suma de productos de solo
las entradas originales. Si los números a sumar son muy grandes, el sumador de acarreo
anticipado puede ser lento pues se recorre una jerarquía de puertas de muchos niveles.

5. Circuitos secuenciales

Las funciones esenciales de un ordenador digital pueden ser implementadas con circuitos
combinacionales. Sin embargo, excepto para el caso especial de las memorias ROM, no
proporcionan memoria o información de estado.

Para poder construir registros y memorias se usan los circuitos secuenciales que son
más complejos que los circuitos combinacionales. La salida de un circuito combinacional,
además de depender de la entrada, depende del estado en que se encuentre el circuito.
Tema 9 Lógica de circuitos Página 9 de 10

A continuación se van a presentar algunos tipos de circuitos secuenciales. Como veremos,


los circuitos secuenciales se implementan con circuitos combinacionales.
5.1 Biestables

Un biestable es un dispositivo que puede presentar dos estados. En ausencia de entrada está
en uno de los dos estados, recordando el último estado. Un biestable tiene dos salidas, que
son siempre complementarias (Q, NOT Q). Debido a las características que presenta puede
funcionar como una memoria de 1 bit.

La figura muestra un biestable S-R. El circuito tiene 2 entradas R


(Reset) y S (Set), y dos salidas Q y NOT Q y consiste en dos puertas
NOR conectadas por realimentación.

Puede funcionar como memoria de 1 bit. Siendo Q el valor del bit y


las entradas S y R para escribir los valores 1 y 0. Si ponemos R=S=1
el biestable se encontrará en un estado inconsistente.

El biestable S-R se puede definir con una tabla parecida a una tabla de verdad, llamada
tabla característica, que muestra el siguiente estado o estados de un circuito secuencial, en
función de los estados y entradas actuales.

El biestable SR es un biestable asíncrono y la mayoría de los eventos que se producen en un


ordenador están sincronizados por un pulso de reloj. Además cuando R=S=1 se produce
una inconsistencia, esto también se puede evitar fácilmente. a continuación se presentan dos
tipos de biestables que corrigen estos problemas.

El biestable JK permite todas las combinaciones posibles de valores de J y K.

Biestable SR síncrono Biestable D

Biestable JK
Tabla de verdad
J K Qn+1
0 0 Qn
0 1 0
1 0 1
1 1 NOT Qn
Tema 9 Lógica de circuitos Página 10 de 10

5.2 Registros

Un registro es un circuito digital usado en la CPU para almacenar bits de datos.


Normalmente se usan dos tipos básicos de registros:

 Registros paralelos. Consisten en un conjunto de memorias de 1 bit que se pueden


leer o escribir simultáneamente. Se usan para almacenar datos. Se pueden construir
con biestables SR.

 Registros de desplazamiento. Estos registros aceptan y/o transfieren información


vía serie. Se pueden construir con biestables SR síncronos. Los registros de
desplazamiento se pueden usar como interfaz de dispositivos serie de E/S. Además
pueden usarse en la ALU para realizar desplazamientos lógicos y funciones de
rotación.

5.3 Contadores

Un contador es un registro cuyo valor se puede incrementar fácilmente en 1. Cuando el


contador se incrementa más allá de su valor máximo se pone a 0. Así, un contador hecho
con n biestables puede contar hasta 2n-1. Un ejemplo de contador en la CPU es el contador
de programa.

Los contadores pueden ser asíncronos o síncronos, dependiendo de la forma en que operen:

 Contadores asíncronos: son relativamente lentos ya que la salida de un biestable


produce un cambio en el estado del siguiente biestable. Un contador síncrono se
llama también contador de onda (ripple), ya que el cambio que se produce para
incrementar el contador empieza en un extremo y se transfiere como una onda hasta
el otro extremo. El retardo es proporcional al tamaño del contador.

 Contadores síncronos: son más rápidos que los contadores asíncronos. En este tipo
de contadores todos los biestables cambian de estado a la vez. Las CPU utilizan
contadores síncronos por cuestiones de rapidez

Vous aimerez peut-être aussi