circuitos digitales ii

36
D.I.I.C.C Arquitectura de Sistemas Computacionales Capitulo 7.- Diseño de Circuitos Lógicos Página 1 CAPITULO 7 .- DISEÑO DE CIRCUITOS LOGICOS 7.1 INTRODUCCION 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 E

Upload: jesuseperez

Post on 13-Apr-2017

275 views

Category:

Documents


0 download

TRANSCRIPT

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

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

CAPITULO 7 .- DISEÑO DE CIRCUITOS LOGICOS

7.1 INTRODUCCION

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

E

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

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

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

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

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

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 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

0 0 0 1 0 1 1 0 0 1 1 0 1 0 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.

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

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

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.

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

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

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.

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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 :

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

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

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 de 2n 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.

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

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

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.

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

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

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 I C D

ALARMA 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)

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

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

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:

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

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

ALARMA L C D

LLAMADA 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.

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

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

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:

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

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

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

Condición Variables x y z

Display 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=

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

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

En resumen las ecuaciones obtenidas las podemos agrupar como sigue:

a,c,g=x; d= YZYZX ++ )( ; f,e= XYYXZX +⊕+ )( ; b= )( YZX +

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.

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

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

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.

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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 1 1

0 1 0 1

0 1 0 X

X 0 1 0

0 0 1 1

0 1 0 1

0 1 X X

X X 1 0

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

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

0 1 0 1

0 1 0 1

0 0 1 1

0 1 0 1

0 1 1 0

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

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

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

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.

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

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

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).

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

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

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

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

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

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:.

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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:

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

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

Circuito Integrado utilizado:

Subcircuito del CI bcdcnt: