Está en la página 1de 36

D.I.I.C.

C
Arquitectura de Sistemas Computacionales

CAPITULO 7 .- DISEÑO DE CIRCUITOS LOGICOS

7.1 INTRODUCCION

E
l diseño de los circuitos de combinación comienza con la descripción
verbal del problema y termina en un diagrama de circuito lógico. El
procedimiento comprende los siguientes pasos:

• Se enuncia el problema.
• A las variables de entrada y salida se les asignan símbolos de letras.
• Se deriva la tabla de verdad que define las relaciones entre entradas
y salidas.
• Las funciones Booleanas simplificadas se obtienen para cada una de
las salidas.
• Se dibuja el diagrama lógico.

7.2 Circuitos Lógicos Tradicionales

7.2.1 Semi-sumador

La función aritmética digital más básica es la suma de dos dígitos


binarios. Un circuito de combinación que realiza esta suma aritmética de
dos bits se denomina un semi - sumador. Uno que realiza la suma de tres
bits (dos bits significantivos y un bit previo de acarreo) se denomina un
sumador completo. El nombre para el último se basa en el hecho de que se
pueden utilizar dos semi - sumadores para implementar un sumador
completo.

Las variables de entrada de un semi - sumador se denominan bits


sumando y sumador. Las variables de salida se denominan suma y acarreo.
Es necesario especificar dos variables de salida puesto que la suma de 1+ 1
es el binario 10, que tiene dos dígitos. Asignamos los símbolos XY a las dos
variables de entrada, y S (para la suma) y C (para el acarreo) a las dos
variables de salida. La salida C es 0 a no ser que ambas entradas sean 1. La
salida S representa el bit menos significativo de la suma. Las funciones
Booleanas para las dos salidas pueden obtenerse directamente de la tabla
de verdad:
Tabla de Verdad:
X Y C S
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0

Capitulo 7.- Diseño de Circuitos Lógicos Página 1


D.I.I.C.C
Arquitectura de Sistemas Computacionales

De la tabla de verdad se obtienen las siguientes funciones:

1).- Para la Suma S = xy + xy = x ⊕ y


2).- Para el Carrie (Acarreo) C = xy

A partir de estas dos ecuaciones podemos implementar el siguiente


circuito lógico:

Circuito lógico de un Semi - Sumador.

El diagrama lógico se muestra en la Figura, consiste de una


compuerta exclusiva OR y de una compuerta AND. Además se ha utilizado
un generador de aleatorio de entrada y sendos display para rutear los
valores en cuestión.

7.2.2 Sumador-completo

El sumador - completo es un circuito de combinaciones que forma la


suma aritmética de tres bits. Consiste de tres entradas y dos salidas. Dos
de las variables de entrada, denotadas por X e Y, representan los dos bits
significativos que deben sumarse. La tercera entrada, Z, representa el
acarreo de la posición significante previa más baja. Las dos salidas son
necesarias porque la suma aritmética de tres dígitos binarios está en el
rango de 0 a 3, y los binarios 2 ó 3 necesitan dos dígitos. Las dos salidas
son designadas por los símbolos S (para la suma) y C (para el acarreo). La
variable binaria S da el valor del bit menos significativo de la suma. La
variable binaria C de la salida del acarreo. Las ocho filas debajo de las
variables de entrada designan todas las combinaciones posibles de 1’s y 0’s
que estas variables pueden tener. Los 1’s y 0’s para las variables de salida

Capitulo 7.- Diseño de Circuitos Lógicos Página 2


D.I.I.C.C
Arquitectura de Sistemas Computacionales

son determinados de la suma aritmética d los bits de entrada. Cuando todos


los bits de entrada son 0 la salida es 0. La salida S es igual a 1 cuando
solamente una entrada es igual a 1 o cuando todas las tres entradas son
iguales a 1. La salida C tiene un acarreo de 1 si dos o tres entradas son
iguales a 1.

Los mapas de Karnaugh, son utilizados para encontrar expresiones


algebraicas para cada una de las variables de salida. Los 1’s en los
cuadrados de los mapas de S y C se determinan directamente de los
minterms en la tabla de verdad. Los cuadrados con 1’s para la salida S no
se combinan en grupos de cuadrados adyacentes. Pero puesto que la salida
es 1 cuando hay un número impar de entradas, S es una función impar, y
representa la relación OR exclusivo de las variables Los cuadrados con 1
para la salida C pueden combinarse en una diversidad de maneras. Una
expresión posible de C es: C = xy + (x’y + xy’)z, la cual obtendremos a
partir del siguiente desarrollo:

Tabla de verdad
Entradas Salidas
X Y Z C S
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

Mapa de Karnaugh:

Del mapa se obtienen las siguientes ecuaciones:

1).- S = xyz + xyz + xyz + xyz = x ⊕ y ⊕ z


2).- C = xy + xz + yz = xy + ( xy + xy ) = xy + ( x ⊕ y ) z

A partir de estas ecuaciones obtenidas por la minimización del mapa


de Karnaugh, podemos implementar el siguiente circuito lógico.

Capitulo 7.- Diseño de Circuitos Lógicos Página 3


D.I.I.C.C
Arquitectura de Sistemas Computacionales

Circuito Lógico

Circuito Lógico de un Sumador Completo

Teniendo en cuenta que x’y + xy’ = x ⊕ y, e incluyendo la expresión


para la salida S, obtenemos las dos funciones para el sumador - completo:

S =x⊕y⊕z
C = xy + ( x ⊕ y ) z

Note que el circuito sumador - completo consta de dos semi -


sumadores y una compuerta OR. A demás se ha agregado un generador de
entradas aleatorio más display de ruteo.

Este circuito se puede representar por un circuito integrado de la


siguiente manera. Cabe hacer notar que dentro de este circuito estará el
subcircuito diseñado anteriormente.

Capitulo 7.- Diseño de Circuitos Lógicos Página 4


D.I.I.C.C
Arquitectura de Sistemas Computacionales

7.2.3 Comparadores

Un circuito Comparador detecta una concidencia de valores de dos o


más señales lógicas. Este circuito se puede representar a partir de la
siguiente tabla de verdad:

Tabla de Verdad:
A B SALIDA
(1 = Iguales, 0 = distintos)
0 0 1
0 1 0
1 0 0
1 1 1

De la tabla de verdad se obtiene la siguiente ecuación: S = AB + AB .


A pesar de la simplicidad de la tabla de verdad, son necesarias cinco
compuertas lógicas para esquematizarla. La salida será 1, si A=B, sino ella
será 0. Los comparadores más sofisticados presentan elementos lógicos con
dos salidas adicionales: una para la salida , si A >B, y la otra salida 1
cuando B > A. Existen comparadores de más de dos bit , en este caso, se
torna esencial el uso de un inversor (compuerta NOT) para cada bit y
puertas AND con tantas entradas como número de bits de entrada y se
necesita apenas una puerta OR. Los chip disponibles comercialmente no
sólo tienen salidas para A=B, sino también para A<B y para A>B.

A partir de la ecuación encontrada S = AB + AB podemos construir el


siguiente circuito lógico:

Circuito lógico de un Comparador de 2 bits

Nótese que la tabla de verdad utilizada en el comparador, es


semejante a la tabla OR - Exclusivo, solo que las salidas están negadas, por
lo tanto éste comparador también puede ser implementado con compuertas
OR - exclusivo. A continuación se presenta un comparador de 4 bit
utilizando compuertas OR - exclusivo.

Capitulo 7.- Diseño de Circuitos Lógicos Página 5


D.I.I.C.C
Arquitectura de Sistemas Computacionales

El circuito está basado en la puerta OR EXCLUSIVO, que da 0 si las


entradas son iguales y 1 si son distintas. Si las dos palabras, son iguales,
las cuatro puertas OR - EXCLUSIVO deben dar 0. Después se pueden pasar
estas cuatro salidas por una puerta OR, que dará 0 si las palabras son
iguales y 1 si son diferentes. En nuestro ejemplo hemos usado una puerta
NOR en la etapa final para invertir el sentido de la comparación: 1 significa
igual y 0 desigual.

Circuito lógico de un Comparador de 4 bits

7.2.4 Decodificadores

Un Decodificador es una función digital que convierte información


binaria de una forma codificada a otra. Por ejemplo, un Decodificador BCD
de siete segmentos convierte un dígito decimal en BCD (Decimal Codificado
en Binario) en siete salidas para la selección de un conjunto de segmentos
necesarios para exhibir un dígito decimal. Los Decodificadores presentados
en ésta sección son denominados Decodificadores de Línea n - a - 2n y
su propósito es generar los 2n miniterm de las n variables de entrada. Estos
codificadores forman un circuito de combinación con n variables de entrada
y 2n variables de salida. Para cada combinación de entrada binaria de 1´s
y 0´s hay una y sólo una, línea de salida que adquiere el valor de 1. Este
tipo de Decodificador se encuentra en muchas aplicaciones y es utilizado
extensamente en el diseño de sistemas digitales.

El consta de cuatro compuertas AND y dos Inversores. Un


Decodificador tiene tantas salidas cuantas combinaciones de entradas

Capitulo 7.- Diseño de Circuitos Lógicos Página 6


D.I.I.C.C
Arquitectura de Sistemas Computacionales

binarias sean posibles. En este ejemplo particular, las dos entradas X e Y


pueden estar en uno en los cuatro valores binarios posibles, como se
muestra en la tabla de verdad. Observe que las variables de salida son
mutuamente excluyentes y que sólo una salida puede ser igual a 1 en
cualquier instante. La salida cuyo valor es igual a 1 representa la
combinación del miniterm en las líneas de entrada.

Un ejemplo de un Decodificador de 2 por 4 se muestra a


continuación.

Tabla de Verdad :
X Y D0 D1 D2 D3
0 0 1 0 0 0
0 1 0 1 0 0
1 0 0 0 1 0
1 1 0 0 0 1

De la tabla de verdad obtenemos las siguientes ecuaciones:

D0 = X´Y´; D1= XY´ ; D2= XY´ ; D3= XY , por lo tanto, el


circuito lógico es:

Circuito lógico de un Decodificador de 2 por 4

Los Decodificadores de circuitos integrados pueden utilizar


compuertas NAND o NOR en vez de compuertas AND. En este caso, las
salidas son los complementos de los valores enumerados en la tabla de
verdad. La combinación del miniterm de las variables de entrada se
distingue entonces por la salida cuyo valor es cero mientras todas las otras
salidas son iguales a 1.

Capitulo 7.- Diseño de Circuitos Lógicos Página 7


D.I.I.C.C
Arquitectura de Sistemas Computacionales

Es conveniente algunas veces incluir una entrada de habilitación con


un Decodificador para controlar la operación del circuito. Por ejemplo, un
Decodificador de 3 por 8 con una habilitación se muestra a continuación.
Todas las salidas serán igual a 0 si la entrada habilitadora está en 0. Esto
ocurre debido a que un 0 en la entrada de una compuerta AND produce un
0 en la salida, sin importar qué valores tengan las otras variables de
entrada. Cuando la entrada habilitadora está en 1, el circuito opera como un
Decodificador convencional. Para evitar dibujar el circuito lógico cada vez
que se necesite un codificador (u otro circuito) podemos representarlo por
medio de un diagrama de bloques simulando un circuito integrado.

El tamaño de un Decodificador en un CI (circuito integrado) depende


usualmente del número de patas del chip. Por ejemplo, los Decodificadores
de 2 por 4 pueden ser insertos en un chip de 14 patas. Un Decodificador de
3 por 8 con una entrada habilitadora puede insertarse en un chip de 14
patas (8 salidas, 3 entradas, 1 habilitadora y 2 patas para el suministro de
energía). Es posible proporcionar tres entradas habilitadoras si el chip
contiene 16 patas.

El siguiente muestra el esquema del circuito lógico de un


Decodificador de 3 por 8 entradas

Circuito lógico de un Decodificador de 3 por 8

Capitulo 7.- Diseño de Circuitos Lógicos Página 8


D.I.I.C.C
Arquitectura de Sistemas Computacionales

Nota: El circuito integrado 3and contiene el siguiente subcircuito y es


utilizado para simplificar la implementación, como se muestra a
continuación:

Por otro lado el Decodificador 3 por 8 se puede representar por el


siguiente diagrama de bloques:

En resumen, un Decodificador 1 de 2n es un circuito combinacional


con n líneas de entrada y 2n líneas de salida tal que, cada una de las 2n
posibles combinaciones de entrada, activa una y sólo una de las líneas de
salida.

Nota: En el circuito presentado no aparece la línea habilitadora, pero tenga


presente, que solo es una entrada extra a las compuertas AND, es decir, en
vez de poseer tres entradas, poseerán 4 siendo la última para la línea
habilitadora.

7.2.5 Demultiplexores

Un Decodificador con una o más entradas habilitadoras puede


funcionar como un Demultiplexor. Un Demultiplexor es una función digital
que recibe información en una sola línea y transmite esta información en
una de 2n posibles líneas de salida. La línea de salida que es seleccionada se
determina de la combinación de bits de las n líneas de selección. Un
Decodificador (como el de 3 por 8 mostrado acá), funcionará como un
Demultiplexor sí la línea habilitadora se toma como los datos de entrada y
las entradas del Decodificador x, y, z, son tomadas como las líneas de
selección. La sola variable de entrada (disponible en la línea de

Capitulo 7.- Diseño de Circuitos Lógicos Página 9


D.I.I.C.C
Arquitectura de Sistemas Computacionales

habilitación) tiene una ruta a todas las ocho salida, pero la información de
entrada es dirigida a solamente una de las líneas de salida como se
especifica por la combinación binaria de las tres líneas de selección. Por
ejemplo, si las líneas de selección xyz = 000, la salida D0 será la misma
como la información de entrada en la línea de habilitación mientras que las
otras salidas se mantendrán en 0. Debido a la simililitud de los
Decodificadores y Demultiplexores, a estos circuitos se les conoce con el
nombre de Decodificadores / Demultiplexores.

7.2.6 Multiplexores

La función de un Multiplexor es recibir información de una sola


fuente y conducirla a 2n salidas bajo control de las líneas de selección. Un
Multiplexor digital realiza la operación inversa. Un Multiplexor es una
función digital que recibe información binaria de 2n líneas y transmite
información a una sola salida. La única línea de entrada que es seleccionada
se determina a partir de la combinación de bits de las n líneas
seleccionadas. Un ejemplo de un Multiplexor de 4 por 1 se muestra a
continuación.

Los CI 3and corresponde a una compuerta AND con tres entradas

El diagrama de bloques correspondiente a un Multiplexor de 4


entradas por una salida es :

Capitulo 7.- Diseño de Circuitos Lógicos Página 10


D.I.I.C.C
Arquitectura de Sistemas Computacionales

Las cuatro líneas de entrada son aplicadas a cuatro compuertas AND


cuyas salidas van a una sola compuerta OR. Solamente una línea de
entrada tiene S1 y S0 determinan cuál de las entradas se selecciona para
formar una ruta directa hacia la salida. Así, con S1S0 =10, la compuerta
AND asociada con la entrada I2 tiene dos de sus entradas iguales a 1. Si I2
=1 la salida de la compuerta es también igual a 1; si I2 =0, la salida es
igual a 0. Todas las otras compuertas AND tienen una salida en 0. La salida
de la compuerta OR será igual al valor de la salida de la compuerta AND
asociada con la salida I2 .Un Multiplexor también se le conoce con el nombre
de Selector de Datos puesto que selecciona una de las múltiples líneas de
entrada de datos y dirige la información binaria a la línea de salida.

La compuerta AND es un Multiplexor se parecen a un circuito


Decodificador y en realidad, ellas descodifican las líneas de selección de
entrada. En general, un circuito Multiplexor se construye a partir de un
Decodificador n por 2n añadiendo una línea de entrada a cada compuerta
AND y aplicando todas las salidas de las compuertas AND a una sola
compuerta OR. El tamaño de un Multiplexor es especificado por el número
de sus entradas, 2n. Esto entonces implica que él también contiene una
línea de salida y n de salidas de selección. Un Multiplexor puede tener una o
más líneas de habilitación, como en un Decodificador. Las líneas de
habilitación pueden utilizarse para expandir dos o más Multiplexores CI
(circuito integrado) a un Multiplexor digital con un mayor número de
entradas.

En resumen, en el nivel de lógica digital, un Multiplexor es un circuito


n
de 2 entradas de datos, una salida de datos y n entradas de control que
seleccionan una de las entradas de datos. El dato de entrada seleccionado
es el que aparece a la salida del circuito. Un Multiplexor a demás de poseer
las entradas correspondientes, posee unas líneas seleccionadoras (o líneas
de control ), que codifican un número de tantos bits como líneas de control
existan, que especifica que línea de las tantas de entrada, pasa a la salida
del circuito. Independientemente de los valores de las líneas de control, sólo
una de las compuertas AND dará un valor igual a 0 ó 1, según sea el valor
de la línea de entrada que se seleccione y las restantes darán un valor
igual a 0. Cada combinación de las entradas de control permite el paso de
información por una sola compuerta AND.

Capitulo 7.- Diseño de Circuitos Lógicos Página 11


D.I.I.C.C
Arquitectura de Sistemas Computacionales

7.3 Unidad aritmética lógica

Como sabemos, la unidad encargada de sumar, multiplicar, comparar


y realizar todas las operaciones Aritméticas y lógicas en el computador es la
Unidad Aritmética - Lógica. Para realizar todas las operaciones
mencionadas, necesita de circuitos combinacionales lógicos que realicen
cada operación en particular, la mayoría de estos circuitos han sido
estudiado en ésta sección, por lo tanto, a modo de ejemplo se muestra un
esquema general de la Unidad Aritmética - Lógica y sus principales circuitos
involucrados.

Circuito lógico de la UNIDAD ARITMÉTICA LÓGICA

Explicación del circuito:


La mayoría de los computadores tienen un circuito único para
realizar, al menos, las operaciones AND, OR y suma de dos palabras de
máquina. Uno de estos circuitos para procesar dos palabras de n bits suele
construirse a partir de n circuitos idénticos, cada uno de los cuales procesa
el par de bits de mismo peso de cada una de las palabras de entrada. La
figura muestra a un ejemplo de Unidad Aritmética y Lógica. Puede calcular
una de las cuatro funciones siguientes: A AND B, A OR B, B o A + B, según
las líneas de selección de función, F0 y F1, contengan (en binario) 00, 01,
10 u 111, respectivamente.

Capitulo 7.- Diseño de Circuitos Lógicos Página 12


D.I.I.C.C
Arquitectura de Sistemas Computacionales

La esquina inferior izquierda de nuestra UAL (Unidad Aritmética


Lógica) contiene un Decodificador de 2 bits que genera las líneas de
permiso para las cuatro operaciones a partir de F0 y F1. La esquina
superior izquierda tiene la lógica para calcular A AND B, A OR B y B , pero
a lo sumo sólo uno de estos resultados puede pasar a la compuerta OR
final; lo cual depende de las líneas de permiso que vienen del Decodificador.
Como sólo una de las salidas del Decodificador estará a 1, sólo se
permitirá el paso a través de una de las compuertas AND que están
conectadas a la puerta OR; las tres restantes darán 0, independiente de A y
B.
La esquina inferior derecha tiene un sumador completo de un bit que
calcula la suma de A y B, teniendo en cuenta los acarreos, ya que es
probable que este circuito se use como una etapa para la realización de
operaciones sobre palabras completas.

7.4 PRACTICANDO CON CIRCUITOS DIGITALES

El siguiente ejemplo representa un circuito de alarma de equilibrio.


Este circuito accionará una alarma solo si la embarcación pierde el
equilibrio, es decir, si se ladea a la izquierda o a la derecha, en otro caso la
alarma no sonará. El siguiente dibujo muestra esquemáticamente los
estados posibles de la embarcación.

Tabla de verdad
POSICIÓN ALARMA
I C D ESTADO
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 0

Para esta tabla de verdad, no es necesario aplicar el método de


minimización del mapa de Karnaugh debido a que posee muy pocas
variables. A continuación se muestra la ecuación obtenida directamente de
esta tabla de verdad.

I´C´D + IC´D´ = C´ (I´D+ID´) = C´ (I⊕D)

Capitulo 7.- Diseño de Circuitos Lógicos Página 13


D.I.I.C.C
Arquitectura de Sistemas Computacionales

Como podemos apreciar, se obtienen dos circuitos equivalentes para


la misma operación, pero uno de ellos utiliza menos compuertas lógicas en
su implementación. El siguiente circuito digital muestra los dos circuitos
implementados.

Circuito Digital
El siguiente ejemplo muestra una entrada que representa que la
embarcación se desequilibró a la derecha, por lo tanto la alarma sonará.
Note que ambos circuitos activan la alarma ya que son equivalentes entre
sí.

En el siguiente ejemplo se supone que en una casa existen tres tipos


de alarmas, dependiendo de cual de ellas se active marcará un determinado
teléfono. En este ejemplo se utilizarán las siguientes variables para
representar las alarmas, L = Luz, C = Calor, S = sonido. Si se activa la
alarma de Luz se deberá discar el teléfono de la policía, si se activa la
alarma de Calor se llamará a los bomberos, y finalmente si se activa la
alarma de Sonido se llamará a la Unidad de Rescate. Por otro lado, se
tendrán en cuenta las siguientes condiciones especiales:

CS, LC Bomberos
LS Policía
LCS Policía - Bomberos - Rescate

A continuación se muestra la tabla de verdad correspondiente a este


ejemplo:

Capitulo 7.- Diseño de Circuitos Lógicos Página 14


D.I.I.C.C
Arquitectura de Sistemas Computacionales

ALARMA LLAMADA
L C D P B R
0 0 0 0 0 0
0 0 1 0 0 1
0 1 0 0 1 0
0 1 1 0 1 0
1 0 0 1 0 0
1 0 1 1 0 0
1 1 0 0 1 0
1 1 1 1 1 1

Nótese que en este caso no se utiliza el mapa de Karnaugh debido a


la simplicidad de las variables. Por lo tanto, de la tabla de verdad podemos
obtener directamente las siguientes ecuaciones:

1).- Para la alarma de Policía se tiene la siguiente fórmula:


LC´S´+LC´S+LCS = L(C´+CS)= L(C´+S)

2).- Para la alarma de Bomberos se tiene la siguiente fórmula:


L´CS´+L´CS+LCS´+LCS =C

3).- Para la alarma de la Unidad de Rescate se tiene la siguiente fórmula


L´C´S+LCS = S(L´C´+ LC)= S(L ⊗ C)

A continuación se muestra el circuito digital correspondiente al ejemplo de


las alarmas múltiples:

Circuito Digital
El siguiente circuito muestra a modo de ejemplo la condición de que
se activó tanto la alarma de Luz como de Calor, por definición del problema
como resultado del circuito, se debería llamar a los bomberos.

Capitulo 7.- Diseño de Circuitos Lógicos Página 15


D.I.I.C.C
Arquitectura de Sistemas Computacionales

El siguiente ejemplo simula un tablero de auto que posee los


siguientes indicadores: una letra “L” para indicar luz, una letra “A” para
indicar Aceite y finalmente una letra “G” para indicar gasolina. Estas letras
se activarán en un display atendiendo de las siguientes condiciones:

Condiciones para letra L: Condiciones para letra A: Condiciones para letra G:

Puertas abiertas Aumento de temperatura Disminución nivel de


gasolina
Ampolletas en mal estado Aumento de consumo de
agua
Corto circuito Disminución de nivel de
aceite

Antes de definir la tabla de verdad diremos que para representar las


letras L , A, G deben estar prendidos los siguientes segmentos:

Capitulo 7.- Diseño de Circuitos Lógicos Página 16


D.I.I.C.C
Arquitectura de Sistemas Computacionales

A partir de estas condiciones, podemos generar la siguiente tabla de


verdad:

Condición Variables Display


x y z g f e d c b a
---------- 0 0 0 0 0 0 0 0 0 0
Puertas abiertas 0 0 1 0 1 1 1 0 0 0
Ampolletas malas 0 1 0 0 1 1 1 0 0 0
Corto circuito 0 1 1 0 1 1 1 0 0 0
↑ temperatura 1 0 0 1 1 1 0 1 1 1
↑ Consumo de agua 1 0 1 1 1 1 0 1 1 1
↓ Nivel de aceite 1 1 0 1 1 1 0 1 1 1
↓ Nivel de gasolina 1 1 1 1 1 1 1 1 0 1

Mapa de karnaugh

Ecuaciones obtenidas para G, F ,E:

g= X f = XZ + ( X ⊕ Y ) + XY e = XZ + ( X ⊕ Y ) + XY

Ecuaciones obtenidas para D, C, B, A:

c= X b = X (Z + Y ) a=X

Capitulo 7.- Diseño de Circuitos Lógicos Página 17


D.I.I.C.C
Arquitectura de Sistemas Computacionales

En resumen las ecuaciones obtenidas las podemos agrupar como


sigue:

a,c,g=x; d= X ( Z + Y ) + YZ ; f,e= XZ + ( X ⊕ Y ) + XY ; b= X ( Z + Y )

A partir de estas ecuaciones se obtiene el siguiente circuito:

Circuito Digital
En el siguiente circuito se muestra como ejemplo la condición (100) que
significa según la tabla de verdad a la condición, Aumento de temperatura,
por lo tanto, el tablero del auto está marcando la letra A correspondiente a
la señal de Aceite.

Capitulo 7.- Diseño de Circuitos Lógicos Página 18


D.I.I.C.C
Arquitectura de Sistemas Computacionales

7.5 Introducción a los flip -flop

DEFINICIONES:
Un circuito se dice combinacional cuando su salida depende de las
entradas en el restante considerado no importando el valor que haya
tomado anteriormente.

En general es posible realizar una función Booleana mediante


combinación de las diferentes compuertas existentes.

En cambio, un circuito secuencial no sólo depende de las entradas en


el instante considerado sino que además, de la evolución anterior de éste.
Para este caso se utilizan los Flip -Flop.

Hay dos tipos de circuitos secuenciales y su clasificación depende de


las señales de tiempo. Un circuito secuencial sincrónico emplea elementos
de almacenamiento denominados flip-flops que se permiten que cambien
sus valores binarios solamente en instantes discretos de tiempo. Un circuito
secuencial asincrónico es un sistema cuyas salidas dependen del orden en el
cual sus variables de entrada cambian y puede afectarse en cualquier
instante de tiempo. Los sistemas asincrónicos del tipo compuerta son
básicamente circuitos de combinación con rutas de realimentación. Debido a
la realimentación entre las compuertas lógicas el sistema puede, algunas
veces, volverse inestable. Los problemas de inestabilidad encontrados en
sistemas asincrónicos imponen muchas dificultades y por esta razón, rara
vez son utilizados en el diseño de sistemas de computadores digitales.

Los sistemas de lógica secuencial sincrónica utilizan compuertas


lógica y dispositivos de almacenamiento con flip-flops. La sincronización se
logra por un dispositivo de tiempo denominado un generador de pulsos de
reloj. Los pulsos de reloj de generador son distribuidos a través del sistema
de tal manera que los flip-flops son afectados solamente con la llegada del
pulso de sincronización. Los circuitos secuenciales sincrónicos de reloj no
manifiestan problemas de inestabilidad y su sincronización de tiempo se
puede desdoblar fácilmente en pasos independientes discretos, cada uno de
los cuales puede considerarse separadamente. Los circuitos secuenciales
discutidos en este libro son exclusivamente del tipo sincrónico con reloj.

Un flip-flops es una celda binaria capaz de almacenar un bit de


información. Tiene dos salidas, una para el valor normal y otra para el valor
complementado del bit almacenado en él. Un flip-flops mantiene un estado
binario hasta que sea dirigido por un flops está en el número de entradas
que posan y en la manera en la cual las entradas afectan el estado binario.
Los tipos más comunes de flip-flops se discuten a continuación.

Capitulo 7.- Diseño de Circuitos Lógicos Página 19


D.I.I.C.C
Arquitectura de Sistemas Computacionales

7.5.1 Flip-flop básico o de pestillo

Un flip-flop asincrónico se construye a partir de dos compuertas


NAND y dos compuertas NOR conectadas frente a frente. EL circuito para la
versión NAND se muestra en la Figura. Las conexiones cruzadas de la salida
de una compuerta con la entrada de la otra constituyen el camino de
realimentación. Por esta razón, el circuito se clasifica como asincrónico.
Cada flip-flop tiene dos salidas, Q y Q’, y dos entradas, set y reset. Este tipo
de flip-flop es denominado un flip-flop RS directamente acoplado, la R y la S
son las primeras letras de los nombres de las dos entradas. Otro nombre
más popular para este tipo de flip-flop es un pestillo. El pestillo forma un
circuito básico a partir del cual pueden construirse tipos más complicados
de flip-flop.

Flip-flop básico (pestillo)

El pestillo NAND opera con ambas entradas normales en 1, a no ser


que el estado del circuito tenga que cambiarse. La aplicación de un 0
momentáneo a la entrada set hace que la salida Q se coloque en 1 y Q’ en
0. Las salidas del circuito no cambian cuando la entrada set regresa a 1. Un
0 momentáneamente aplicado a la entrada reset coloca la salida Q = 0 y Q’
= 1. El estado de flip-flop es siempre tomado del valor de su salida normal
Q. Cuando Q = 1, decimos que el flip-flop almacena un 1 y está en el
estado set. Cuando Q = 0, decimos que el flip-flop almacena un 0 y está en
el estado aclarado.

El circuito pestillo manifiesta una condición indeseable si ambas


entradas se colocan en 0 simultáneamente. La investigación del circuito
mostrará que cuando ambas entradas son 0, las salidas Q y Q’ se colocan
en 1, una condición que no tiene normalmente ningún significado en la
operación de un flip-flop. Si ambas entradas regresan a 1, el estado del flip-
flop no es predecible; cualquier estado puede resultar, dependiendo de cuál
entrada permanezca en el estado 0 por el mayor período de tiempo antes
de la transición a 1.

Capitulo 7.- Diseño de Circuitos Lógicos Página 20


D.I.I.C.C
Arquitectura de Sistemas Computacionales

7.5.2 Flip-flop RS

Añadiendo compuertas a las entradas del pestillo, el flip-flop puede


hacer que responda solamente durante la ocurrencia de un pulso de reloj:
El flip-flop RS con reloj, que se muestra en la Figura, consiste en un pestillo
básico y dos compuertas adicionales NAND. Las salidas de compuerta 3 y 4
permanecen en 1 siempre y cuando el pulso de reloj (abreviado CP) esté en
0, independiente de los valores de las entradas R y S. Cuando el pulso de
reloj va a 1, la información de las entradas S y R se permite que alcance el
pestillo en las compuertas 1 y 2. El estado de set se alcanza con S = 1, R =
0 y CP = 1. Para cambiar al estado aclarado, las entradas deben ser S = 0,
R = 1, y CP = 1. Con S = 0 y R = 0, un CP de 1 no afecta el estado del flip-
flop. S y R no pueden ser 1 durante la ocurrencia de un pulso de reloj
debido a que el estado siguiente del flip-flop es indeterminado.

Diagrama lógico de un flip-flop RS con reloj

El símbolo gráfico o diagrama de bloques del flip-flop que se muestra


en la Figura, tiene tres entradas: S, R, y CP. La entrada CP se marca con un
pequeño triángulo. El triángulo es un símbolo para un indicador dinámico y
denota el hecho de que el circuito responde a una entrada de transición de
0 a 1. A las salidas del flip-flop se les da un nombre variable tal como Q o
cualquier otra designación con una letra conveniente. El pequeño triángulo
rectángulo es un símbolo gráfico para un indicador de polaridad. El designa
la salida complementada del flip-flop la cual es en este caso Q’.

Diagrama de Bloques Flip-flop RS

Capitulo 7.- Diseño de Circuitos Lógicos Página 21


D.I.I.C.C
Arquitectura de Sistemas Computacionales

Tabla de Verdad
S R Q( t+1 ) COMENTARIO
0 0 Q( t ) No Cambias
0 1 0 Aclarar
1 0 1 Set
1 1 ? No Permitido

La tabla característica mostrada, resume la operación del flip-flop RS


en forma tabular. Q(t) es el estado binario del flip-flop en un instante dado
de tiempo (conocido como el estado presente). Las columnas S y R dan los
valores binarios de las entradas. Q(t+1) es el estado del flip-flop después
que ha ocurrido un pulso de reloj (conocido el estado siguiente). Si S=R=0,
un pulso no produce cambio de estado, esto es Q(t+1)=Q(t). Si S=0 y R=1,
el flip-flop llega al estado 0 (el estado aclarado). Si S=1 y R=0 el flip-flop
llega al estado 1 (el estado set). Un flip-flop RS no debe ser pulsado cuando
S=R=1 puesto que produce un estado siguiente indeterminado.

7.5.3 El flip-flop D

El flip-flop D (dato) es una modificación ligera del flip-flop RS. Un flip-


flop RS se convierte a un flip-flop D insertando un inversor entre S y R y
asignándole el símbolo D a la entrada S. La entrada D es muestreada
durante la ocurrencia de un pulso de reloj y si este es 1, el flip-flop alcanza
el estado 1 (debido a que S=1 y R=0). Si él es 0, el pulso cambia el estado
del flip-flop a 0 (debido a que S=0 y R=1). El símbolo gráfico y la tabla
característica del flip-flop D se muestran en la siguiente Figura. Note que no
existe condición de entrada que deje el estado del flip-flop sin cambiar.
Aunque un flip-flop D tiene la ventaja de tener solamente una entrada
(excluyendo CP), tiene la desventaja de que su tabla característica no tiene
una condición de “no cambio” Q(t+1)=Q(t). El “no cambio” puede lograrse
bien rehabilitando los pulsos de reloj con una compuerta externa AND o
alimentando la entrada de nuevo hacia la salida de tal manera que los
pulsos del reloj mantengan el estado del flip-flop sin modificar.

Flip-flop D

Capitulo 7.- Diseño de Circuitos Lógicos Página 22


D.I.I.C.C
Arquitectura de Sistemas Computacionales

Tabla de Verdad
D Q ( t+1 ) COMENTARIO
0 0 Aclarar
1 1 Set

7.5.4 El flip - flop Jk y T

Un flip-flop JK es un refinamiento de un flip-flop RS en que la


condición intermedia del tipo RS está definida en el tipo JK. Las entradas J y
K se comportan como un conjunto de entradas S y R para hacer el set y el
aclaramiento del flip-flop respectivamente. Cuando las entradas J y K son
ambas iguales a 1, un pulso de reloj conmuta las salidas del flip-flop a su
estado complementario, Q(t+1)=Q’(t). El símbolo gráfico y tabla
característica del flip-flop JK se muestran en la Figura. Note que la entrada J
es equivalente a la condición set mientras que la entrada K produce la
condición de aclaramiento. Además hay condiciones de no cambio y
complementarias en este tipo de flip-flop.

Flip-flop JK

Tabla de Verdad
J K Q ( t+1 ) COMENTARIO
0 0 Q( t+1 ) No Cambia
0 1 0 Aclarar
1 0 1 Set
1 1 Q’ ( t ) Complemento

Flip-flop T

Capitulo 7.- Diseño de Circuitos Lógicos Página 23


D.I.I.C.C
Arquitectura de Sistemas Computacionales

Tabla de Verdad
T Q ( t+1 ) COMENTARIO
0 Q(t) No Cambia
1 Q’ ( t ) Complemento

Otro tipo de flip-flop que se encuentra en los libros de texto es el flip-


flop T (toggle). Este flip-flop, mostrado en la Figura, se obtiene de un tipo
JK cuando las entradas J y K se amarran juntas. El flip-flop T, por
consiguiente, tiene solamente dos condiciones. Cuando T=0 (J=K=0) un
pulso de reloj no cambia el estado de flip-flop. Cuando T=1 (J=K=1) un
pulso de reloj complementa el estado del flip-flop.

Tabla de Excitación

Las tablas características de flip-flops especifican el estado cuando las


entradas y el estado presente se conocen. Durante el proceso de diseño
conocemos normalmente la transición requerida del estado presente al
estado siguiente y deseamos encontrar las condiciones de entrada del flip-
flop que harán la transición requerida. Por esta razón necesitamos una tabla
que liste las combinaciones de entrada requerida para un cambio dado de
estado. Una tabla como esta se denomina una tabla de excitación del flip-
flop.

La Tabla Resumen, lista las tablas de excitación para los cuatro tipos
de flip-flops. Cada una de las tablas consta de dos columnas, Q(t) y Q(t+1),
y una columna para cada una de las entradas para mostrar como se logra la
transición requerida. Hay cuatro transiciones posibles de un estado presente
Q(t) a un estado siguiente Q(t+1). Las condiciones de entrada requeridas
para cada una de estas transiciones se derivan de la información disponible
en las tablas características. El símbolo X en las tablas representa
condiciones que no importan; esto es, no importa si la entrada del flip-flop
es 0 ó 1.

Tablas de excitación para los cuatro tipos de flip-flops


Q(t) Q(t+1) S R Q(t) Q(t+1) J K
0 0 0 X 0 0 0 X
0 1 1 0 0 1 1 X
1 0 0 1 1 0 X 1
1 1 X 0 1 1 X 0

(a) Flip-Flop RS (b) Flip-Flop JK

Q(t) Q(t+1) D Q(t) Q(t+1) T


0 0 0 0 0 0
0 1 1 0 1 1
1 0 0 1 0 1
1 1 1 1 1 0

(c ) Flip-flop D (d) Flip-Flop T

Capitulo 7.- Diseño de Circuitos Lógicos Página 24


D.I.I.C.C
Arquitectura de Sistemas Computacionales

Tabla resumen de Flip -Flop

La razón para las condiciones que no importan en las tablas de


excitación es que hay dos maneras de lograr la transición requerida. Por
ejemplo, en un flip-flop RS, una transición del estado presente de 0 a un
estado siguiente de 0 puede lograrse teniendo las entradas S y R iguales a
0 (para que no ocurra cambio cuando se aplica el pulso de reloj), o
haciendo S=0 y R=1 para aclarar el flip-flop (aunque ya está aclarado). En
ambos casos S debe ser 0, pero R es 0 en el primer caso y 1 en el segundo.
Puesto que la transición requerida ocurrirá en cualquier caso, marcamos la
entrada R con una X y dejamos al diseñador para que escoja o 0 o 1 para la
entrada R, la que para él sea más conveniente.

7.6 Ejemplos prácticos utilizando flip -flop:

7.6.1 RESTADOR UTILIZANDO SUMADORES

La Unidad Aritmética Lógica (UAL) realiza otras operaciones


aritméticas, tales como la multiplicación y división por números distintos de
2, suma de códigos decimales y resta. La resta puede ser realizada
utilizando un circuito restador, en la misma forma en que se utilizaba un
circuito sumador. De todas formas, para limitar el número de circuitos
diferentes, la resta en los computadores se realiza mediante el circuito
sumador. Para hacer esto, es necesario cambiar algunos de los números
binarios a números codificados en Complemento A2. Como se mostrará en
la siguiente figura, nótese que las entradas de los bits B están negados por
un inversor, invirtiendo las entradas antes que entren en el sumador y
aplicando un arrastre de entrada (Cin), el sumador efectuará la operación
resta en vez de sumar. Para aclarar el concepto, utilizaremos como ejemplo
efectuar la siguiente operación aritmética: A - B, donde A=12 y B=6.

Capitulo 7.- Diseño de Circuitos Lógicos Página 25


D.I.I.C.C
Arquitectura de Sistemas Computacionales

Observemos que enviando el número B a través de los inversores del


circuito, los bit a sumar son 1001, en vez de 0110 (el equivalente decimal
de 6). Este es el complemento o Complemento A1 de 0110. Sumando 1001
al número A, 1100 (equivalente binario del número decimal 12), con un
arrastre de entrada 1, se obtiene el resultado 0110. Así mediante la suma
obtenemos la resta deseada (12 - 6 = 6). El arrastre sumado proporciona el
complemento A2 del número B. Con este procedimiento se ahorra superficie
en el circuito integrado, porque los circuitos del sumador se utilizan para
más de una función. A continuación se realizará el desarrollo matemático de
la operación resta:

Sea A= 1210 = 11002


B = 6 10 = 01102

Calculemos el Complemento A1 de B

A1 de B = 1001

Efectuemos la suma A+ A1 de B, y finalmente el Complemento A2


producido por el acarreo.

Por lo tanto : El circuito Sumador a restado 12 - 6 = 6 (0110


en binario).

Capitulo 7.- Diseño de Circuitos Lógicos Página 26


D.I.I.C.C
Arquitectura de Sistemas Computacionales

Diagrama de Bloques del Circuito Lógico:

Para comprender mejor el funcionamiento de las operaciones


aritméticas básicas, hemos utilizado sólo números de 4 bits. A continuación
se muestra el diagrama de bloques del circuito que se comporta como
Sumador / Restador.

7.6.2 MULTIPLICADORES Y DIVISORES (Desplazadores):

Para realizar la multiplicación y la división se necesitan registros con


capacidad de desplazamiento de números a derecha e izquierda. Otras
operaciones aritméticas necesarias en los Pc son la multiplicación y la
división de un número por 2. Para realizar estas operaciones se necesitan
circuitos de control y / o registros que puedan desplazar un número binario
una posición a la derecha (División por 2) o una posición hacia la izquierda
(Multiplicación por 2). Una forma en que esto pueda hacerse es dando
salida a los datos del registro y haciéndolos volver a éste en la posición
desplazada. La siguiente figura muestra un circuito que permite hacer
desplazamientos a la derecha o la izquierda. Para realizar el
desplazamiento a la izquierda, se coloca un 1 en la línea de Desplazamiento
Izquierda y se envía la salida de un determinado Flip-Flop a la entrada del
Flip - Flop situado inmediatamente a su izquierda a través de las puertas de
Retención. La señal de Desplazamiento Izquierda es sincronizada por el
reloj. El Flip - Flop de arrastre de salida guarda el Bit más significativo
presente antes del desplazamiento, puede necesitarse para las operaciones
siguientes. Un desplazamiento a la derecha se realiza enviando una señal 1
por la línea de Desplazamiento Derecha, en vez de por la de
Desplazamiento Izquierda, a lo que provoca que cada Flip -Flop envíe su
contenido situado inmediatamente a su derecha, a través de las puertas de
retención. Por ejemplo, si el número almacenado en el registro es 0110 (
equivalente al 6 decimal) antes del desplazamiento a la izquierda, el
número almacenado después de la operación de desplazamiento es 1100 (
equivalente al número 12 decimal). El desplazamiento a la izquierda ha
multiplicado el número por 2. Si el 1100 es desplazado a la derecha, se
convierte en 0110; significa que el número 12 ha sido dividido por 2. A

Capitulo 7.- Diseño de Circuitos Lógicos Página 27


D.I.I.C.C
Arquitectura de Sistemas Computacionales

modo de ejemplo, se desarrollará las operaciones de multiplicación y


división aprovechando el desplazamiento de bit a la izquierda o derecha.

Se desea ejecutar la siguiente operación matemática 6*2 = 12:

El equivalente del número 6 decimal a binario es 0110, veamos en


forma gráfica el desplazamiento a la izquierda para generar el resultado
1100 equivalente a 12 en decimal:

Multiplicación:
Sea el número decimal 6 igual 0110 binario, éste número se ha
representado en un arreglo de 8 bit, los 4 bit segmentados llenos de ceros,
servirán para efectuar el desplazamiento. Como se trata de una
multiplicación el desplazamiento se realizará en un bit a la izquierda a partir
del dígito más significativo (1). La siguiente figura el desplazamiento a la
izquierda.

Después del desplazamiento a la izquierda se obtiene el número


binario 1100 equivalente al número 12 decimal. Por lo tanto, se ha
multiplicado por 2.

División
En forma análoga al ejemplo anterior, se representa el número a
dividir (4 ÷ 2) en un arreglo, pero con la diferencia que las posiciones de
los bit segmentados aparecen a la izquierda, puesto que se realizará un
desplazamiento a la derecha:.

Capitulo 7.- Diseño de Circuitos Lógicos Página 28


D.I.I.C.C
Arquitectura de Sistemas Computacionales

Después del desplazamiento a la derecha, se obtiene el número


binario 0010 equivalente al número 2 decimal. Por lo tanto, se ha dividido
por 2.

La siguiente figura muestra el diagrama de bloques que representa a


un Multiplicador / Divisor de 4 bit.

Nota: La señal de Izquierda - Derecha controla las puertas de retención

Número antes del desplazamiento en un registro de 4 bits 0110 (6)


Número después del desplazamiento en un registro de 4 Bits 1100 (12).

7.6.3 MEMORIA RAM DE CIRCUITOS INTEGRADOS.

Las memorias de circuitos integrados algunas veces tienen una


sola línea para el control leer/escribir. Un estado binario, digamos 1,
especifica una operación leer y el otro estado binario especifica una
operación escribir. Además, se pueden incluir o más líneas de habilitación
en cada uno de los paquetes del circuito integrado para proporcionar
medios para expandir varios paquetes en una unidad de memoria con un
gran número de palabras.

La construcción interna de una memoria de acceso aleatorio de


m palabras con n bits por palabra consta de m * n celdas de
almacenamiento binario y lógica necesaria para seleccionar una palabra
para escribir o leer. La celda de almacenamiento binario es el bloque de
construcción básico de una unidad de memoria. El diagrama lógico de una
celda binaria que almacena un bit de información se muestra a
continuación. Aunque la celda se muestra que incluye cinco compuertas y

Capitulo 7.- Diseño de Circuitos Lógicos Página 29


D.I.I.C.C
Arquitectura de Sistemas Computacionales

un flip-flop, internamente es construida con 2 flip-flop de transistores que


tienen entradas múltiples. La celda binaria de una unidad de memoria debe
ser muy pequeña para ser capaz de empacar tantas celdas como sea
posible en el área del semiconductor disponible en la pastilla. La celda
binaria se muestra que tiene tres líneas de entrada y una línea de salida.

Diagrama Lógico

Diagrama de bloque BC Celda Binaria

Este circuito es equivalente al recién mencionado, para efectos de


simplicidad del circuito se ha utilizado éste último en vez del anterior.

El propósito de la entrada select es seleccionar una celda de las


muchas disponibles. Con la línea select en 1, un 1 en el terminal

Capitulo 7.- Diseño de Circuitos Lógicos Página 30


D.I.I.C.C
Arquitectura de Sistemas Computacionales

leer/escribir conforma una ruta de la salida del flip-flop al terminal de


salida. Con el terminal leer/escribir en 0, el bit en la línea de entrada se
transfiere al flip-flop. Con la entrada como la salida son deshabilitadas
cuando la línea select es 0. Note que el flip-flop opera sin pulso de reloj y
que su propósito es almacenar el bit de información en la celda binaria.

La configuración de una RAM de 4 por 3 se muestra en la figura


que sigue. Contiene cuatro palabras de tres bits cada una para un total de
12 celdas de almacenamiento. Cada caja pequeña rotulada BC en el
diagrama contiene el circuito de una celda binaria. Las cuatro líneas que se
ven en cada caja BC designan los tres terminales de entrada y un terminal
de salida como se especificó en el diagrama anterior.

Circuito lógico de una Memoria RAM de 4 por 3.

Las dos líneas de dirección van a un Decodificador 2 por 4 con


una entrada de habilitación. Cuando la habilitación de memoria es 0, todas
las salidas del Decodificador son 0 y ninguna de las palabras de la memoria
se seleccionan. Con la entrada habilitada de memoria en 1, una de las
cuatro palabras es seleccionada, dependiendo de la combinación del bit de
las dos líneas de dirección. Ahora, con el control leer/escribir en 1, los bits
de la palabra seleccionada van a tres compuertas OR y a los terminales de

Capitulo 7.- Diseño de Circuitos Lógicos Página 31


D.I.I.C.C
Arquitectura de Sistemas Computacionales

salida. Las celdas binarias no seleccionadas producen 0's en las entradas del
OR y no tienen efecto en las salidas. Con el control leer/escribir en 0, la
información disponible en las líneas de entrada se transfiere a los flip-flop
de la palabra seleccionada. Las celdas binarias no seleccionadas en las otras
palabras son deshabilitadas por la línea de selección de tal manera que los
valores previos permanecen inmodificados. Así, con la habilitación de la
memoria en 1, el control leer/escribir inicia las operaciones leer y escribir
para la unidad de memoria. Una operación de inhibición se obtiene
manteniendo la habilitación de memoria en 0. Esta condición deja los
contenidos de todas las palabras en la memoria como eran, independiente
del valor del control leer/escribir.

7.6.4 MEMORIAS DE SOLO LECTURA (ROM).

Una memoria de solo lectura (ROM), como su nombre lo indica, es


una unidad de memoria que realiza solamente la operación de lectura: no
tiene la capacidad de escribir. Esto implica que la información binaria
almacenada en una ROM se realiza permanentemente durante la producción
del hardware de la unidad y no puede ser alterada escribiendo palabras
diferentes en ella. Mientras que una RAM es un dispositivo de propósito
general cuyos contenidos pueden alterarse durante el proceso de cómputo,
una ROM está restringida a la lectura de palabras que son
permanentemente almacenadas dentro de la unidad.

Una ROM m por n es un arreglo de celdas binarias organizadas


en m palabras de n bits cada una. Como se muestra en el diagrama de
bloques de la figura siguiente, una ROM tiene k líneas de dirección para
seleccionar una de 2k =m palabras de memoria, y n líneas de salida, una
para cada uno de los bits de la palabra.

Capitulo 7.- Diseño de Circuitos Lógicos Página 32


D.I.I.C.C
Arquitectura de Sistemas Computacionales

La ROM no necesita una línea de control leer puesto que en un


instante dado, las líneas de salida automáticamente proporciona los 1's y
0's de los n bits de la palabra selecciona por el valor de la dirección. Debido
a que las salidas son una función solamente de las entradas presentes (las
líneas de dirección) una ROM es clasificada como un circuito de
combinación. En realidad, una ROM se construye internamente con
Decodificadores y un conjunto de compuertas OR. No hay necesidad de
proporcionar condiciones de almacenamiento como en el RAM, puesto que
los valores de los bits en la ROM se mantienen fijos permanentes.

Considere el diagrama lógico siguiente de una ROM 4 por 3. La


unidad contiene un Decodificador de 2 por 4 para decodificar las dos líneas
de dirección. Las compuertas OR proporcionan tres salidas. Si cada uno de
los minterms de salida del Decodificador es conectado a la entrada de cada
uno de las compuertas OR, las salidas del circuito estarán en 1 no importa
cual sea la palabra seleccionada por las líneas de dirección. Supongamos
que deseamos que la ROM contenga las combinaciones de bits que se
numeran en la tabla de verdad que acompaña al diagrama. La tabla de
verdad especifica una combinación de bit de 010 para la palabra 0. Esta
combinación de bits se obtiene rompiendo dos alambres (marcados con una
cruz) entre la palabra 0 y las entradas que están más a la izquierda de las
compuertas OR. En otras palabras, cuando la línea de dirección de entrada
es 00, la salida D del Decodificador es igual a 1 y todas las otras salidas del
Decodificador son iguales a 0. Solamente la compuerta OR asociada con la
salida A2 recibe una entrada de 1 debido a que los otros dos alambres están
rotos. Por consiguiente, las líneas de salida proporcionan una salida
A1A2A3=010 (suponiendo que un alambre abierto de la compuerta OR se
comporta como una entrada 0). Similarmente, todos los otros alambres
marcados con cruces indican alambres rotos y cuando estos alambres se
retiran del diagrama, el diagrama lógico así obtenido implementará la tabla
de verdad que se enumeran para la ROM.

Circuito ROM de 4 por 3

Capitulo 7.- Diseño de Circuitos Lógicos Página 33


D.I.I.C.C
Arquitectura de Sistemas Computacionales

Tabla de Verdad:
Dirección Salidas
X Y A1 A2 A3
0 0 0 1 0
0 1 0 0 1
1 0 1 0 1
1 1 1 1 0

Una ROM CI se fabrica primero con todas las salidas en 1 (o todas en


0, dependiendo del CI particular). El patrón particular de 1's y 0's se
obtiene proporcionando una máscara en el último paso de fabricación. Cada
una de las celdas en una ROM incorpora un enlace (en la posición de la cruz
en diagrama) que puede fusionarse durante el último proceso de
fabricación. Un enlace roto en una celda define un estado binario y un
enlace no roto representa el otro estado.

El procedimiento involucrado en la fabricación de ROMs requiere que


el cliente llene la tabla de verdad que él desea que satisfaga la ROM. El
fabricante entonces hace la máscara correspondiente para los enlaces para
que se produzcan los 1's y 0's de cada palabra deseada. Este procedimiento
es denominado una programación al cliente o una programación de
máscara. Es un procedimiento de hardware aunque se utilice aquí la palabra
programación.

Para pequeñas cantidades es más conveniente utilizar la ROM


programable, conocido como una PROM. Cuando se ordena, las PROMs
contienen todos 0's (o todos 1's) en cada palabra.

Cada una de las celdas de una PROM incorpora un enlace que puede
fundirse por aplicación de un pulso de corriente elevada. Un enlace roto en
una celda define un estado binario y uno que no está roto representa el otro

Capitulo 7.- Diseño de Circuitos Lógicos Página 34


D.I.I.C.C
Arquitectura de Sistemas Computacionales

estado. El procedimiento usualmente es irreversible y, una vez fundido, la


salida para aquel bit es permanente. Esto permite al usuario programar la
unidad en su propio laboratorio rompiendo los enlaces que deben ser
abiertos para lograr las relaciones deseadas entre las direcciones de entrada
y los datos de salida.

También se encuentra disponibles las PROMs borrables. Estas ROMs


tienen un procedimiento especial para restaurar los enlaces a su valor inicial
(todos 0's o todos 1's) aunque ellos hayan sido programados previamente.
En cualquier caso, todos los procedimientos para programar o borrar ROMs
son procedimientos de hardware. Las aplicaciones digitales que utilizan
ROMs especifican un patrón de palabra fija. El aspecto de programación de
la ROM tiene que ver con los procedimientos para obtener el patrón fijo
deseado.

Las ROMs son ampliamente utilizadas para convertir un código binario


a otro, para tablas que se necesitan en funciones matemáticas, para la
exhibición de caracteres, y muchas otras aplicaciones que requieren un gran
número de entradas y salidas. También se emplean en el diseño de
unidades de control para computadores digitales.

En este aspecto se usan para almacenar información codificada que


representa la secuencia de variables de control internas necesarias para
habilitar las diversas operaciones en el computador. Una unidad de control
que utilizan una ROM para almacenar información de control binario es
denominada una unidad de control microprogramada.

El siguiente ejemplo muestra un contador digital de 2 bit. Este sumador


podrá sumar desde 00 hasta el número 99 decimal. Este circuito ha sido
implementado utilizando 4 Flip - Flop JK, más una compuerta AND. Para
efectos de simplicidad del circuito, se ha utilizado un CI llamado bcdcnt
(Contador BCD).

El siguiente esquema muestra el circuito lógico del contador:

Capitulo 7.- Diseño de Circuitos Lógicos Página 35


D.I.I.C.C
Arquitectura de Sistemas Computacionales

Circuito Integrado utilizado:

Subcircuito del CI bcdcnt:

Capitulo 7.- Diseño de Circuitos Lógicos Página 36

También podría gustarte