You are on page 1of 212

http://www.virtual.unal.edu.co/unvPortal/courses/CoursesViewer.do?reqCode=viewOfFacultys http://www.virtual.unal.edu.co/cursos/ingenieria/2000477/docs_curso/contenido.

html

CURSO DE ELECTRONICA DIGITAL 1 SISTEMAS NUMRICOS

El sistema decimal es universalmente empleado para representar cantidades en el mundo real. Los sistemas electrnicos digitales tienen que recoger la informacin y convertirla en dgitos binarios para procesarla internamente. As mismo, cuando la informacin es procesada, es necesario convertir esta informacin, por lo general a decimal antes de llevarla al mundo exterior. En realidad, no se manejan solamente estos dos sistemas, en la prctica se hace necesario utilizar cdigos que facilitan el manejo de otras caractersticas. En el captulo, se describir el cdigo decimal, el cdigo binario , el hexadecimal, el octal, las operaciones entre estos sistemas, las distintas conversiones entre los diferentes sistemas y algunas representaciones de nmeros binarios. Capitulo 1: Sistemas Numricos Sistemas Binario y Hexadecimal El sistema binario es el ms utilizado en los circuitos electrnicos digitales. Existen otros dos sistemas, en las aplicaciones digitales; El hexadecimal y el octal. Su ventaja radica en la facilidad que ofrecen para representar de forma reducida los nmeros binarios. Sistema Decimal El sistema decimal es un sistema en base 10. En una cantidad decimal cada dgito tiene un peso asociado a una potencia de 10 segn la posicin que ocupe. Los pesos para los nmeros enteros son potencias positivas de diez, aumentado de derecha a izquierda, comenzando por 100=1. Peso:....106105104103102101100 Los pesos para los nmeros fraccionarios son potencias negativas de diez, aumentando de izquierda a derecha, comenzando por 10-1. Peso:....106105104103102101100, 10-110-210-310-4 La expresin general para descomponer el valor de una magnitud expresada en cualquier sistema numrico para obtener su valor decimal:

donde, di = Dgito en la posicin i. r = Base del sistema utilizado. n = No. de dgitos fraccionarios. p = No. de dgitos enteros. La base r del sistema numrico es el nmero total de dgitos permitidos para el sistema. Ejemplo 235.63 = 2x102 + 3x101 + 5 x 100 + 6x10-1 + 3x10-2

Sistema Binario El sistema binario es un sistema en base dos. Es el sistema utilizado por los computadores digitales y tiene slo dos valores lgicos posibles - "0 y 1" - para sus coeficientes, los cuales se pueden representar fsicamente de distintas maneras, como las siguientes:

Tensines alto y bajo. Interruptor cerrado o abierto. Sentido de magnetizacin de un ncleo magntico. Corriente elctrica alta o baja. Los dgitos 0 y 1 se llaman bits.

En un nmero entero binario el bit a la derecha es el bit menos significativo ( LSB, Least Significant Bit) y tiene un peso de 20=1. El bit del extremo izquierdo el bit ms significativo (MSB, Most Significant Bit) y tiene un peso dependiente del tamao del numero binario. Los pesos crecen de derecha a izquierda en potencias de 2. En nmeros fraccionarios el bit a la izquierda de la coma es el MSB y su peso es de 2-1= 0,5. Los pesos decrecen de izquierda a derecha en potencias negativas de 2. Peso:2n-1....2423222120, 2-12-22-3......2-n. En el cual n es el nmero de bits a partir de la coma binaria. La tabla 1.1.1. muestra la equivalencia de los nmeros decimales del 0 al 15 a su correspondiente binario.

Nmero Decimal Nmero Binario

10

11

12

13

14

15

Tabla 1.1.1. Sistema decimal y binario

Ejemplo 101101,11 = 1x25 + 0x24 + 1x23 + 1x22 + 0x21 + 1x20 + 1x2-1 + 1x2-2 En decimal se tiene: 32 + 8 + 4 + 1 + 0,5 + 0,25= 45,75 10. La interactividad 1.1.1 muestra el equivalente entre los nmeros decimales del 0 al 9 y el nmero binario correspondiente.

Sistema Hexadecimal El sistema hexadecimal es un sistema en base 16 y consta de 16 dgitos diferentes que son: del 0 al 9 y luego de la letra A a la F, es decir 10 dgitos numricos y seis caracteres alfabticos. El sistema hexadecimal se usa como forma simplificada de representacin de nmeros binarios y debido a que 16 es una potencia de 2(24=16), resulta muy sencilla la conversin de los nmeros del sistema binario al hexadecimal y viceversa. La tabla 1.1.2. muestra los nmeros decimales de 0 al 15 con su equivalencia en binario y hexadecimal.

Decimal Sistema binario Hexadecimal

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

10

1010

11

1011

12

1100

13

1101

14

1110

15

1111

Tabla 1.1.2. Sistema decimal, binario y hexadecimal

Para convertir un nmero hexadecimal en un nmero binario se reemplaza cada smbolo hexadecimal por un grupo de cuatro bits. Ejemplo El nmero 4F5B16 en binario equivale a

Sistema Octal El sistema octal es un sistema en base 8 y est formado por 8 dgitos. En un nmero octal, los pesos crecen de derecha a izquierda en potencias de 8. Peso: 8483828180 La tabla 1.1.3. muestra los nmeros decimales de 0 al 17 con su equivalencia a binario y octal.

Decimal Sistema binario Octal

0000

0001

0010

0011

0100

0101

0110

0111

1000

10

1001

11

10

1010

12

11

1011

13

12

1100

14

13

1101

15

14

1110

16

15

1111

17

16

10000

20

17

10001

21

Tabla 1.1.3. Sistema decimal, binario y octal

Observe que en octal los dgitos 8 y 9 no se usan. La conversin de un nmero octal en decimal se obtiene multiplicando cada dgito por su peso y sumando los productos. Ejemplo 1725= 1x83 + 7x82 + 2x81 + 5x80 = 512+448+16+5= 981 Cdigo decimal binario (BCD) El cdigo decimal binario (BCD Binary Code Decimal) es utilizado para expresar los diferentes dgitos decimales con un cdigo binario. Por consiguiente, el cdigo BCD tiene diez grupos de cdigo y resulta prctico para convertir entre decimal y BCD. El cdigo 8421 El cdigo 8421 pertenece al grupo de cdigos BCD. El nombre 8421 indica los diferentes pesos de los cuatro bits binarios (23, 22, 21, 20). La tabla 1.1.4. muestra los nmeros decimales de 0 al 9 con su equivalencia en BCD.

Decimal Dgito en BCD

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

Tabla 1.1.4. Sistema decimal y BCD

Con un nmero de 4 bits se pueden representar 2 4 combinaciones posibles, pero al emplear el cdigo 8421 se incluyen solamente 10 grupos de cdigo binario, en consecuencia las combinaciones 1010, 1011, 1100, 1101, 1110, 1111 no se utilizan. Ejemplo Convertir a BCD el nmero decimal 6498. Reemplazando por los valores de la tabla 1.1.4. se obtiene, 649810 =(0110 0100 1001 1000)8421

CONVERSIONES DE UN SISTEMA A OTRO


Las conversiones entre nmeros de bases diferentes se efectan por medio de operaciones aritmticas simples. Dentro de las conversiones ms utilizadas se encuentran: Conversin de Decimal a Binario Para la conversin de decimal a binario se emplean dos mtodos. El primero es divisiones sucesivas y el segundo es suma de potencias de 2. Por divisiones sucesivas Se va dividiendo la cantidad decimal por 2, apuntando los residuos, hasta obtener un cociente cero. El ltimo residuo obtenido es el bit ms significativo (MSB) y el primero es el bit menos significativo (LSB). Ejemplo Convertir el nmero 15310 a binario.

Figura 1.2.1.Ejemplo de conversin de decimal a binario

El resultado en binario de 15310 es 10011001 Por sumas de potencias de 2 Este mtodo consiste en determinar el conjunto de pesos binarios cuya suma equivalga al nmero decimal. Ejemplo Convertir el nmero 15310 a binario. 15310 = 27 + 24 + 23 + 20 = 128 + 16 +8 +1 15310= 100110012 Como se aprecia, si se cuenta con alguna familiaridad con las potencias de 2 este ltimo mtodo es ms rpido. Conversin de Fracciones Decimales a Binario Para la conversin de fracciones decimales a binario se emplean el siguiente mtodo. Por suma de potencias de 2 Emplea la misma metodologa de la suma de potencias de 2 pero se trabaja con potencias negativas. Ejemplo Convertir el nmero 0,87510 a binario. 0,87510 = (2-1) + (2-2) + (2-3) = 0,5 + 0,25 + 0,125 = 0,1112 Por multiplicaciones sucesivas La conversin de nmeros decimales fraccionarios a binario se realiza con multiplicaciones sucesivas por 2. El nmero decimal se multiplica por 2, de ste se extrae su parte entera, el cual va a ser el MSB y su parte fraccional se emplea para la siguiente multiplicacin y seguimos sucesivamente hasta que la parte fraccional se vuelva cero o maneje un error moderado. El ltimo residuo o parte entera va a constituir el LSB. Ejemplo

Convertir el nmero 0,87510 a binario.

Nmero N N X 2 Parte entera Peso 0,875 0,75 0,5 1,75 1,5 1,00 1 1 1 MSB LSB
Tabla 1.2.1. Ejemplo de Conversin de Decimal a Binario.

El resultado en binario de 0,87510 es 0,1112. Conversin de Decimal a Hexadecimal En la conversin de una magnitud decimal a hexadecimal se realizan divisiones sucesivas por 16 hasta obtener un cociente de cero. Los residuos forman el nmero hexadecimal equivalente, siendo el ltimo residuo el dgito ms significativo y el primero el menos significativo. Ejemplo Convertir el nmero 186910 a hexadecimal.

Figura 1.2.2. Ejemplo de Conversin de decimal a hexadecimal

El resultado en hexadecimal de 186910 es 74D16. Conversin de Decimal a Octal En la conversin de una magnitud decimal a octal se realizan divisiones sucesivas por 8 hasta obtener la parte entera del cociente igual a cero. Los residuos forman el nmero octal equivalente, siendo el ltimo residuo el dgito ms significativo y el primero el menos significativo. Ejemplo Convertir el nmero 46510 a octal.

Nmero N N 8 Parte decimal Parte decimal x 8 Peso 465 58 0,5 58,125 0,125 7,25 0,25 0,875 0,875 1 2 7 LSB MSB

Tabla 1.2.2. Ejemplo de Conversin de Decimal a Hexadecimal.

El resultado en octal de 46510 es 721 . Conversin de Binario a Decimal

Un nmero binario se convierte a decimal formando la suma de las potencias de base 2 de los coeficientes cuyo valor sea 1 (ver leccin 1). Ejemplo Convertir el nmero 11002 a decimal. 11002 = 1x23 + 1x22 = 1210 Conversin de Binario a Hexadecimal El mtodo consiste en conformar grupos de 4 bits hacia la izquierda y hacia la derecha del punto que indica las fracciones, hasta cubrir la totalidad del nmero binario. Enseguida se convierte cada grupo de nmero binario de 4 bits a su equivalente hexadecimal. Ejemplo Convertir el nmero 10011101010 a hexadecimal.

Conversin de Binario a Octal El mtodo consiste en hacer grupos de 3 bits hacia la izquierda y hacia la derecha del punto que indica las fracciones, hasta cubrir la totalidad del nmero binario. Enseguida se convierte cada grupo de nmero binario de 3 bits a su equivalente octal. Ejemplo Convertir el nmero 01010101 2 a octal.

Conversin de Hexadecimal a Decimal En el sistema hexadecimal, cada dgito tiene asociado un peso equivalente a una potencia de 16, entonces se multiplica el valor decimal del dgito correspondiente por el respectivo peso y realizar la suma de los productos. Ejemplo Convertir el nmero 31F16 a decimal. 31F16 = 3x162 + 1x16 + 15 x 160 = 3x256 + 16 + 15 = 768 + 31 = 79910 Conversin de Hexadecimal a Binario La conversin de hexadecimal a binario se facilita porque cada dgito hexadecimal se convierte directamente en 4 dgitos binarios equivalentes. Ejemplo Convertir el nmero 1F0C16 a binario. 1F0C16 = 11111000011002

Conversin de Octal a Decimal La conversin de un nmero octal a decimal se obtiene multiplicando cada dgito por su peso y sumando los productos: Ejemplo Convertir 47808 a decimal. 4780 = (4 x 83)+(3x82)+(8x81)+(0x80) = 2048+192+64+0= 2304 Conversin de Octal a Binario La conversin de octal a binario se facilita porque cada dgito octal se convierte directamente en 3 dgitos binarios equivalentes. Ejemplo Convertir el nmero 7158 a binario. 7158 = (111001101)2

REPRESENTACIN DE NMEROS ENTEROS Y DE PUNTO FLOTANTE


Los computadores deben interpretar nmeros positivos y negativos. Los nmeros binarios se caracterizan por su magnitud y su signo. El signo indica si el nmero es positivo o negativo y la magnitud el valor del nmero. Representacin de Nmeros Binarios Enteros Existen tres formas de representar los nmeros binarios enteros con signo: a. b. c. Signo magnitud. Complemento a 1. Complemento a 2.

a. Signo Magnitud En el sistema Signo magnitud los nmeros positivos y negativos tienen la misma notacin para los bits de magnitud pero se diferencian en el bit del signo. El bit del signo es el bit situado ms a la izquierda en el nmero binario:


Ejemplo

En nmeros positivos se emplea el bit "0". En nmeros negativos se emplea el bit "1". El nmero no debe estar complementado.

El nmero decimal 21 se expresa en binario de 6 bits 010101, donde el primer bit "0" denota el bit de una magnitud positiva. El nmero decimal 21 se expresa en binario 110101, donde el primer bit "1" denota el bit de una magnitud negativa. b. Complemento a 1 El complemento a 1 en binario se obtiene cambiando los unos por ceros y los ceros por unos. La representacin de nmeros positivos en complemento a 1 sigue las mismas reglas del sistema signo-magnitud y la representacin de los nmeros negativos en complemento 1 es el complemento a 1 del nmero positivo. Ejemplo

El nmero decimal 21 se expresa en complemento a 1 a 6 bits como 010101, donde el primer bit "0" denota el bit de una magnitud positiva. El complemento 1 a 6 bits del decimal 21, se obtiene por medio del complemento a 1 del nmero positivo 010101 el cual es 101010. Ejemplo Un forma de obtener el complemento 1 de un nmero binario es utilizar un circuito digital compuesto por inversores (compuertas NOT). En la figura siguiente las entradas se encuentran ubicadas en la parte superior y las salidas negadas en la parte inferior.

Interatividad 1.3.1. Circuito de inversores que ejemplifica el complemento a 1 de una expresin.

c. Complemento a 2 Los computadores utilizan la representacin binaria en complemento a 2 para representar nmeros negativos. La representacin de nmeros positivos en complemento a 2 sigue las mismas reglas del sistema signo-magnitud y la representacin de los nmeros negativos en complemento a 2 se obtiene de la siguiente forma: 1. 2. 3. 4. Se representa el nmero decimal dado en magnitud positiva. El nmero de magnitud positiva se representa en forma binaria positiva. Se obtiene el complemento 1 del nmero binario obtenido en el paso anterior mediante el cambio de los unos por ceros y viceversa. Al complemento 1 se le suma uno y el resultado es la representacin en el complemento 2.

Ejemplo Representar el nmero 510 en binario, utilizando el complemento a 2 con 5 bits. 1. 5 5.Escribimos el nmero +510 en binario de 5 bits 0101 2. Obtenemos el complemento a 1 de 0101 1010 3. 4. Ejemplo Obtener el complemento a 2 del nmero positivo de 8 bits 00000101 2 (+510). Al complemento de nmero anterior se la suma 1. El resultado es 1011. Obtenemos el nmero 1011 en complemento a 2.

El equivalente en complemento a 1 es 11111010. El complemento a 2 del nmero es 11111011. Comprobando los pesos en decimal se puede demostrar la obtencin del negativo del nmero inicial utilizando el mtodo del complemento a 2: 111110112 = (-128 + 64 + 32 +16 + 8 + 0 + 2 + 1)10 = - 510 En la representacin en complemento 2 el primer bit del lado ms significativo puede interpretarse como el signo, siendo cero para nmeros positivos y 1 para nmeros negativos. Se puede comprobar que si a una cantidad negativa expresada en complemento 2 se le saca su complemento 2, se obtiene la magnitud positiva correspondiente. Representacin en Punto Fijo y en Punto Flotante En los computadores los nmeros se representan en punto fijo y en punto flotante. Punto fijo Se usa para los nmeros enteros con signo o fracciones con signo. En este caso las cantidades se representan en forma binaria en complemento a 1 a 2 y se pueden utilizar longitudes de 8, 16 y 32 bits. En 8 bits el rango va desde 128 hasta 127. El nmero de combinaciones diferentes de un nmero binario de n bits es: No.total de combinaciones: 2n. En los nmeros con signo e complemento a 2, el rango de valores para nmeros de n bits: (2n-1) a +(2n-1-1). a. Enteros con signo Los enteros de punto fijo usan un punto binario a la derecha del LSB. Ejemplo El nmero de punto fijo de 8 bits 01110101 en complemento a 2, por tener un 0 en el bit de signo representa: El nmero entero positivo 1110101 la fraccin positiva 0 .1110101 a. Fracciones de punto fijo Las fracciones de punto fijo usan el punto binario entre el bit de signo y el MSB. Ejemplo El nmero de punto fijo de 8 bits 11001111 en complemento a 2, por tener un 1 en el bit de signo representa: El nmero entero negativo -0110001 la fraccin negativa -0 . 0110001. Punto flotante El punto flotante se utiliza para representar nmeros no enteros, nmeros muy grandes o nmeros muy pequeos. Un nmero en punto flotante se expresa como m x re donde, m es la mantisa y es un nmero de punto fijo

e es el exponente o caracterstica y es un entero de punto fijo r es la base. En los computadores personales se usa base 2. La mantisa representa la magnitud del nmero. El exponente es la parte que representa el nmero de lugares a desplazar el punto decimal o binario. S tenemos un nmero de punto fijo de la forma (an-1 .... a0 . a-1 .a-m)r en forma de punto flotante ser de la forma ( . an-1 ....a-m)r x rn , la base generalmente se omite. Con frecuencia la mantisa m se escribe con magnitud y signo de la siguiente forma, y en forma de fraccin M = (sm . an-1 a-m) donde, sm indica el signo (1 para una cantidad negativa y 0 para una cantidad positiva) y . an-1 a-m representa la magnitud. Un nmero de punto flotante est normalizado si el exponente se ajusta de modo que la mantisa tenga un valor distinto de cero en la posicin ms significativa. Ejemplo El nmero +1010.0111 en representacin normalizada en punto flotante da como resultado (0.10100111) x 24 El estndar ANSI/IEEE 754-1985 define tres formatos para los nmeros de punto flotante:


Ejemplo Un formato a 32 bits es el siguiente,

Precisin sencilla: Utiliza 32 bits. Doble precisin: Utiliza 64 bits Precisin ampliada: Utiliza 80 bits.

El exponente desplazado se obtiene adicionando 127 al exponente real y convirtindolo al binario correspondiente.

OPERACIONES ARITMTICAS EN BINARIO


Los circuitos de control bsicos y los computadores efectan operaciones aritmticas. Estas operaciones se realizan en sistema binario y las leyes que las rigen, son paralelas a las usadas en el sistema decimal. A continuacin se describe cada una de las metodologas para realizar tales operaciones. Suma Binaria La suma de dos cantidades binarias empieza con la suma de los dos dgitos menos significativos de los sumandos y un acarreo inicial de cero uno (Acarreo Cin). Esta operacin puede producir un bit de acarreo (Acarreo Cout) para la suma de la siguiente posicin significativa. En la tabla 1.4.1. las entradas A, B y Cin denotan al primer sumando, el segundo sumando y el acarreo de entrada. Las salidas S y Cout representan a la suma y el acarreo de salida.

Sumando A Sumando B Acarreo Cin Acarreo Cout Suma S

Tabla 1.4.1. Suma binaria

Ejemplo Efectuar la suma de 010110 y 101010. 1 1111 + 010110 101010 1000000 Acarreo Comprobacin en decimal: 22 + 42 64 ( 26)

La suma de 2 magnitudes binarias en representacin de complemento a 2, da como resultado la suma binaria en complemento a 2. Resta Binaria En la resta binaria, los bits del minuendo de las columnas se modifican cuando ocurre un prstamo. En la tabla 1.4.2. las entradas A, B y Bin denotan el minuendo, el sustraendo y el bit prestado. Las salidas D y P representan a la diferencia y el prstamo. La tabla muestra los resultados de una resta binaria de dos bits,

Minuendo A Sustraendo B Prstamo Bin Prstamo P Diferencia D

Tabla 1.4.2. Resta binaria

Para A=0, B=0 y Bin=1, hay que tomar prestado un 1 de la siguiente columna ms significativa, lo cual hace P=1 y agregar "en decimal" 2 a A. La resta 2-0-1=1, da como resultado en binario D=1. Los prestamos se propagan hacia la izquierda de columna en columna. Ejemplo Restar 10012 de 100112. Rengln 2, Tabla 1.4.1. 0 - 1 = 0 con un prstamo de la columna izquierda. 10 - 1 = 1 Rengln 1, Tabla 1.4.1. 0 - 0 = 0 sin prstamo. Rengln 3, Tabla 1.4.1. 1 - 0 = 0 sin prstamo. Rengln 4, Tabla 1.4.1. 1 - 1= 0 sin prstamo.

1 Prstamo 1001 1 - 01001 0101 0

Rebasamiento El rebasamiento se presenta cuando la suma de la columna ms significativa genera un acarreo. El rebasamiento slo se puede producir cuando ambos nmeros son positivos o negativos. Ejemplo Efectuar la suma de 86510 y 41210. 1 865 + 412 1207 Rebasamiento Acarreo

Ejemplo Efectuar la suma de 1102 y 1102. 1 1 Acarreo 110 + 110 1100 Rebasamiento

Resta binaria en Complemento a 2 En la leccin anterior se vi que el signo de un nmero positivo negativo se cambia calculando su complemento a 2. La resta de dos nmeros con signo se calcula sumando el complemento a 2 del sustraendo al minuendo y descartando cualquier bit de acarreo final. El siguiente procedimiento es necesario para calcular la resta de dos nmeros: 1. 2. 3. 4. Obtener el complemento a 2 del sustraendo. Efectuar la suma del minuendo y el sustraendo en complemento a 2. S la suma presenta rebosamiento indica que la repuesta es positiva. Ignore el rebasamiento. Si no hay rebosamiento, entonces la repuesta es negativa. Para obtener a magnitud del nmero binario, obtenga el complemento a dos de la suma.

Ejemplo Sustraer (1010111 - 1001000) 2 1. El complemento a 2 de 1001000 es 0111000. 2. Sumamos el primer sumando y el complemento a 2 obtenido. 1 11 + 1010111 0111000 10001111 Rebasamiento (Se ignora ) 3. La respuesta es 00011112. Multiplicacin Binaria La multiplicacin de dos cantidades binarias es necesario considerar lo siguiente: Acarreo Comprobacin en decimal: 87 - 72 15

Multiplicando A Multiplicador B Multilplicacin (A*B) 0 0 1 1 0 1 0 1 0 0 0 1

Tabla 1.4.3. Multiplicacin binaria

La multiplicacin binaria cumple las mismas reglas de la multiplicacin decimal. En el prximo ejemplo se ilustrar la multiplicacin binaria. Ejemplo Multiplicar las cantidades 1011 y 1101.

Figura 1.4.4. Multiplicacin binaria

Multiplicacin con signo Se representan los operandos en complemento 2 y el resultado tambin se obtiene en complemento 2. El ltimo multiplicando desplazado se niega.

PRINCIPIOS DE DISEO DE LGICA COMBINATORIA

Los sistemas digitales combinatorios son aquellos cuyas salidas slo dependen de las entradas actuales. Los circuitos de este tipo no pueden contener lazos de retroalimentacin. En anlisis de circuitos combinacionales, se empieza con un diagrama lgico y se obtiene una descripcin formal de la funcin realizada por el circuito, ya sea una tabla de verdad o una expresin lgica. En la sntesis, se comienza con una descripcin formal y se termina con un diagrama lgico. El diseo es una estrategia para resolver un problema por medio de la sntesis.

LGEBRA DE BOOLE
El lgebra booleana es la teora matemtica que se aplica en la lgica combinatoria. Las variables booleanas son smbolos utilizados para representar magnitudes lgicas y pueden tener slo dos valores posibles: 1 (valor alto) 0 (valor bajo). Operaciones Booleanas y Compuertas Bsicas Las operaciones boolenas son posibles a travs de los operadores binarios negacin, suma y multiplicacin, es decir que estos combinan dos o ms variables para conformar funciones lgicas. Una compuerta es un circuito til para realizar las operaciones anteriormente mencionadas. Inversin o negacin (complemento) Esta operacin se indica con una barra sobre la variable o por medio de un apstrofe en el lado superior derecho de la variable, en este curso emplearemos esta ltima notacin. El apstrofe () es un operador algebraico que invierte el valor de una variable, es decir, si X denota la seal de entrada de un inversor, entonces X representa el complemento de tal seal. Ejemplo S X = 0 entonces X = 1. En la tabla de verdad 2.1.1. se muestra el resultado de la inversin lgica.

Ecuacin Entrada A Salida B

0 B=A 1

Tabla 2.1.1. Tabla de verdad del inversor

El smbolo lgico de la negacin booleana se representa en la figura 2.1.1.

Figura 2.1.1. Inversor.

Suma booleana La representacin matemtica de una suma booleana de dos variables se hace por medio un signo ms entre las dos variables. Ejemplo La suma booleana de las variables A y B se enuncia de la siguiente forma, X=A+B La suma booleana es 1 si alguna de las variables lgicas de la suma es 1 y es 0 cuando todas las variables son 0. Esta operacin se asimila a la conexin paralela de contactos. La tabla de verdad de la suma se muestra en la tabla 2.1.2.

Entrada A Entrada B Salida X

Tabla 2.1.2.Tabla de Verdad de la funcin OR

En circuitos digitales, el equivalente de la suma booleana es la operacin OR y su smbolo lgico se representa en la figura 2.1.2.

Figura 2.1.2. Smbolo lgico para la compuerta OR.

Con la correspondiente ecuacin X= A + B. El inverso de la funcin OR es la funcin NOR. La tabla de verdad se muestra en la tabla 2.1.3.

Entrada A Entrada B Salida X

Tabla 2.1.3.Tabla de verdad de la funcin NOR

El smbolo lgico de la compuerta NOR se representa en la figura 2.1.3.

Figura 2.1.3. Smbolo lgico para la compuerta NOR

Con la correspondiente ecuacin X= (A+B) La suma booleana difiere de la suma binaria cuando se suman dos unos. En la suma booleana no existe acarreo. Multiplicacin booleana La representacin matemtica de una multiplicacin booleana de dos variables se hace por medio un signo punto () entre las dos variables. La multiplicacin booleana de las variables A y B se enuncia de la siguiente forma, X=AB La multiplicacin booleana es 1 si todas las variables lgicas son 1, pero si alguna es 0, el resultado es 0. La multiplicacin booleana se asimila a la conexin serie de contactos. La tabla de verdad de la multiplicacin booleana se muestra en la tabla 2.1.4.

Entrada A Entrada B Salida X

Tabla 2.1.4. Tabla de verdad de la funcin AND

En circuitos digitales, el equivalente de la multiplicacin booleana es la operacin AND y su smbolo se representa en la figura 2.1.4.

Figura 2.1.4. Smbolo lgico de la funcin AND

con la correspondiente ecuacin X= AB El inverso de la funcin AND es la funcin NAND. La tabla de verdad se muestra la tabla 2.1.5.

Entrada A Entrada B

Salida X

Tabla 2.1.5.Tabla de verdad de la funcin NAND

El smbolo lgico de la compuerta NAND se representa en la figura 2.1.5.

Tabla 2.1.5. Smbolo lgico de la funcin NAND

Con la correspondiente ecuacin X = (AB) La interactividad 2.1.1 muestra las compuertas ms importantes.

Interactividad 2.1.1. Compuertas Bsicas

Propiedades de las Operaciones Booleanas Las operaciones booleanas estn regidas por tres leyes similares a las del lgebra convencional. Estas incluyen las leyes conmutativas de la suma y la multiplicacin y la ley distributiva. Leyes conmutativas en dos variables 1. Ley conmutativa de la suma se enuncia como sigue X+Y=Y+X En aplicacin a los circuitos digitales, podramos decir que no importa el orden de conexin de las entradas a una compuerta OR. 2. Ley conmutativa de la multiplicacin XY = Y X En aplicacin a los circuitos digitales, podramos decir que no importa el orden de conexin de las entradas a una compuerta AND. Leyes asociativas en tres variables 1. Ley asociativa de la adicin, se escribe en forma algebraica de la siguiente forma A+(B+C)=(A+B)+C En la figura 2.1.6 se muestra la aplicacin de la propiedad a las compuertas OR,

Figura 2.1.6. Ley asociativa de la adicin

2.

Ley asociativa de la multiplicacin A( B C) = ( AB ) C En la figura 2.1.7 se muestra la aplicacin de la propiedad a las compuertas AND,

Figura 2.1.7. Ley asociativa de la multiplicacin

Ley distributiva para tres variables En el lgebra de Boole, la multiplicacin lgica se distribuye sobre la suma lgica, A( B + C ) = AB + AC En la figura 2.1.8 se muestra la aplicacin de la propiedad a las compuertas AND y OR,

Figura 2.1.8. Ley distributiva para tres variables

lgebra de Boole (Continuacin) Teoremas Booleanos Los teoremas booleanos son enunciados siempre verdaderos, lo que permite la manipulacin de expresiones algebraicas, facilitando el anlisis sntesis de los circuitos digitales. Los teoremas booleanos son los siguientes: 1. 2. 3. 4. 5. 6. 7. 8. 9. X+0=X X+1=1 X0 = 0 X1 = X (X)=X X+X=X XX = X X + X = 1 X.X= 0

10. X + XY = X 11. X +XY = X + Y 12. XY + XY = X (Teorema de combinacin) 13. (X +Y)(X + Y) = X + XY + XY = X 14. XY + XZ + YZ = XZ + YZ (Consenso) El teorema 12 se conoce como la ley distributiva para tres variables. Demostracin teorema 12: XY + XY = X

Utilizando la ley distributiva para tres variables XY + XY= X(Y+Y) Aplicando el teorema 8 se tiene, XY + XY= X1 Dando como resultado, XY + XY= X Esta expresin indica que la suma de dos productos cannicos adyacentes, es decir que difieren en una sola de las variables, se reduce al producto de los dems trminos suprimindose dicha variable. El teorema 13 es otro caso del teorema de combinacin. Los teoremas 12 y 13 se utilizarn en las lecciones siguientes de forma sistemtica para sintetizar circuitos lgicos con los mtodos de mapas de karnaugh y el algortimo de Quine-McCluskey. (ver leccin 4).

Teoremas de DeMorgan Los teoremas de DeMorgan demuestran la equivalencia entre las puertas NAND y negativa - OR, y las puertas NOR y negativa AND. 1. El complemento de la suma de variables es igual al producto de los complementos de las variables. (X1 + X2 +.....+ Xn) = X1 X2 ..... Xn En el caso de dos variables se tiene, (X + Y) = X Y El circuito equivalente a la ecuacin anterior se muestra en la figura 2.1.9.

Figura 2.1.9. Smbolo lgico para la compuerta NOR.

Ejemplo Obtener una compuerta OR utilizando compuertas NAND. Y = (A + B) = [(A + B)] = (AB)

Figura 2.1.10. Compuerta OR utilizando compuertas NAND

1.

El complemento del producto de variables es igual a la suma de los complementos de las variables. (X1 X2 ..... Xn) = X1 + X2 + .....+ Xn

En el caso de dos variables se tiene, (X Y) = X + Y El circuito equivalente en dos variables a la ecuacin se muestra en la figura 2.1.11.

Figura 2.1.11. Smbolo lgico para la compuerta NOR.

Ejemplo Obtener una compuerta AND utilizando compuertas NOR. Y = AB = [(A.B)] = (A+B)

Figura 2.1.12. Circuito lgico para la compuerta AND

Simplificacin de Expresiones Lgicas El objetivo de la simplificacin de expresiones lgicas es reducir la expresin al menor nmero posible de trminos. Las expresiones lgicas se pueden simplificar utilizando los teoremas anteriores. Ejemplo F = ABC + ABC F = AB(C + C) F = AB Ejemplo F= (A+B)(A+B) F = AA + AB + AB + BB F = AB + AB Ejemplo F = [(A + C)(B + D)] F = (A + C)+(B + D) F= AC + BD Ejemplo

F = (X + Z)(Z + WY) + (VZ + WX)(Y + Z) F = (X + Z)[Z(W + Y)] + [(VZ + WX)(YZ)] F = (X + Z)(ZW + ZY) + VYZZ + WXYZ F = WXZ + XYZ + ZZW + ZZY + WXYZ F = WXZ + XYZ + WZ + YZ + WXYZ F = WZ(1 + X) + YZ(1 + X) + WXYZ F = WZ + YZ + WXYZ F = WZ + YZ(1 + WX) F = Z(W + Y)

Implementacin de Funciones Lgicas mediante Compuertas. La forma ms fcil de encontrar la expresin de un circuito lgico consiste en comenzar con las entradas situadas ms a la izquierda e ir avanzando hasta la salida de cada compuerta lgica, obteniendo la expresin para cada una de ellas. Al final del recorrido se debe tener la expresin para todo el circuito. La expresin resultante podemos simplificarla para obtener una ms sencilla y as obtener un circuito ms reducido. Ejemplo Encontrar la expresin para el circuito de la figura.

Figura 2.1.13. Smbolo lgico para la compuerta NOR.

1. 2. 3.

La expresin de la compuerta NOR situada a la izquierda cuyas entradas son A y B es (A+B). Esta es la primera entrada de la compuerta AND situada a la derecha. La expresin de la compuerta AND cuyas entradas son (A+B) y C es (A+B)C. La salida de la compuerta AND es la primera entrada de la compuerta OR del extremo derecho. Por lotanto, la expresin de esta compuerta OR es [(A+B)C]+D.

SNTESIS DE DISEO DE CIRCUITOS COMBINATORIOS


Sntesis se entiende como la obtencin de circuitos lgicos, a partir de una descripcin inicial que utiliza el lenguaje convencional y luego es transferida a una tabla de verdad. Una tabla de verdad es una representacin bsica de una funcin lgica, en la cual se listan las salidas del circuito lgico para las posibles combinaciones de entrada. Las combinaciones de entrada estn ordenadas por renglones (lneas) y cada rengln contiene su salida respectiva. Por ejemplo, la tabla de verdad para una funcin lgica de 3 variables, tendr 8 lneas para 8 combinaciones de entrada, conteniendo cada lnea, su salida respectiva. En la tabla 2.2.1. se ilustra una funcin de 3 variables para el caso mencionado. C Funcin de salida Mintrmino Maxtrmino Rengln o lnea A B

0 1 2 3 4 5 6 7

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

F(0,0,0) F(0,0,1) F(0,1,0) F(0,1,1) F(1,0,0) F(1,0,1) F(1,1,0) F(1,1,1)

A'B'C' A'B'C A'BC' A'BC AB'C' AB'C ABC' ABC

A+B+C A+B+C' A+B'+C A+B'+C' A'+B+C A'+B+C' A'+B'+C A'+B'+C'

Tabla 2.2.1.Funciones de salida, maxtrminos y mintrminos

En general, la tabla de verdad para una funcin lgica de n variables tendr 2 n lneas. En la interactividad 2.2.1. se pueden introducir los datos de la funcin de salida y obtener el correspondiente mintrmino y mxtrmino.`

Interactividad 2.2.1. Funciones de salida, maxtrminos y mintrminos

Mtodos para Sintetizar Circuitos Lgicos Los mtodos para sintetizar circuitos lgicos requieren en primer lugar, la comprensin de algunos conceptos, entre ellos:

Literal: Variable o el complemento de una variable. Ejemplo: X, Y, X, Y.

Dominio de una expresin booleana: Es el conjunto de variables contenido en una expresin booleana. Ejemplo: Determine el dominio de la expresin XYZ + XYZW. El dominio es X, Y, Z, W.

Trmino normal: Un producto o trmino suma en donde ninguna variable aparece repetida. Ejemplo de trmino repetido: XYY, ZXXY Ejemplo de trmino no repetido: XYZ, ZYX

Trmino producto: Un solo literal o el producto lgico (multiplicacin booleana) de dos o ms literales. Ejemplo: X, XY, ZY, XYZ Un trmino producto es 1 slo para una combinacin de valores de las variables.

Ejemplo: El trmino producto XY'Z es 1 slo para X=1, Y=0 y Z=1 y es 0 para el resto de combinaciones. El valor en binario ser 101 5 en decimal.

Trmino suma: Un solo literal o una suma lgica (suma booleana) de dos o ms literales. Ejemplo: X, X + Y,X+Z, X+Y+Z, X+Y+Z Un trmino suma es 1 cuando cualquier literal que lo compone es 1. Ejemplo: El trmino X+Y+Z es 0 para X=0 Y=1 Z=1 y es 1 para el resto de combinaciones. El valor en binario ser 011 3 en decimal.

Suma de productos: Suma lgica de trminos productos (Ver tabla 2.2.1). Ejemplo: X+ XY + ZY + XYZ Forma estndar de la suma de productos Una suma de productos no se encuentra en su forma estndar cuando alguno de los trminos producto no contiene alguna de las variables del dominio de la expresin. Ejemplo XYZ + XYZW. El dominio es X, Y, Z, W. El primer trmino producto no contiene el literal W W'. Ejemplo X'YZ'.W + XYZW. En cada uno de los trminos de la expresin aparecen todas las variables del dominio. Por lo tanto, la suma de productos est en su forma estndar.

Producto de sumas: Producto lgico de trminos suma (Ver tabla 2.2.1). Ejemplo: X(X+Y)(X+Z)(X+Y+Z)(X+Y+Z). Forma estndar del producto de sumas Un producto de sumas no se encuentra en su forma estndar cuando alguno de los trminos suma no contiene alguna de las variables del dominio de la expresin. Ejemplo (X+W+Z')(X'+Y+Z+W')(X+Y). El dominio es X, Y, Z, W. El primer trmino suma no contiene el literal Y Y'. El tercer trmino suma no contiene los literales Z Z' y W W'. Ejemplo (X'YZ'.W)(XY'ZW). En cada uno de los trminos de la expresin aparecen todas las variables del dominio. Por lo tanto, el producto de sumas est en su forma estndar.

Mintrmino: Es un trmino de producto con n literales en el cual hay n variables. De n variables obtenemos 2n mintrminos.

Ejemplo de mintrminos de 3 variables: XY.Z, X.Y.Z, X.Y.Z, X.Y.Z, X.Y.Z, X.Y.Z, X.Y.Z, X.Y.Z. (Ver tabla 2.2.1.).

Maxtrmino: Es un trmino de suma con n literales en el cual hay n variables. De n variables obtenemos 2n maxtrminos. (Ver tabla 2.2.1.). Ejemplo de maxtrminos de 3 variables: X+Y+Z, X+Y+Z, X+Y+Z, X+Y+Z, X+Y+Z, X+Y+Z, X+Y+Z, X+Y+Z. (Ver tabla 2.2.1.).

Los mtodos existentes para sintetizar circuitos lgicos son:

Suma de productos (SDP)- Leccin 3. Producto de sumas (PDS) - Leccin 3. Mapas de Karnaugh - Leccin 4. Algoritmo de Quine McCluskey - Leccin 5.

REPRESENTACIN POR SUMA DE PRODUCTOS Y PRODUCTO DE SUMAS


En la leccin anterior vimos las definiciones bsicas para comprender los mtodos de sntesis de circuitos lgicos. En esta leccin se explicarn los dos primeros de estos mtodos para sintetizar circuitos lgicos. Mtodo de Suma de Productos (SDP) La suma de productos de una funcin lgica es la suma de los mintrminos correspondientes a las lneas de la tabla de verdad para las que la funcin produce una salida igual a 1. La funcin obtenida es la suma de productos. Ejemplo Obtener la suma de productos para la funcin lgica de la tabla 2.3.1.

Lnea A B C Funcin de salida F1

0 0 0 0

0 0 1 0

0 1 0 1

0 1 1 0

1 0 0 1

1 0 1 1

1 1 0 0

1 1 1 1

Tabla 2.3.1.Tabla de verdad para la funcin lgica F1

La funcin puede ser expresada conformando un trmino mnimo por cada combinacin de variables que producen un 1 en la funcin para luego obtener la suma de todos los trminos. La funcin lgica para la tabla 2.3.1 se determina expresando las combinaciones 010, 100, 101 y 111 como A'BC', AB'C', AB'C y ABC: F1= A,B,C( 2,4,5,7)= A'BC' + AB'C' + AB'C + ABC. Cada mintrmino de la funcin anterior representa una compuerta AND de tres entradas y la implementacin de la funcinzes posible a travs de la aplicacin de la operacin OR a las salidas de las cuatro compuertas AND. Por tanto, el nmero total de compuertas AND depender del total de mintrminos de la expresin. El circuito se muestra en la figura 2.3.1.

Figura 2.3.1. Circuito lgico para la funcin lgica F1.

En una suma de productos se cumple la igualdad de la funcin al valor lgico 1 si al menos uno de sus trminos productos es igual a 1. Ejemplo Obtener la suma de productos para la funcin lgica de la tabla 2.3.2.

A B F2

0 0 0

0 1 1

1 0 1

1 1 0

Tabla 2.3.2.Tabla de verdad de la funcin F2.

En la tabla de verdad existen dos condiciones para las cuales la salida es 1. Estas son las siguientes:

1.

La primera se presenta cuando A es Bajo(0) y B es Alto(1). El resultado 1 de esta condicin se puede expresar como el producto lgico: AB

2.

La segunda condicin se presenta cuando A es 1 y B es 0. Esta condicin ocasiona un resultado 1, si el producto lgico es: AB

Como cualquiera de estas 2 condiciones hace que la salida sea 1, entonces la funcin lgica que los representa es la suma lgica de los productos anteriores: F2= AB + AB = A B La representacin de la funcin anterior con compuertas OR y AND se muestra en la figura 2.3.2.

Figura 2.3.2. Funcin F2 utilizando compuertas AND Y OR

Esta funcin corresponde a la funcin OR exclusiva, cuya compuerta se representa en la figura 2.3.3.

Figura 2.3.3. Smbolo lgico de la funcin OR - exclusiva.

Ejemplo Obtener la funcin SDP para la funcin lgica de la tabla 2.3.3. Simplificar la funcin y dibujarla.

A B F3

0 0 1

0 1 0

1 0 0

1 1 1

Tabla 2.3.3.Tabla de verdad de la funcin F3

Utilizando suma de productos para las lneas 1 y 4 de la tabla se obtiene,

F3=A'B'+ AB, simplificando F3=(A+B) + AB F3= (A B)' El circuito lgico de la funcin anterior se muestra en la figura 2.3.4.

Figura 2.3.4. Funcin F3 utilizando compuertas AND, NOR y OR.

El smbolo lgico de la compuerta NOR - Exclusiva se muestra en la figura 2.3.5.

Figura 2.3.5. Smbolo lgico de la funcin NOR - exclusiva

Conversin de una expresin lgica a formato de suma de producto s La metodologa empleada en la transformacin de una suma de productos a su forma estndar se basa en el teorema 6 (Ver leccin 1 parte 2), que establece que una variable sumada con su complemento es siempre igual a 1; A + A' = 1. Los pasos son los siguientes: 1. Los trminos producto que no contengan la(s) variable(s) del dominio, multiplicarlos por un trmino formado por dicha variable ms el complemento de la misma (teorema 6). Repetir el paso 1 para todos los trminos de la expresin que no contengan todas las variables (o sus complementos) del dominio. Resolver los trminos intervenidos.

2.

Ejemplo Convertir la expresin booleana AB.C' + BC + A' a su forma estndar. El dominio de la expresin es el conjunto de variables A, B y C. Se observa la falta de formato estndar para el segundo y tercer trmino producto. Sobre ellos se aplicar el procedimiento, para luego volver a agrupar toda la expresin: Trmino BC BC = BC (A+A') = ABC + A'BC Trmino A A' = A'(C+C') = A'C+A'C' ; la expresin an no tiene el formato estndar, entonces multiplicamos cada trmino por (B+B') A'C(B+B') +A'C'(B+B') = A'BC + A'B'C + A'BC' + A'B'C' La expresin en su formato estndar es: AB.C' + BC + A' = ABC + A'BC + A'BC + A'B'C + A'BC' + A'B'C' Mtodo de producto de sumas (PDS)

El producto de sumas de una funcin lgica es la multiplicacin de los maxtrminos correspondientes a las lneas de la tabla de verdad para las que la funcin produce una salida igual a 0. La funcin obtenida es el producto de sumas. Ejemplo Obtener el producto de sumas para la funcin lgica de la tabla 2.3.4.

Rengln o lnea A B C Funcin de salida F4 0 1 2 3 4 5 6 7 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1


Tabla 2.3.4.Tabla de verdad para la funcin lgica F4

La funcin puede ser expresada conformando un trmino mximo para cada combinacin de variables que producen un 0 en la funcin y luego obtener el producto de todos los trminos. La funcin lgica para la tabla 2.3.4 se determina expresando las combinaciones 000, 001, 011 y 110 como (A+B+C),(A+B+C'),(A+B'+C') y (A'+B+C). La funcin lgica es la siguiente: F4= A,B,C( 0,1,3,4)= (A+B+C)(A+B+C')(A+B'+C')(A'+B+C). Cada maxtrmino de la funcin anterior representa una compuerta OR de tres entradas y la implementacin de la funcin es posible a travs de la aplicacin de la operacin AND a las salidas de las cuatro compuertas AND. Por tanto, el nmero total de compuertas AND depender del total de mintrminos de la expresin. El circuito se muestra en la figura 2.3.6.

Figura 2.3.6. Circuito lgico para la funcin lgica F 4

Un producto de sumas es igual a 0 si al menos uno de los trminos suma es igual a 0. Ejemplo Obtener el producto de sumas para la funcin lgica de la tabla 2.3.5.

A B F5

0 0 0

0 1 1

1 0 1

1 1 0

Tabla 2.3.5.Tabla de verdad de la funcin OR - exclusiva

Considere el complemento de la funcin de Boole F5. Este puede obtenerse de la tabla 2.3.5. formando un trmino mnimo por cada combinacin que produce un cero y luego haciendo la suma de los trminos. El complemento de F5 se expresa as: F5' = A'B' + AB La expresin F5 se obtiene la negar F5': F5 = (F5')' = (A'B' + AB)' =(A'B')'(AB)' = [(A')'+(B')'](A'+B') = (A+B)(A'+B') Si cualquiera de los trminos del PDS es cero, la funcin es cero. De los 2 mtodos anteriores, se pueden escoger algunos criterios para aplicar un mtodo u otro, siendo estos los siguientes:

Si en la ltima columna de la tabla de verdad, o sea en la columna que indica los resultados, s predominan los ceros es ms conveniente utilizar las suma de productos. Si en la columna que indica los resultados, predominan los unos, es ms conveniente utilizar el mtodo del producto de sumas.

MAPAS DE KARNAUGH

Un mapa de Karnaugh es una representacin grfica de una funcin lgica a partir de una tabla de verdad. El nmero de celdas del mapa es igual al nmero de combinaciones que se pueden obtener con las variables de entrada. Los mapas se pueden utilizar para 2, 3, 4 y 5 variables. Mapa de Karnaugh empleando Suma de Productos (SDP) La simplificacin de expresiones lgicas mediante el mapa de Karnaugh utiliza un mtodo grfico basado en la Suma de Productos. Mapa de Karnaugh de tres variables El mapa de Karnaugh se construye a partir de la tabla de verdad de la funcin lgica. El mapa por medio de una matriz de 8 celdas, representa los ocho mintrminos posibles que se pueden obtener con tres variables, en un arreglo de una matriz de 2x4. Por tanto, la primera fila contiene el primer valor posible ("0") y la segunda fila el valor ("1"). Las variables 2 y 3 se agrupan por columna y se distribuyen en las cuatro columnas de acuerdo a las combinaciones posibles para obtener los mintrminos requeridos. Sus valores son 00, 01, 10 y 11. Por ejemplo, la celda m2 corresponde al mintrmino 2, ubicado en la fila 0 y la columna 10. La unin de estos dos nmeros da el nmero 010, cuyo equivalente es el trmino ABC el decimal 2. La tabla 2.4.1. muestra el mapa de Karnaugh para 3 variables.

Lnea A B C Mintrmino Mintrmino mx Funcin de Salida

0 0 0 ABC

m0

F(0,0,0)

0 0 1 ABC

m1

F(0,0,1)

0 1 0 ABC

m2

F(0,1,0)

0 1 1 ABC

m3

F(0,1,1)

1 0 0 ABC

m4

F(1,0,0)

1 0 1 ABC

m5

F(1,0,1)

1 1 0 ABC

m6

F(1,1,0)

1 1 1 ABC

m7

F(1,1,1)

(a)

(b)

(c)

Tabla 2.4.1. Mapa de tres variables

La caracterstica de ordenamiento de un mapa de Karnaugh radica en el cambio de un solo bit en los trminos de las celdas adyacentes de filas y columnas. En la tabla 2.4.1. las entradas BC se colocan secuencialmente, cambiando cada vez una sola variable, por eso resulta el orden: 00, 01, 11 y 10. En la interactividad 2.4.1., la pulsacin de cada cuadro activa el mintrmino correspondiente.

Interactividad 2.4.1. Mapa de tres variables

Por ejemplo, la variable C est negada en m4 y m5 no lo est, mientras que A y B no cambia. Las celdas de los bordes superior e inferior e izquierdo y derecho tambin cumplen esta condicin al agruparlas unas a otras. En el teorema 12 de la leccin 1, se demuestra que la suma de los trminos mnimos en celdas adyacentes pueden ser simplificadas en un trmino AND de dos literales. Por consiguiente, aplicando el teorema para los trminos m4 y m5 del mapa se tiene: m4 + m5 = ABC + ABC = AB(C+C) = AB Los trminos m4 y m6 se pueden asociar de la misma forma:


Ejemplo

m4 + m6 = ABC + ABC = AC(B+B) = AC

Simplificar la funcin F1= (m3, m4, m5, m6, m7).

F1 = (m3, m4, m5, m6, m7) = ABC + ABC+ ABC + ABC+ ABC

Aplicando el teorema 6 de la leccin 1 para el trmino ABC. F1 = (m3, m4, m5, m6, m7) = (m4, m5, m6, m7) + (m3, m7) = [ABC+ ABC + ABC+ ABC] + [ABC + ABC]. El primer trmino en la sumatoria es el grupo 1 y el segundo trmino corrresponde al grupo 2. En un mapa de karnaugh, los mintrminos de cada grupo se relacionaran a travs de lazos independientes. Desarrollando la expresin, F1 = [AB(C+C) + AB(C+ C)] + [BC(A+A)]= AB(1) + AB(1) + BC(1) = A(B+B) + BC = A + BC. El mapa se construye colocando un 1 en las celdas correspondientes a los mintrminos presentes en la funcin de salida. Por ejemplo, para el trmino F(1,1,0)= ABC = 1 se situara un 1 en la celda 110. Para los mintrminos no presentes en la funcin se pone un 0. Por ejemplo el trmino F(0,0,1)= AB'C = 0, ser una celda con valor 0 en la celda 001. Despus de situar los unos en el mapa, se procede con la agrupacin de 1s, la determinacin del trmino producto correspondiente a cada grupo y la suma de los trminos producto obtenidos. La determinacin del trmino producto se realiza de acuerdo los siguientes criterios: 1.Una celda representa un mintrmino, dando como resultado un trmino de cuatro literales. 2. Dos celdas agrupadas pueden representar la asociacin de dos mintrminos, dando como resultado un trmino de dos literales. 3.Cuatro celdas agrupadas pueden representar la asociacin de cuatro mintrminos, dando como resultado un trmino de un literal. 4. Ocho celdas agrupadas representan un valor de funcin igual a 1. Ejemplo Sea la funcin del ejemplo anterior, simplificarla por medio del mtodo del mapa. La tabla de verdad del ejemplo anterior es la siguiente,

Lnea A B C Salida F

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 1

1 0 1 1

1 1 0 1

1 1 1 1

Tabla 2.4.2. Tabla de verdad de la funcin F1.

El mapa de Karnaugh se configura de acuerdo a los mintrminos iguales a 1 y las celdas se agrupan tal como en la figura 2.4.1.


Figura 2.4.1. Mapa de Karnaugh de la funcin F1.

El primer grupo se forma con los mintrminos m4, m5, m6 y m7 y el segundo grupo con los mintrminos m3 y m7. Del primer grupo resulta el trmino A ya que para las cuatro columnas de la tabla existen transiciones entre las variables B y C. El segundo grupo da como resultado el trmino BC por el cambio existente en la variable A. En total, la funcin queda reducida a la expresin:


Mapa de Karnaugh de cuatro variables

F1 = A + BC

La construccin de un mapa de Karnaugh de 4 variables es similar al de 3 variables. La diferencia radica en el nmero de variables de entrada. El mapa por medio de una matriz de 16 celdas, representa los 16 mintrminos posibles (24) que se pueden obtener con cuatro variables de entrada, en un arreglo de 4 x 4. La disposicin de celdas en el mapa se muestra en la tabla 2.4.3.

Lnea A B C D Mintrmino Mintrmino mx Funcin de Salida

0 0 0 0 ABCD

m0

F(0,0,0,0)

0 0 0 1 ABCD

m1

F(0,0,0,1)

0 0 1 0 ABCD

m2

F(0,0,1,0)

0 0 1 1 ABCD

m3

F(0,0,1,1)

0 1 0 0 ABCD

m4

F(0,1,0,0)

0 1 0 1 ABCD

m5

F(0,1,0,1)

0 1 1 0 ABCD

m6

F(0,1,1,0)

0 1 1 1 ABCD

m7

F(0,1,1,1)

1 0 0 0 ABCD

m8

F(1,0,0,0)

1 0 0 1 ABCD

m9

F(1,0,0,1)

10

1 0 1 0 ABCD

m10

F(1,0,1,0)

11

1 0 1 1 ABCD

m11

F(1,0,1,1)

12

1 1 0 0 ABCD

m12

F(1,1,0,0)

13

1 1 0 1 ABCD

m13

F(1,1,0,1)

14

1 1 1 0 ABCD

m14

F(1,1,1,0)

15

1 1 1 1 ABCD

m15

F(1,1,1,1)

(a)

(b)

(c)

Tabla 2.4.3. Mapa de cuatro variables

Por ejemplo, la celda m9 corresponde al mintrmino 9, ubicado en la fila 10 y la columna 01. La unin de estos dos nmeros da el nmero 1001, cuyo equivalente es el trmino ABCD - el decimal 9. La minimizacin por medio de un mapa de 4 variables se puede efectuar con las celdas adyacentes entre s y las celdas de los bordes que se pueden concatenar para reducir la expresin. Por ejemplo, m13 y m15 son celdas adyacentes as como m0, m8, m2 y m10. El mapa se construye colocando un 1 en las celdas correspondientes a los mintrminos presentes en la funcin de salida. Por ejemplo, para el trmino F(1,1,0,0)= ABCD = 1 se situara un 1 en la celda 1100. Para los mintrminos no presentes en la funcin se pone un 0. Por ejemplo el trmino F(1,1,1,1)= ABCD = 0, ser una celda con valor 0 en la celda 1111. Igual que en el mapa de 3 variables, se procede con la agrupacin de 1s, la determinacin del trmino producto correspondiente a cada grupo y la suma de los trminos producto obtenidos. Las reglas para reducir trminos en un mapa de Karnaugh de 4 variables son las siguientes: 1.Una celda representa un mintrmino, dando como resultado un trmino de cuatro literales. 2. Dos celdas agrupadas pueden representar la asociacin de dos mintrminos, dando como resultado un trmino de tres literales. 3.Cuatro celdas agrupadas pueden representar la asociacin de cuatro mintrminos, dando como resultado un trmino de dos literales. 4.Ocho celdas agrupadas pueden representar la asociacin de ocho mintrminos, dando como resultado un trmino de un literal. 5. Diecisis celdas agrupadas pueden representan un valor de funcin igual a 1. Ejemplo Simplquese la funcin de Boole F2= (m1, m3, m8, m10, m12, m14)


Figura 2.4.2. Mapa de Karnaugh de la funcin F 2.

El primer grupo se forma con los mintrminos m1 y m3 y el segundo grupo se forma con los mintrminos m8, m10 y m12, m14. Del primer grupo resulta el trmino ABD ya que en la columna 1 no se presentan cambios para las variables A y B y se presenta transicin en la variable C en las columnas 2 y 3. El segundo grupo da como resultado el trmino AD. La razn radica en la simplificacin de la variable B en la tercera y cuarta fila y en la variable C en la primera y cuarta columna. Sumando los mintrminos obtenidos se tiene la ecuacin simplificada:

F2 = ABD + AD

Mapas de Karnaugh empleando Producto de Sumas (PDS) La simplificacin de expresiones lgicas mediante el mapa de Karnaugh tambin es posible mediante el mtodo de producto de sumas. En este mtodo, cada celda representa un maxtrmino. La construccin del mapa es similar a la suma de productos. La diferencia radica en que cada celda representa un maxtrmino. Por ejemplo, la celda m2 corresponde al maxtrmino 2, ubicado en la fila 0 y la columna 10. La unin de estos dos nmeros da el nmero 010, cuyo equivalente es el trmino A+B+C. La figura 2.4.3. muestra el mapa de Karnaugh para 3 variables.

Figura 2.4.3. Mapa de tres variables.

La representacin de la funcin lgica se hace simplemente copiando los ceros de la tabla de verdad en las celdas del mapa. Este mtodo es ms apropiado cuando en la columna de resultados de la tabla de verdad predominan los ceros. Ejemplo Utilizar el mapa de Karnaugh para minimizar el producto de sumas, F3 = (A+B+C)(A+B+C)(A+B+C)(A+B+C) Los maxtrminos se trasladan a cada una de las celdas del mapa de Karnaugh y las celdas se agrupan tal como en la figura 2.4.4.


Figura 2.4.4. Mapa de Karnaugh de la funcin F3

El trmino suma para cada grupo se muestra en la figura y la suma de productos resultante es:


Ejemplo

F3 = C

Utilizar el mapa de Karnaugh para minimizar el producto de sumas,

F4 = (A+B+C+D)(A+B+C)(A+B+C+D)(A+B+C+D)(A+B+C+D)(A+B+C+D)(A+B+C+D)(A+B'+C +D) El segundo trmino tiene que ampliarse a (A+B+C+D)(A+B+C+D). La funcin completa se pasa al mapa de karnaugh mostrado en la figura 2.4.5.


Figura 2.4.5. Mapa de Karnaugh de la funcin F4

El trmino suma para cada grupo se muestra en la figura 2.4.5. y el producto de sumas resultante es:


Condiciones de No Importa

F4 = (A+C+D)(B'+D')(A'+D')

Hasta el momento se ha asumido que la funcin es igual a 0 en los casos donde la funcin no es igual a 1. En algunas aplicaciones esta suposicin no es siempre verdadera ya que existen combinaciones de entrada que no presentan. En un mapa de Karnaugh estas combinaciones de entrada sirven de herramienta para simplificar la funcin y su representacin se hace por medio de una X en la celda del mapa. Segn la agrupacin que convenga se asume un valor de 1 0 para la X con el fin de obtener la expresin ms simple. Ejemplo Simplificar la funcin de Boole F5 = (m0, m4, m7, m9) con condiciones de importa, NI = (m1, m5, m11, m14). Los mintrminos se marcan con un 1, las condiciones de no importa con una X y las celdas restantes con 0. El mapa de Karnaugh de la funcin F5 se muestra en la figura 2.4.6.


En suma de productos obtenemos,
Figura 2.4.6. Mapa de Karnaugh de la funcin F5

F5 = ACD + A'BC + ABCD + AB'D

ALGORITMO DE QUINE MCCLUSKEY


El empleo del mapa de Karnaugh es conveniente cuando la funcin a minimizar no contiene ms de cinco o seis variables. En estos casos, empleamos un procedimiento sistemtico, llamado el algoritmo de QuineMcCluskey, el cual produce una expresin normalizada y simplificada. El algoritmo debe obedecer a un conjunto de pasos que se vern a travs de un ejemplo. Ejemplo Simplificar la funcin de Boole usando el algoritmo de Quine-McCluskey. F1 = (1, 2, 3, 6, 7, 8, 9, 10, 15) F1 = ABCD + ABCD+ ABCD + ABCD+ ABCD + ABCD + ABCD + ABCD+ ABCD. 1. Enumerar en una tabla todos los mintrminos en forma binaria, organizados segn el nmero de unos que contenga. La aplicacin de este paso se muestra en la tabla 2.5.1.

Mintrminos A B C D

Grupo

0 0 0 1

0 0 1 0 Grupo 1

1 0 0 0

0 0 1 1

0 1 1 0 Grupo 2

1 0 0 1

10

1 0 1 0

0 1 1 1 Grupo 3

15

1 1 1 1 Grupo 4

Tabla 2.5.1. Mintrminos agrupados segn la cantidad de unos

2.

Entre los grupos adyacentes buscar los mintrminos que slo difieren en un bit en la misma posicin, para hallar los primeros implicantes primos. La metodologa consiste en comparar el primer mintrmino con el resto de los trminos del segundo grupo. As, los trminos del segundo grupo se comparan con los mintrminos del grupo siguiente.

De la forma anterior, se procede con los dems mintrminos de los dems grupos. Los mintrminos utilizados se les pone una marca ( ) con el fin de ir diferenciando los trminos utilizados y la variable apareada en el proceso se reemplaza con un guin para denotar la eliminacin de la variable. Los trminos no marcados en la tabla son los primeros implicantes primos (PIX). Los mintrminos utilizados se les pone una marca ( ) con el fin de ir diferenciando los trminos utilizados y la variable apareada en el proceso anterior se reemplaza con un guin para denotar la eliminacin de la variable.

Mintrmino A B C D Mintrmino A B C D PIx Mintrmino A B C D PIx

0 0 0 1 13

0 0 -

1 PI2

26 - 3-7

0 - 1 -

PI1

0 0 1 0 19

0 0 1 PI3

2-3 - 6-7

0 - 1 -

1 0 0 0 23

0 0 1 -

0 0 1 1 26

0 -

1 0

0 1 1 0 210

0 1 0 PI4

1 0 0 1 89

1 0 0 -

PI5

10

1 0 1 0 8-10

1 0 -

0 PI6

0 1 1 1 37

0 -

1 1

15

1 1 1 1 67

0 1 1 -

7-15

1 1 1 PI7

Tabla 2.5.2. Implicantes primos de la funcin F1

3.

Construir una tabla que enumere los implicantes primos y los mintrminos contenidos por cada implicante primo. La letra X en la tabla 2.5.3 indica el mintrmino contenido en cada implicado por fila. Por ejemplo, en la tabla se observa en el primer rengln los mintrminos 2, 3, 6 y 7 para el primer implicante primo. El resto de la tabla se construye de forma similar.

Implicante Primo 1 2 3 6 7 8 9 10 15

* PI1

X X X X

PI2

PI3

PI4

PI5

X X

PI6

* PI7

Tabla 2.5.3. Seleccin de implicantes primos esenciales

En la tabla se seleccionan las columnas de los mintrminos que contengan solamente una cruz. En este ejemplo, hay dos mintrminos cuyas columnas tienen una sola cruz: 6 y 15. Es decir, la seleccin del primer implicado PI1 (AC) garantiza que el trmino mnimo 6 est incluido en la funcin. De la misma forma, el trmino mnimo 7 est cubierto por el primer implicado PI7 (A'BCD). Los primeros implicados que cubren los mintrminos con una sola cruz, se llaman primeros implicados esenciales (en la tabla se encuentran marcados con un asterisco) y son indispensables en la construccin de la funcin. 4. Seleccionar en cada columna los mintrminos que estn cubiertos por los primeros implicados esenciales. Por ejemplo, el primer implicado esencial * PI1 (AC) cubre los mintrminos 2, 3, 6 y 7. De la misma forma, el primer implicado esencial *PI7 (A'BCD) cubre los mintrminos 7 y 15. Hasta el momento la seleccin de primeros implicados cubre los mintrminos 2, 3, 6, 7 y 15 excepto 1, 8, 9 y 10. Estos trminos mnimos deben ser seleccionados por medio de otros primeros implicados esenciales. En la tabla 2.5., la seleccin de los primeros implicados PI3 y PI6 garantiza el cubrimiento de los trminos mnimos 1, 8, 9 y 10. En la tabla 2.5.4. se muestra el proceso de seleccin.

Implicante Primo 1 8 9 10

PI2

*PI3

PI4

PI5

X X

*PI6

Tabla 2.5.4. Seleccin de primeros implicados esenciales

La funcin simplificada se obtiene de la suma de los primeros implicados hallados: F= PI1 + PI3 +PI6 + PI7 F= (0-1-) + (-001) + (10-0) + (-111) F = A'C + BCD + ABD + BCD

ALGORITMO DE QUINE MCCLUSKEY


El empleo del mapa de Karnaugh es conveniente cuando la funcin a minimizar no contiene ms de cinco o seis variables. En estos casos, empleamos un procedimiento sistemtico, llamado el algoritmo de QuineMcCluskey, el cual produce una expresin normalizada y simplificada. El algoritmo debe obedecer a un conjunto de pasos que se vern a travs de un ejemplo. Ejemplo Simplificar la funcin de Boole usando el algoritmo de Quine-McCluskey. F1 = (1, 2, 3, 6, 7, 8, 9, 10, 15) F1 = ABCD + ABCD+ ABCD + ABCD+ ABCD + ABCD + ABCD + ABCD+ ABCD. 1. Enumerar en una tabla todos los mintrminos en forma binaria, organizados segn el nmero de unos que contenga. La aplicacin de este paso se muestra en la tabla 2.5.1.

Tabla 2.5.1. Mintrminos agrupados segn la cantidad de unos

2.

Entre los grupos adyacentes buscar los mintrminos que slo difieren en un bit en la misma posicin, para hallar los primeros implicantes primos. La metodologa consiste en comparar el primer mintrmino con el resto de los trminos del segundo grupo. As, los trminos del segundo grupo se comparan con los mintrminos del grupo siguiente. De la forma anterior, se procede con los dems mintrminos de los

dems grupos. Los mintrminos utilizados se les pone una marca ( ) con el fin de ir diferenciando los trminos utilizados y la variable apareada en el proceso se reemplaza con un guin para denotar la eliminacin de la variable. Los trminos no marcados en la tabla son los primeros implicantes primos (PIX). Los mintrminos utilizados se les pone una marca ( ) con el fin de ir diferenciando los trminos utilizados y la variable apareada en el proceso anterior se reemplaza con un guin para denotar la eliminacin de la variable.

Mintrmino A B C D Mintrmino A B C D PIx Mintrmino A B C D PIx 1 2 8 3 6 9 10 7 15 0 0 0 1 13 0 0 1 0 19 1 0 0 0 23 0 0 1 1 26 0 1 1 0 210 1 0 0 1 89 1 0 1 0 8-10 0 1 1 1 37 1 1 1 1 67 7-15 0 0 - 1 PI2 26 - 3-7 - 0 0 1 PI3 2-3 - 6-7 0 0 1 0 - 1 0 - 0 1 0 PI4 1 0 0 - PI5 1 0 - 0 PI6 0 - 1 1 0 1 1 - 1 1 1 PI7
Tabla 2.5.2. Implicantes primos de la funcin F1

0 - 1 - PI1 0 - 1 -

3.

Construir una tabla que enumere los implicantes primos y los mintrminos contenidos por cada implicante primo. La letra X en la tabla 2.5.3 indica el mintrmino contenido en cada implicado por fila. Por ejemplo, en la tabla se observa en el primer rengln los mintrminos 2, 3, 6 y 7 para el primer implicante primo. El resto de la tabla se construye de forma similar.

Implicante 1 2 3 6 7 8 9 10 15 Primo
* PI1 X X X X

PI2 PI3 PI4 PI5 PI6


* PI7

X X X

X X X X X X
X

X
X
Tabla 2.5.3. Seleccin de implicantes primos esenciales

En la tabla se seleccionan las columnas de los mintrminos que contengan solamente una cruz. En este ejemplo, hay dos mintrminos cuyas columnas tienen una sola cruz: 6 y 15. Es decir, la seleccin del primer implicado PI1 (AC) garantiza que el trmino mnimo 6 est incluido en la funcin. De la misma forma, el trmino mnimo 7 est cubierto por el primer implicado PI7 (A'BCD). Los primeros implicados que cubren los mintrminos con una sola cruz, se llaman primeros implicados esenciales (en la tabla se encuentran

marcados con un asterisco) y son indispensables en la construccin de la funcin. 4. Seleccionar en cada columna los mintrminos que estn cubiertos por los primeros implicados esenciales. Por ejemplo, el primer implicado esencial * PI1 (AC) cubre los mintrminos 2, 3, 6 y 7. De la misma forma, el primer implicado esencial *PI7 (A'BCD) cubre los mintrminos 7 y 15. Hasta el momento la seleccin de primeros implicados cubre los mintrminos 2, 3, 6, 7 y 15 excepto 1, 8, 9 y 10. Estos trminos mnimos deben ser seleccionados por medio de otros primeros implicados esenciales. En la tabla 2.5., la seleccin de los primeros implicados PI3 y PI6 garantiza el cubrimiento de los trminos mnimos 1, 8, 9 y 10. En la tabla 2.5.4. se muestra el proceso de seleccin.

Implicante Primo PI2


*PI3

10

X
X X

PI4 PI5
*PI6

X X X
X X

Tabla 2.5.4. Seleccin de primeros implicados esenciales

La funcin simplificada se obtiene de la suma de los primeros implicados hallados: F= PI1 + PI3 +PI6 + PI7 F= (0-1-) + (-001) + (10-0) + (-111) F = A'C + BCD + ABD + BCD

DECODIFICADORES BINARIOS DE 2 A 4, DE 3 A 8 Y DE 4 A 16 LNEAS


Un decodificador es un circuito lgico cuya funcin es indicar la presencia de cierto cdigo en sus lneas de entrada con un nivel predeterminado a la salida. El procedimiento consiste en interpretar el cdigo de n lneas de entrada con el fin de activar un mximo de 2n lneas a la salida. Si el cdigo de entrada tiene combinaciones no usadas o de no importa, la salida tendr menos de 2n salidas. La caracterstica predominante en los decodificadores es un mayor nmero de salidas con respecto al nmero de entradas. El diagrama de bloques se muestra en la figura 3.1.1.

Figura 3.1.1. Diagrama de bloques de un Decodificador n x 2 n.

Decodificador de 2 a 4 lneas (2 bits) El Decodificador de 2 a 4 lneas tiene 2 lneas de entrada y 4 lneas de salida. En la tabla 3.1.1., las entradas del decodificador son I0 e I1 y representan un entero de 0 a 3 en cdigo decimal. G es la entrada de habilitacin y determina la activacin del circuito de acuerdo a su valor lgico (" 1" circuito activo, "0" circuito no activo). Segn

el valor binario presente en las 2 entradas se activa una de las 4 salidas al valor lgico 1. Por ejemplo, con el valor 1 en I0 y el valor 0 en I1 se activar la salida Y1.

G I1 I0 Y3 Y2 Y1 Y0

0 X

1 0

1 0

1 1

1 1

Tabla 3.1.1. Tabla de verdad del Decodificador de 2 bits

En la figura 3.1.2. se muestra el circuito lgico del decodificador 2x4.

Figura 3.1.2. Diagrama lgico del decodificador 2 x 4 con entrada de habilitacin

Decodificador de 3 a 8 lneas (3 bits) El decodificador de 3 a 8 lneas activa una sola de las 8 lneas de salida de acuerdo con el cdigo binario presente en las 3 lneas de entrada. Las salidas son mutuamente exclusivas ya que solamente una de las salidas es igual a 1 en cualquier momento. Las entradas del decodificador son x, y, z y las salidas van de y0 a y7 (activas bajas). La tabla de verdad del decodificador se muestra en la tabla 3.1.2. > Entradas Salidas

X Y

Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7

0 0

0 0

0 1

0 1

1 0

1 0

1 1

1 1

Tabla 3.1.2. Tabla de verdad para el Decodificador de 3 a 8 lneas.

Como la tabla anterior tiene 8 salidas, por lo tanto sera necesario dibujar ocho mapas de karnaugh para simplificar cada una de las funciones de salida. Por tanto procedimiento, se puede dibujar un solo mapa y reducir la funcin para cada trmino por separado. La reduccin de cada trmino da como resultado la equivalencia entre cada mintrmino de entrada y la salida correspondiente. Por ejemplo, la entrada 110 activar la salida Y6. En el circuito el mintrmino corresponder a una compuerta AND de tres entradas con las variables ABC como entradas. De manera similar se construye el circuito para el resto de entradas. El circuito lgico del decodificador de 3 a 8 lneas se representa en la figura 3.1.3.

Figura 3.1.3. Diagrama lgico de un Decodificador 3 x 8.

En el ingreso de datos en las variables X, Y y Z de la interactividad 3.1.1. se puede observar el funcionamiento del decodificador 3 x 8.

Intercatividad 3.1.1. Decodificador 3 x 8 lneas

Decodificador de 4 a 16 lneas (4 bits) El decodificador de 4 a 16 lneas activa una sola de las 16 lneas de salida de acuerdo con el cdigo binario presente en las 4 lneas de entrada. Las salidas son mutuamente exclusivas ya que solamente una de las salidas es igual a 1 en cualquier momento. Las entradas son w, x, y, z y las salidas son y0 a y15 (activas bajas). La tabla 3.1.3 muestra la tabla de verdad para el decodificador.

Entradas

Salidas

w x y z y0 y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12 y13 Y14 y15

0 0 0 0 1

0 0 0 1 0

0 0 1 0 0

0 0 1 1 0

0 1 0 0 0

0 1 0 1 0

0 1 1 0 0

0 1 1 1 0

1 0 0 0 0

1 0 0 1 0

1 0 1 0 0

1 0 1 1 0

1 1 0 0 0

1 1 0 1 0

1 1 1 0 0

1 1 1 1 0

Tabla 3.1.3. Tabla de verdad para el decodificador de 4 a 16 lneas

Similar al decodificador de 3 a 8, la salida correspondiente a cada cdigo es el mintrmino correspondiente a cada entrada. La simplificacin de la funcin necesitara de 16 mapas para la reduccin. En vez de construir 16 mapas, se construye solo uno, en el cul se representa cada uno de los valores para cada combinacin de entrada (Ver figura 3.1.4). Los mintrminos no se pueden asociar por la consideracin anterior, pero el ejemplo sirve para mostrar la construccin del circuito lgico.

Figura 3.1.4. Mapa de karnaugh de la funcin del decodificador de 4 a 16 lneas

En la tabla el trmino Y7 se obtiene del mintrmino m7 (WZYX). En la entrada, los valores 0111 activarn la salida Y7. El resto del circuito lgico se construye de manera similar. El diagrama de bloques del circuito lgico se representa en la figura 3.1.5.

Figura 3.1.5. Diagrama de bloques del decodificador 4 a 16 lneas

Ejemplos de Aplicacin en los Computadores En la comunicacin entre los diferentes dispositivos que conforman un computador, se emplean puertos de E/S y memorias.Entre las aplicaciones ms comunes de los decodificadores se encuentra la habilitacin de puertos de E/S en los computadores. Cada uno de los dispositivos dentro de un computador posee una direccin que es codificada mediante un cdigo binario (direccin) y cuando es necesario comunicarse con un dispositivo, la CPU del computador enva la direccin del puerto o posicin de memoria al que se encuentra conectado el dispositivo. El cdigo binario de la direccin es decodificado, activando la salida que habilita el dispositivo correspondiente. Los decodificadores tambin son utilizados internamente en los chips de memoria para direccionar las posiciones de memoria de las palabras binarias almacenadas. Como ejemplo, un computador que maneja direcciones de 16 bits, tiene la capacidad de direccionar 216 = 65536 posiciones de memoria, o lo que equivale a 64 K. En los capitulos 10 y 11, correspondientes a Memorias y Procesadores Digitales respectivamente se tratar este tema con mayor profundidad.

DECODIFICADORES BCD A 7 SEGMENTOS


El decodificador de BCD a siete segmentos es un circuito combinacional que permite un cdigo BCD en sus entradas y en sus salidas activa un display de 7 segmentos para indicar un dgito decimal. El display de siete segmentos El display est formado por un conjunto de 7 leds conectados en un punto comn en su salida. Cuando la salida es comn en los nodos, el display es llamado de nodo comn y por el contrario, s la salida es comn en los ctodos, llamamos al display de ctodo comn. En la figura 3.1.1.,se muestran ambos tipos de dispositivos. En el display de ctodo comn, una seal alta encender el segmento excitado por la seal. La alimentacin de cierta combinacin de leds, dar una imagen visual de un dgito de 0 a 9.

Figura 3.3.1. Display de nodo comn y ctodo comn

Interactividad 3.3.1. Display de 7 segmentos

Decodificador de BCD a Siete Segmentos El decodificador requiere de una entrada en cdigo decimal binario BCD y siete salidas conectadas a cada segmento del display. La figura 3.3.2. representa en un diagrama de bloques el decodificador de BCD a 7 segmentos con un display de ctodo comn.

Figura 3.3.2. Diagrama de bloques de un decodificador BCD a siete segmentos

Suponiendo que el visualizador es un display de ctodo comn, se obtiene una tabla cuyas entradas en cdigo BCD corresponden a A, B, C y D y unas salidas correspondientes a los leds que se encenderan en cada caso para indicar el dgito decimal. La tabla 3.3.1. muestra el caso de ejemplo.

Valor decimal Entradas

Salidas

A B C D a b c

d e f

0 0 0 0 1 1 1 1 1 1 0

0 0 0 1 0 1 1 0 0 0 0

0 0 1 0 1 1 0 1 1 0 1

0 0 1 1 1 1 1 1 0 0 1

0 1 0 0 0 1 1 0 0 1 1

0 1 0 1 1 0 1 1 0 1 1

0 1 1 0 1 0 1 1 1 1 1

0 1 1 1 1 1 1 0 0 0 0

1 0 0 0 1 1 1 1 1 1 1

1 0 0 1 1 1 1 0 0 1 1

10

1 0 1 0 X X X X X X X

...

.. .. .. .. X X X X X X X

15

1 1 1 1 X X X X X X X

Tabla 3.3.1. Tabla de verdad del decodificador BCD a siete segmentos.

Los valores binarios 1010 a 1111 en BCD nunca se presentan, entonces las salidas se tratan como condiciones de no importa. La simplificacin de la informacin contenida en la tabla 3.3.1. requiere de siete tablas de verdad, que se pueden separar para cada segmento. Por consiguiente, un 1 en la columna indica la activacin del segmento y varios de estos segmentos activados indican visualmente el nmero decimal requerido. Segn la informacin de la tabla de verdad, se puede obtener la expresin para cada segmento en suma de productos o producto de sumas segn la cantidad de unos y ceros presentes.

Salida a En la columna a existen 3 ceros y 7 unos, entonces es ms fcil obtener la funcin PDS: a = (A+B+C+D)(A+B+C+D)= A + D(B+C) + B(D+C) = A + AB + AC + AD + BA + BC + BD + CA + CB+ C + CD + DA + DB + DC a = A + (AB+BA)+(AC+CA)+ (AD+DA)+( BC+CB) + BD + C + (CD+DC) + DB = A + A +AC + A+ C + BD + C + C + DB = A + A.C + C + BD + DB a = A + C + (B D)

Figura 3.3.3. Circuito para la salida a del decodificador BCD a siete segmentos

Salida c En la columna de la salida c se tiene un solo 0, entonces se emplea el PDS: c = (A + B + C + D)

Figura 3.3.4. Circuito para la salida c del decodificador BCD a siete segmentos

Salida e La columna correspondiente a esta salida tiene 4 unos y 5 ceros. Es mejor utilizar la representacin SDP: e = (ABCD) + (ABCD) + (ABCD) + (ABCD) ;factorizando el primer trmino con el cuarto y el segundo con el tercero: e = BCD + ACD = D(BC+ AC)

Figura 3.3.5. Circuito para la salida e del decodificador BCD a siete segmentos

El resto de salidas se obtiene por las mismas deducciones anteriores.

REGISTROS DE TRES ESTADOS


El principio bsico de un registro de estados es la presencia de tres estados para la salida del dispositivo (0, 1 y alta impedancia) segn el valor de una entrada de control predeterminada. El dispositivo ms bsico es el registro ("buffer") de tres estados. Este registro posee una entrada de habilitacin (" entrada lateral al registro") para determinar su comportamiento como amplificador, inversor ordinario o dispositivo de alta impedancia. La figura 3.4.1. muestra el smbolo lgico del registro. En los casos 1 y 3 se habilita con estado activo alto y en los casos 2 y 4 se habilita con estado activo bajo. En estado de activacin la salida se comporta como amplificador o inversor. Cuando la entrada de habililtacin se niega, la salida va a un estado de alta impedancia ( Z).

Figura 3.4.1. Registros de tres estados

Estos dispositivos permiten que varias fuentes puedan compartir una misma lnea de comunicacin, siempre y cuando una sola fuente utilice la lnea a la vez. Un circuito de este tipo se muestra en la figura 3.4.2. El circuito se configura con un decodificador para seleccionar una de ocho lneas de salida. Por ejemplo, la seleccin 001 habilita la salida Y1 en estado bajo, activando el registro 2 y coloca la informacin de entrada del registro en la lnea de comunicacin.

FIgura 3.4.2. Circuito lgico para una lnea de comunicacin

Los registros de tres estados pasan ms rapidamente al estado Z. Por el contrario, el tiempo de transicin para salir del estado Z es mucho ms demorado.El tiempo muerto en la lnea de comunicacin debe ser lo bastante largo para tomar en cuenta las diferencias del peor caso entre los tiempos de activacin y desactivacin de los dispositivos al igual que las asimetras en las seales de control de los tres estados.

CODIFICADORES
Un codificador tiene 2n o menos lneas de entrada y n lneas de salida. Por ejemplo, en una de las entradas se puede ingresar un dgito decimal u octal y generarse un cdigo de salida en BCD o binario. La funcin de los codificadores es inversa a la de los decodificadores. Los codificadores se utilizan tambin para codificar smbolos diferentes y caracteres alfabticos. Codificador Binario El codificador binario tiene 2n entradas y n salidas. Slo, una sola de las entradas puede estar activada. La salida suministra el valor binario correspondiente a la entrada activada. Este tipo de decodificador opera en forma contraria a los decodificadores de 2 a 4, 3 a 8, estudiados antes. Codificador de 8 a 3. El codificador 8 a 3 tiene 8 entradas (I0 a I7), una para cada uno de los ocho dgitos y 3 salidas que conforman el nmero binario equivalente (A0 a A2). La figura 3.5.1. muestra en el diagrama de bloques del decodificador.

Figura 3.5.1. Codificador de 8 a 3

La tabla de verdad se muestra en la tabla 3.5.1.

Entradas

Salidas

I0 I1 I2 I3 I4 I5 I6 I7 A2 A1 A0

1 0

0 1

0 0

0 0

0 0

0 0

0 0

0 0

Tabla 3.5.1. Tabla de verdad de codificador de 8 a 3.

En la tabla de verdad, A0 tiene un 1 lgico para la columnas de entrada con subndice impar. La salida A1 es 1 en la columnas I2, I3, I6 e I7 y la salida A2 es 1 en la columnas I4, I5, I6 e I7. Las expresiones lgicas son las siguientes: A 0 = I1 + I3 + I5 + I7 A 1 = I2 + I3 + I6 + I7

A 2 = I4 + I5 + I6 + I7 Por ejemplo, s est activada la entrada 3, la salida es 011. El circuito se construye con compuertas OR y se muestra en la figura 3.5.2.

Figura 3.5.2. Circuito lgico del decodificador 8 a 3.

Codificador sin prioridad Los circuitos codificadores pueden ser diseados con prioridad o sin ella. En los codificadores sin prioridad con entradas activas altas, la activacin de ms de una entrada simultneamente con valor 1, genera un cdigo errneo en la salida, de acuerdo al nmero de entradas excitadas con el respectivo valor. La solucin de este conveniente se logra empleando codificadores de prioridad. Codificador de prioridad Los codificadores de prioridad seleccionan la entrada de mayor prioridad cuando se presentan varias entradas activas simultneamente. En la tabla 3.5.2. se muestra la lgica de entrada y de salida de un decodificador.

Entradas

Salidas

I0 I1 I2 I3 I4 I5 I6 I7 A2 A1 A0

X X

X X

X X

X X

X X

X X

X 0

0 1

Tabla 3.5.2. Tabla de verdad del Codificador de Prioridad.

El decodificador se encuentra comercialmente tal como se encuentra dispuesto en la figura 3.5.3. La diferencia radica en unas entradas de habilitacin adicionales que activan las entradas las salidas a unos valores predefinidos.

Figura 3.5.3. Diagrama de Bloques del codificador de Prioridad.

Codificador Decimal - BCD El codificador decimal a BCD posee diez entradas, correspondientes cada una a un dgito decimal y cuatro salidas en cdigo BCD (8421). El diagrama de bloques de la figura 3.5.4 muestra la disposicin de entradas y salidas del decodificador.

Figura 3.5.4. Diagrama de Bloques del codificador Decimal a BCD.

En la tabla 3.5.3. se encuentra el cdigo BCD correspondiente a cada dgito decimal.

BCD Dgito Decimal A3 A2 A1 A0

Tabla 3.5.3. Cdigo Decimal BCD.

El bit A3 es el ms significativo del cdigo BCD y es 1 para los decimales 8 9. La expresin para este bit en funcin de los dgitos decimales se escribe: A3 = 8+9 Por tanto las funciones siguientes corresponden a: A2 = 4+5+6+7 A1 = 2+3+6+7 A0 = 1+3+5+7+9. Ahora configurando el anlisis en un circuito combinacional, se obtiene el siguiente circuito sin necesidad de una entrada para el bit 0.

Figura 3.5.5. Circuito lgico del codificador BCD a Decimal

Aplicaciones Los codificadores encuentran mayor aplicacin en los dispositivos de entrada y salida. La seal de entrada es introducida de una forma comprensible para el usuario y la "traduccin" la realiza el codificador a un cdigo comprensible para el equipo. En un teclado, cuando se pulsa la tecla correspondiente a un dgito, esta entrada se

codifica en cdigo BCD. La siguiente animacin muestra la aplicacin anterior por medio de una interactividad con los pulsadores.

MULTIPLEXORES Y DEMULTIPLEXORES
Multiplexar es transmitir datos de una de n fuentes a la salida del circuito combinacional. El demultiplexor desempea la funcin contraria. Multiplexores (MUX) Un multiplexor es un circuito combinacional que selecciona una de n lneas de entrada y transmite su informacin binaria a la salida. La seleccin de la entrada es controlada por un conjunto de lneas de seleccin. La relacin de lneas de entrada y lneas de seleccin est dada por la expresin 2n, donde n corresponde al nmero de lneas de seleccin y 2n al nmero de lneas de entrada. Multiplexor de 2 entradas El multiplexor se caracteriza por tener dos lneas de entrada, una lnea de seleccin y una de salida. El smbolo lgico de un multiplexor de dos entradas se muestra en la Interactividad 03.06.01.

Interactividad 03.06.01. Multiplexor de 2 entradas

En el multiplexor, las entradas son I0 e I1 y la seleccin viene dada por el valor de la entrada S. El valor de la salida Y depende de los valores lgicos ingresados en los cuadros de texto para las variables I0, I1 y S. Por ejemplo, s I0=0, I1=1 y S=0, entonces Y=I0=0. La tabla de verdad se muestra en la tabla 3.6.1.

S Y

0 I0

1 I1

Tabla 3.6.1. Tabla de verdad de un multiplexor de dos entradas

El circuito lgico se muestra en la figura 3.6.1.

Figura 3.6.1. Multiplexor 2 a 1

Multiplexor de 4 entradas El multiplexor de 4 entradas es un multiplexor de 4 lneas a 1. La figura 3.6.2. muestra el diagrama de bloques del multiplexor. Las entradas son I0, I1, I2 e I3 y la seleccin viene dada por las entradas S0 y S1. El valor de la salida Y depende de los valores lgicos presentes en las entradas de datos y la seleccin.

Figura 3.6.2. Multiplexor 4 a 1

La tabla de verdad se muestra en la tabla 3.6.2. Por ejemplo, s I0=1, I1=1, I2=0, I3=1 y S1=1, S0=0 entonces Y=I2=0.

Entrada de Seleccin de datos Entrada Seleccionada

S1

S0

I0

I1

I2

I3

Tabla 3.6.2. Tabla de verdad de un multiplexor de cuatro entradas.

El problema consiste en definir un conjunto de expresiones para construir el circuito lgico. La ecuacin en cada fila, se obtiene a partir del dato de entrada y la entrada de seleccin de datos:

La salida es Y= I0, s S1=0 y S0=0. Entonces Y = I0S1S0. La salida es Y= I1, s S1=0 y S0=1. Entonces Y = I1S1S0. La salida es Y= I2, s S1=1 y S0=0. Entonces Y = I2S1S0. La salida es Y= I3, s S1=1 y S0=1. Entonces Y = I3S1S0. Sumando lgicamente las ecuaciones anteriores: Y = I0S1S0 + I1S1S0 + I2S1S0 + I3S1S0 En consecuencia, el circuito asociado se implementa en la figura 3.6.3.

Figura 3.6.3. Circuito Lgico de un multiplexor 4 a 1

Demultiplexores (Distribuidores de datos) Un demultiplexor es un circuito combinacional que recibe informacin en una sola lnea y la transmite a una de 2n lneas posibles de salida. La seleccin de una lnea de salida especifica se controla por medio de los valores de los bits de n lneas de seleccin. La operacin es contraria al multiplexor. La figura 3.6.4. muestra el diagrama de bloques del demultiplexor.

Figura 3.6.4. Diagrama de Bloques del Demultiplexor.

La figura 3.6.5. muestra un demultiplexor de 1 a 4 lneas. Las lneas de seleccin de datos activan una compuerta cada vez y los datos de la entrada pueden pasar por la compuerta hasta la salida de datos determinada. La entrada de datos se encuentra en comn a todas las AND.

Figura 3.6.5. Circuito Lgico de un Demultiplexor de 1 a 4 lneas.

El decodificador de la figura 3.6.6. funciona como un demultiplexor si la lnea E se toma como lnea de entrada de datos y las lneas I0 e I1 como lneas de seleccin. Observe que la variable de entrada E tiene un camino a todas las salidas, pero la informacin de entrada se dirige solamente a una de las lneas de salida de acuerdo al valor binario de las dos lneas de seleccin I0 e I1. Por ejemplo si la seleccin de las lneas I0I1 = 10 la salida Y2 tendr el mismo valor que la entrada E, mientras que las otras salidas se mantienen en nivel bajo.

Figura 3.6.6. Circuito Lgico de un Decodificador/Demultiplexor.

En consecuencia, como las operaciones decodificador y demultiplexor se obtienen del mismo circuito, un decodificador con una entrada de activacin se denomina decodificador/demultiplexor; siendo la entrada de activacin la que hace al circuito un demultiplexor. La tabla de verdad se muestra en la tabla 3.6.3.

E I0 I1 Y0 Y1 Y2 Y3

1 X

0 0

0 0

0 1

0 1

Tabla 3.6.3. Tabla de verdad de un decodificador/demultiplexor

GENERADORES DE PARIDAD
La transmisin binaria por diversos medios de comunicacin est sujeta a errores por fallas en los sistemas digitales o la presencia de ruido elctrico. Cualquier condicin interna o externa al sistema puede alterar el valor de los ceros a unos o viceversa. Cuando se altera un solo bit, decimos que el bit distorsionado contiene un error individual. De la misma forma, dos o ms bits distorsionados, involucran un error mltiple, pero estos errores tienen menor probabilidad de ocurrencia a los errores individuales. Un cdigo que permite detectar errores es el cdigo de paridad. El principio es aadir un bit de paridad para hacer que el nmero total de bits (incluida la palabra) sea par o impar. Un bit de paridad par, incluido con el mensaje (palabra), convierte el nmero total de unos en par (paridad par) y el bit de paridad impar hace el total de unos impar (paridad impar). El generador de paridad es un sistema combinacional que permite generar el bit de paridad de una palabra de cdigo. La informacin se transmite y el comprobador de paridad recepciona la informacin con el fin de validarla. Ejemplo

Construir un generador de paridad par y el respectivo comprobador de paridad para tres bits . En la tabla 3.7.1. los bits de entrada A, B, C constituyen el mensaje y el bit de paridad P la salida. En la tabla, se escoge P de tal forma que la suma todos los unos es par.

Mensaje de tres Bits Bit de paridad Par generado

Tabla 3.7.1. Tabla de verdad de un generador de paridad.

La figura 3.7.1. muestra la funcin en un mapa de karnaugh de tres variables.

Figura 3.7.1. Mapa de Karnaugh del generador de paridad

La paridad esta directamente relacionada con la operacin OR-Exclusiva. En una expresin OR-Exclusiva de n variables, 2n/2 trminos mnimos tienen un nmero par de unos. La otra mitad tiene un nmero impar de unos. Observando el mapa se puede deducir que la mitad de los trminos mnimos tiene un nmero par de unos. La funcin puede expresarse en trminos de una operacin ORExclusiva con las tres variables de la siguiente forma: P = (m1, m2, m4, m7)

Asumiendo P = (m1, m2, m4, m7) = (A )

= ( + )

= ( + ) + ( + ) = + + [( ) ( ) ] = + + [( +)(+ )] = + + ( + ++ ) = + + +
Llegamos a la igualdad, P = (m1, m2, m4, m7) = ABC + ABC+ ABC + ABC Entonces, P = ABC El circuito realiza la funcin OR-Exclusiva de un numero n de variables, constituyendo a la salida un uno lgico si el nmero de unos aplicados a sus entradas es impar y un cero si el nmero es par. El diagrama lgico del generador de paridad se muestra en la figura 3.7.2. El circuito est conformado por dos compuertas OR - Exclusiva de dos entradas.

Figura 3.7.2.Circuito Lgico para el Generador de Paridad Par de tres bits.

El bit de paridad y el mensaje de tres bits, se transmiten a su destino donde se aplican a un circuito de observacin de paridad. La salida C del comprobador de paridad debe ser 1 para indicar el error de transmisin. El error se presenta cuando el nmero de unos en sus entradas es impar. La tabla de verdad 3.7.2 muestra las entradas y las salidas del circuito.

Bits de entrada Comprobacin del Error

Tabla 3.7.2. Mapa de Karnaugh del comprobador de paridad.

La figura 3.7.3 muestra la funcin en un mapa de karnaugh de tres variables.

Figura 3.7.3. Mapa de Karnaugh del comprobador de paridad.

En el mapa de karnaugh se pueden observar los unos en los mintrminos que tienen un nmero impar de unos. La funcin puede expresarse en trminos de la operacin OR-Exclusiva. La demostracin es la siguiente: CP = A B C D = A B C D = (A B) (C D) = (AB + AB) (CD +CD) = (AB + AB)(CD+CD) + (AB+ AB)(CD+CD) Entonces, CP = (m1, m2, m4, m7, m8, m11, m13, m14). El circuito lgico se muestra en la figura 3.7.4.

Figura 3.7.4. Circuito Lgico para el comprobador de paridad par de tres bits

COMPARADORES
Los circuitos comparadores son sistemas combinacionales que comparan la magnitud de dos nmeros binarios de n bits e indican cul de ellos es mayor, menor o s existe igualdad entre ellos. Existen varias configuraciones de circuitos de un nivel sencillo a uno ms complejo para determinar relaciones de magnitud. Comparador de Magnitudes de un Bit La comparacin de dos bits se puede realizar por medio de una compuerta OR exclusiva o una NOR exclusiva. La salida del circuito es 1 si sus dos bits de entrada son diferentes y 0 si son iguales. La figura 3.8.1. muestra el circuito comparador de dos bits.

Figura 3.8.1. Comparador de magnitudes de un bit

Comparador de Magnitudes de Dos Bits Los nmeros A y B de dos bits en orden significativo ascendente a descendente se ordenan de la siguiente forma: A = A1A0 B = B1B0 En un comparador de dos bits se utilizan dos compuertas OR Exclusiva. El comparador se muestra en la figura 3.8.2. Los bits ms significativos se comparan en la compuerta 1 y los dos menos significativos en la compuerta 2. En el caso de nmeros iguales, los bits tambin son iguales, teniendo como salida en cada XOR el valor 0. Cada XOR se invierte y la salida de la compuerta AND tendr un 1. En nmeros diferentes, los bits sern diferentes y la salida de cada XOR ser 1.

Figura 3.8.2. Comparador de magnitudes de dos bits.

Comparador de magnitudes de cuatro bits En el diagrama 3.8.3. se muestra un comparador de magnitud de cuatro bits. Las entradas son A y B y las salidas son las tres variables binarias A>B, A=B y A<B. Escribiendo los coeficientes de los nmeros A y B en orden significativo de ascendente a descendente: A = A3A2A1A0 = Ai+3Ai+2Ai+1Ai B = B3B2B1B0 = Bi+3Bi+2Bi+1Bi

Figura 3.8.3. Comparador de magnitudes de cuatro bits.

Salida A=B Los dos nmeros son iguales si todos los nmeros del mismo peso son iguales, es decir A3=B3, A2=B2, A1=B1 y A0=B0. La igualdad de los nmeros Ai y Bi se determina comparando los coeficientes segn el valor 0 1 para los dos bits. En la comparacin se emplea la variable yi. Esta variable binaria es igual a 1 si los nmeros de entrada A y B son iguales, de lo contrario ser igual a 0. Por consiguiente, la comparacin de dos bits en la posicin i de un nmero, est dada por: yi (Ai=Bi) = AiBi + AiBi = (Ai Bi)' Por ejemplo, s A3 = 1 y B3= 1; y3 ser igual a y3 = A3B3 + A3B3 = 11 + 11 = 1 pero s A3 = 1 y B3= 0 ; y3 = A3B3 + A3B3 = 10 + 01 = 0. La comparacin se realiza para el resto de los ceficientes Ai y Bi. El nmero A ser igual a B s se cumple la condicin yi=1 para todos los coeficientes, es decir una operacin AND: (A=B) = y3y2y1y0 La variable binaria A=B es igual a 1 solamente si todos los pares de dgitos de los nmeros son iguales. Salidas A>B y A<B La comparacin en este caso se comienza desde el bit ms significativo. Los dgitos se comparan uno a uno y si estos son iguales se prueba con el siguiente par de bits menos significativos. La comparacin continua hasta que se encuentra un par de dgitos desiguales. En la posicin donde se encuentre un uno en A y un 0 en B se puede afirmar que A>B. Por el contrario, s A es igual a 0 y B igual a 1 entonces A<B. La funcin corrresondiente a cada salida es: (A>B) = A3B3 + y3A2B2 + y3y2A1B1 + y3y2y1A0B0 (A<B) = A3B3 + y3A2B2 + y3y2A1B1 + y3y2y1A0B0 Ejemplo Comparar los nmeros binarios A = A3A2A1A0 = 1001 y B = B3B2B1B0 = 1011. El valor de las variables yi: y3(A3=B3) = (1)(1) + (0)(0) = 1 ; y2 (A2=B2) = (0)(0) + (1)(1) = 1 ; y1(A1=B1) = (0)(1) + (1)(0) = 0 ; y0(A0=B0) = (1)(1) + (1)(0) = 1. Las ecuaciones son: (A>B) = (1)(0) + (1)(0)(1) + (1)(1)(0)(0) + (1)(1)(0)(1)(0) = 0. (A<B) = (0)(1)+ (1)(1)(0) + (1)(1)(1)(1) + (1)(1)(0)(0)(1) = 1. El diagrama del comparador de cuatro bits se muestra en la figura 3.8.4.

Figura 3.8.4. Comparador de magnitudes de cuatro bits

CIRCUITOS ARITMTICOS
El diseo de sistemas digitales involucra el manejo de operaciones aritmticas. En esta leccin se implementarn los circuitos de suma y resta de nmeros binarios. Sumador Medio El circuito combinacional que realiza la suma de dos bits se denomina sumador medio. La figura 3.9.1 muestra el smbolo lgico de sumador medio. En el circuito las entradas son A y B y la salida S corresponde a la suma y Cout al acarreo de salida (Ver leccin 1.4.).

Figura 3.9.1. Smbolo lgico del sumador medio

La tabla de verdad 3.9.1. est dada por las reglas de la suma binaria.

X Y Cout S

0 0 0

0 1 0

1 0 0

1 1 1

Tabla 3.9.1. Tabla de verdad del sumador medio

La salida obtenida a partir de la tabla de verdad es: X + Y = Cout S El bit de acarreo Cout es 1, slo cuando A y B tienen el valor de 1; por tanto entre A y B se puede establecer una operacin AND: Cout = AB El bit de suma S es 1, slo si las variables A y B son distintas. El bit de acarreo es 0 a no ser que ambas entradas sean 1. Por consiguiente, la salida S puede expresarse en trminos de la operacin OR Exclusiva: S = AB + AB = A B El circuito se muestra en la figura 3.9.2.

Figura 3.9.2. Circuito Lgico del Sumador Medio.

Sumador Completo El sumador completo acepta dos bits y un acarreo de entrada y genera una suma de salida junto con el acarreo de salida. La tabla 3.9.2. muestra la tabla de verdad del sumador completo. Las entradas A, B y Cin denotan al primer sumando, el segundo sumando y el acarreo de entrada. Las salidas S y Cout representan a la suma y el acarreo de salida.

A B Cin Cout 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

Tabla 3.9.2. Tabla de verdad del sumador completo

La salida S en la tabla de verdad corresponde a la operacin OR- Exclusiva: S = ABCin + ABCin + ABCin + ABCin S = Cin(AB + AB) + Cin (AB + AB) S = Cin(AB + AB) + Cin (AA + AB + AB + BB) S = Cin(AB + AB) + Cin ((A + B)(A + B)) S = Cin(AB + AB) + Cin ((AB)(AB)) S = Cin(AB + AB) + Cin (AB + AB) S = (A B) Cin El mapa de karnaugh de la salida Cout se muestra en la figura 3.9.3.

Figura 3.9.3. Mapa para la salida Cout de un Sumador Completo.

La salida Cout est dada por: Cout = AB + ACin + BCin El circuito se muestra en la figura 3.9.4.

Figura 3.9.4. Circuito Lgico del Sumador Completo.

Restador En la diferencia, cada bit del sustraendo se resta de su correspondiente bit del minuendo para formar el bit de la diferencia. El prstamo ocurre cuando el bit del minuendo es menor al bit del sustraendo, de tal forma que se presta un 1 de la siguiente posicin significativa. La resta se implementa mediante un sumador. El mtodo consiste en llevar al minuendo a una de las entradas y el sustraendo en complemento 2 a la otra entrada. Restador Medio El circuito combinacional que realiza la resta de dos bits se denomina Restador medio. El circuito tiene dos entrada binarias y dos salidas. La figura 3.9.5 muestra el smbolo lgico de Restador medio. En el circuito las entradas son A(minuendo) y B(sustraendo) y la salida D corresponde a la diferencia y P al prstamo de salida.

Figura 3.9.5. Smbolo Lgico del Restador Medio.

Si A B, existen tres posibilidades 0-0=0, 1-0=0 y 11=1. El resultado es el bit de diferencia D. Si A<B se tiene 0-1 y es necesario prestar un 1 de la siguiente posicin significativa de la izquierda. El prstamo agrega 2 al bit del minuendo de manera similar cuando en el sistema decimal se agrega 10 al dgito del minuendo. La tabla de verdad 3.9.3. est dada por las reglas de la resta binaria.

A B P D

0 0 0 0

0 1 1 1

1 0 0 1

1 1 0 0

Tabla 3.9.3. Tabla de verdad del Restador medio.

La salida D coincide con la operacin OR- Exclusiva y se puede expresar de la siguiente forma: D = AB + AB La salida P est dada por la suma de productos de los trminos presentes en el rengln 2 de la tabla de verdad: P = AB El circuito se muestra en la figura 3.9.6.

Figura 3.9.6. Circuito Lgico del restador medio.

Restador Completo El Restador completo realiza la resta entre dos bits, considerando que se ha prestado un 1 de un estado menos significativo. En la tabla 3.9.4. las entradas A, B y C denotan el minuendo, el sustraendo y el bit prestado. Las salidas D y P representan a la diferencia y el prstamo.

A B C P D

0 0 0 0 0

0 0 1 1 1

0 1 0 1 1

0 1 1 1 0

1 0 0 0 1

1 0 1 0 0

1 1 0 0 0

1 1 1 1 1

Tabla 3.9.4. Tabla de verdad del Restador Completo.

En las combinaciones del mapa donde C=0, se tienen las mismas condiciones para el sumador medio. El resto de condiciones se vieron en la leccin 4 del captulo 1. La funcin de la salida D de un restador es la misma que la salida de un sumador completo: D = ABC + ABC + ABC + ABC = (A B) Cin El mapa de karnaugh de la salida P se muestra en la figura 3.9.7.

Figura 3.9.7. Mapa para la salida P de un restador completo

La salida P est dada por: P = AB + AC + BC El circuito se muestra en la figura 3.9.8.

Figura 3.9.8. Tabla de verdad del restador completo

SUMADOR Y RESTADOR DE CUATRO BITS


Las operaciones aritmticas se pueden implementar mediante circuitos lgicos. El nivel de sencillez obtenido en los circuitos est dado por la tcnica de diseo utilizada. La implementacin de una unidad aritmtica que realice las operaciones de suma y resta en un slo circuito, es ms simple comparndola con una de dos circuitos para las mismas funciones. En la leccin se vern los mtodos de diseo de circuitos lgicos para sumar y restar nmeros binarios de cuatro bits. La suma de dos nmeros binarios de cuatro bits se realiza de derecha a izquierda, teniendo en cuenta los correspondientes posiciones significativas y el bit de arrastre (acarreo Cinx). El bit de arrastre generado en cada

posicin se utiliza en la siguiente posicin significativa. La figura 3.10.1. muestra la suma de dos nmeros de cuatro bits.

Figura 3.10.1. Suma binaria de cuatro bits

En un sumador completo, la suma de un par de bits genera un bit de acarreo. Un sumador de 2 nmeros de n bits se puede implementar de la forma descrita a continuacin. Los bits de la posicin menos significativa se suman con un acarreo inicial de 0, generando el bit de suma y el de acarreo. El bit de acarreo generado es usado por el par de dgitos en la siguiente posicin significativa. La suma se propaga de derecha a izquierda segn los acarreos generados en cada sumador y los sumandos presentes. Por consiguiente, la suma de dos 2 nmeros binarios de n bits se puede implementar mediante la utilizacin de n sumadores completos. As, para nmeros binarios de dos bits se necesitan dos sumadores completos; para nmeros de cuatro bits cuatro sumadores. En la figura 3.10.2. se muestra un sumador de cuatro bits.

Figura 3.10.2. Smbolo lgico del sumador en paralelo de cuatro bits

El smbolo lgico del sumador de cuatro bits se muestra en la figura 3.10.3.

Figura 3.10.3. Circuito lgico del sumador en paralelo de cuatro bits

En el captulo 1 - leccin 4 se mostr que la resta de dos nmeros A y B se puede realizar sumando el complemento a dos de B a A. Un sumador se puede modificar en forma de sustractor invirtiendo cada bit del sustraendo y sumando 1 al establecer un acarreo de entrada Cin1. Observese el complementador de la figura 3.10.4. Si la entrada de control es igual a S=0, la entrada de datos I pasa sin ningn cambio a la salida. Si S=1, la entrada de datos se complementa.

Figura 3.10.4. Diagrama de bloque de un complementador

El funcionamiento de este elemento se describe en la tabla de verdad 3.10.1.

Entradas Salida

Descripcin

Pasa a Y

Pasa a Y

Complemento a Y

Complemento a Y

Tabla 3.10.1.Tabla de verdad de un complementador

De la tabla de verdad se observa que Y = S I. La figura 3.10.5 muestra la funcin OR - Exclusiva como complementador.

Figura 3.10.5. Funcin OR - Exclusiva como complementador

Una sola entrada de control S con n lneas de entrada de datos Ii sirve para complementar o no complementar la entrada, segn la operacin de resta o suma binaria. La figura 3.10.6. ilustra un complementador de 4 bits.

Figura 3.10.6. Complementador de 4 bits

El circuito completo de un sumador/restador de 4 bits se representa en la figura 3.10.7.

Figura 3.10.7. Sumador/restador de 4 bits

SUMADOR EN BCD
La suma en cdigo BCD utiliza las mismas reglas de la suma binaria vistas en la leccin 1.4. Si una suma de dos nmeros es menor o igual que 9, el nmero BCD resultante es vlido. Si la suma es mayor que 9, o si se genera un acarreo el resultado no es vlido. En este caso, se suma el nmero binario 0110 para pasar de nuevo al cdigo BCD. Si se genera acarreo al sumar 0110, ste se suma al siguiente grupo de 4 bits. En los siguientes ejemplos se vern los casos que se pueden presentar. Ejemplo Sumar los nmeros 01000101 (45)10 y 00010010(12)10. La suma de la figura 3.11.1. no genera acarreos.

Figura 3.11.1. Suma BCD sin acarreo.

Ejemplo Sumar los nmeros 00111001(39)10 y 01010110(56)10. La suma de los cuatro bits menos significativos de la figura 3.11.2. genera acarreo.

Figura 3.11.02. Suma BCD con acarreo en el dgito BCD menos significativo

Ejemplo

Sumar los nmeros 01111001(79) 10 y 00110101(35)10. La suma de dgito BCD menos significativo de la figura 3.11.3. genera acarreo, al igual que el segundo dgito BCD.

Figura 3.11.03. Suma BCD con acarreo en dos dgitos

Un sumador BCD es un circuito que suma dos dgitos en BCD. En una suma BCD , la suma 9+9+1=19 es el valor mximo resultante, siendo el 1 en la suma el acarreo de entrada. Los dgitos BCD con un acarreo de entrada, se agregan en un sumador binario de cuatro bits para producir la suma binaria. Los nmeros decimales se listan en la tabla 3.11.1. C1 es el acarreo de la suma de los nmeros A y B de entrada (ver figura 3.11.4) y los dgitos S1 a S4 son el resultado de la suma binaria, donde cada dgito tiene los pesos 8, 4, 2, 1 del cdigo BCD. Cuando la suma binaria es menor o igual a 1001, no se agrega nada a la suma. Cuando el nmero binario es mayor que 1001 se obtiene una representacin en cdigo BCD no vlida. La suma del nmero binario 0110 a la suma binaria convierte la representacin a un cdigo BCD vlido. En la figura la suma del nmero 0110 se realiza por medio de un segundo sumador inferior. Este cdigo BCD vlido se observa en la tabla 3.11.1 en la columna de suma BCD. Las salidas S5 a S8 representan la suma BCD. C2 es el acarreo de salida de la suma BCD.

Suma Binaria Decimal

Suma BCD

C1 S4 S3 S2 S1 C2 S8 S7 S6 S5

10

11

12

13

14

15

16

17

18

19

Tabla 03.11.01. Tabla de verdad del Sumador BCD.

El circuito necesario para detectar la condicin de acarreo o suma binaria mayor a 1001 se obtiene de la tabla de verdad. Cuando C1 es 1 se necesita sumar 0110 o una correcin. Lo mismo entre las combinaciones 1010 y 1111, se tiene una correccin cuando S2=S4=1 S3=S4=1. La expresin lgica de la correccin es: C2 = C1 + S3S4 + S4S2 El circuito lgico necesario para implementar el sumador BCD se muestra en la figura 3.11.4.

Figura 3.11.4. Diagrama de bloques de un sumador BCD

UNIDAD ARITMTICA Y LGICA (ALU)


Una unidad aritmtica lgica puede realizar un conjunto de operaciones aritmticas bsicas y un conjunto de operaciones lgicas, a travs de lneas de seleccin. En ingls ALU significa Arithmetic Logic Unit (Unidad Aritmtica Lgica). La figura 3.12.1. muestra el diagrama de bloques de una ALU.

Figura 3.12.1. Diagrama de bloques de una ALU

Las cuatro entradas de A se combinan con las de B generando una operacin de salida de cuatro bits en F. La entrada de seleccin de modo S2 distingue entre las operaciones aritmticas y lgicas. Las entradas de seleccin S0 y S1 determinan la operacin aritmtica o lgica. Con las entradas S0 y S1 se pueden elegir cuatro operaciones aritmticas (con S2 en un estado) y cuatro logicas (con S2 en otro estado). Los acarreos de entrada y salida tienen sentido nicamente en las operaciones aritmticas. El diseo de una ALU implica el diseo de la seccin aritmtica, la seccin lgica y la modificacin de la seccin aritmtica para realizar las operaciones aritmticas y lgicas. Seccin Lgica Los datos de entrada en una operacin lgica son manipulados en forma separada y los bits son tratados como variables binarias. En la tabla 3.12.1. se listan cuatro operaciones lgicas OR, OR - Exclusiva, AND y NOT. En el circuito, las dos lneas de seleccin (S1, S0) permiten seleccionar una de las compuertas de entrada, correspondientes a la funcin Fi .

S1 S0

Salida Funcin Fi

0 0

F=Ai+Bi OR

0 1

F=AiBi XOR

1 0

F=AiBi

AND

1 1

F=A'i

NOT

Tabla 3.12.1. Tabla de Funcin Lgica.

El circuito lgico de la figura 3.12.2 es una etapa de un circuito lgico de n bits.

Figura 3.12.2. Diagrama lgico de un circuito lgico de una ALU

Seccin Aritmtica El componente bsico de la seccin aritmtica es un sumador en paralelo (ver leccin 3.10.1). Las operaciones aritmticas configuradas en el circuito aritmtico se presentan en la tabla 3.12.2. En una ALU, la suma aritmtica se puede implementar con un nmero binario en A, otro nmero en la entrada B y el acarreo de entrada Cin en un valor lgico 0. El resto de las funciones se enuncian en la columna descripcin.

Seleccin de Funcin

Salida N

Funcin

Descripcin

S1

S0

Cin

Transferir A

A+1

Incrementar A

A+B

Suma agregar B a A

A+B+1

Suma con accarreo agregar B a A ms 1

A+B

Agregar el complemento de 1 de B a A

A+B+1

Agregar el complemento de 2 de B a A

Todos unos A-1

Decrementar A

Todos unos A

Trasferir A

Tabla 3.12.2. Tabla de la Funcin F en un Circuito Aritmtico

La implementacin de las funciones anteriores por medio de un circuito lgico sencillo se describe a continuacin. El circuito se disea bajo el precepto de intervenir cada entrada Bi para obtener las siguientes funciones:

S1 S0 Ni

0 0

0 1

Bi

1 0

Bi'

1 1

Tabla 3.12.3. Tabla del circuito para la entrada Bi

La figura 3.12.3. muestra el circuito.

Figura 3.12.3. Circuito para la tabla 3.12.2.

Por medio de estas funciones se pueden lograr las funciones de la tabla 3.12.2 al agregar el nmero N i (tabla 3.12.3) a la entrada A a travs de un sumador en paralelo para cada etapa, teniendo en cuenta el valor de la entrada Cin. El circuito combinacional aritmtico se muestra en la figura 3.12.4. En la figura, la entrada A se denomina Mi en el sumador completo.

Figura 3.12.4. Circuito aritmtico

Diseo de una Unidad Aritmtica Lgica En el diseo de una ALU se deben seguir los siguientes pasos: 1. 2. 3. Disear la seccin aritmtica independientemente de la seccin lgica. Determinar las operaciones lgicas del circuito aritmtico, asumiendo que los acarreos de salida de todas las etapas son 0. Modificar el circuito aritmtico para obtener las operaciones lgica requeridas.

El diseo simple de una ALU se hace utilizando el sumador completo para generar las operaciones lgicas de la unidad. Por lo tanto es necesario introducir una variable de control adicional (S2), con el fin de seleccionar entre las operaciones lgicas y aritmticas. En este diseo, un valor S2 = 1 hace que el circuito efecte operaciones lgicas. Recordando la salida de un sumador completo: F = (Ai Bi) Cin A partir de esta ecuacin, es posible obtener la funcin lgica requerida, utilizando la debida manipulacin lgica. La funcin requerida se expone en la tabla 3.12.4.

S2 S1 S0 Ai Bi Cin 1 0 1 0 1 1 1 1 0 1 0 1 Ai 0 A i Bi 0 0

Operacin Sumador Completo Ai Ai AiBi A'i

Funcin requerida Fi OR XOR AND NOT

Manipulacin

Salida

Aplicar una funcin OR Ai + Bi Ai+Bi Ai Ninguna Aplicar una funcin OR Ai + Bi' Ninguna AiBi A'i

Ai Bi' 0 Ai 1 0

Tabla 3.12.4. Tabla de obtencin de las funciones lgicas con un sumador completo

Partiendo de la tabla 3.12.4., las entradas Mi, Ni y Cini en un sumador completo, son equivalentes a las siguientes expresiones: Mi = Ai + S2S1'S0'Bi + S2S1S0'Bi' Ni = S0Bi + S1Bi'

Cini = S2'Ci La figura 3.12.5. muestra el diagrama de la unidad aritmtica lgica de dos etapas.

Figura 3.12.5. Diagrama lgico de una ALU

Las doce operaciones generadas en el ALU se resumen en la tabla 3.12.5., la funcin en particular se selecciona a travs de S2, S1, S0 y Cin. Las operaciones aritmticas son las mismas del circuito aritmtico.

Seleccin

Salida F

hDescripcin

hS2 hS1 hS0 Cin F

Trasferir A

A+1

Incrementar A

A+B

Suma

A+B+1

Suma con accarreo

A-B-1

Resta con prstamo

A-B

Sustraccin

A-1

Decrementar A

Transferir A

A+B

OR

OR-Exclusiva

AB

AND

Complementar A

Tabla 3.12.5. Tabla de verdad de una ALU

MULTIPLICADOR COMBINATORIO
Un multiplicador combinatorio permite realizar la operacin de multiplicacin mediante circuitos combinacionales. Como ejemplo, un circuito construido para este propsito es un multiplicador combinacional paralelo de 4 bits, mostrado en la figura 3.13.2. Este multiplicador estn constituido internamente por circuitos sumadores completos, que a su vez internamente estn diseados a nivel de puertas lgicas. En el primer nivel de compuertas de la figura se obtienen las operaciones A0B0, A1B0, A2B0 y A3B0. En el segundo nivel de compuertas, las operaciones A0B1, A1B1, A2B1 y A3B1. En el tercero, las operaciones A0B2, A1B2, A2B2 y A3B2 y en el cuarto A0B3, A1B3, A2B3 y A3B3. Por ejemplo, A0B0 es directamente el resultado P0. El dgito P3, se obtiene de la suma de los bits de entrada a los sumadores S3, S6, S9 y el bit A3B0. La figura 3.13.1 recuerda el proceso de multiplicacin de dos nmeros de cuatro bits.

Figura 3.13.1. Multiplicacin de dos nmeros de cuatro bits

Figura 3.13.2. Circuito lgico del multiplicador combinatorio

DISPOSITIVOS LGICOS PROGRAMABLES


Una forma rpida y directa de integrar aplicaciones se logra con la lgica programable, la cual permite independizar el proceso de fabricacin del proceso de diseo fuera de la fbrica de semiconductores. El sistema desplaza los errores de alambrado al campo exclusivo de la programacin. Los sistemas con estas caractersticas se pueden borrar y reprogramar en casos de cambios o revisiones. El resultado es la reduccin del espacio fsico de la aplicacin. El diseo est basado en bibliotecas y mecanismos especficos de mapeado de funciones. En el captulo se vern dispositivos como los PAL y GAL por la facilidad de manejo y coste razonable. El lenguaje CUPL se ver por su amplia difusin y empleo en aplicaciones.

DISEO LGICO HOY DA


La mayor parte de los diseos de nivel de sistema incorporan diversos dispositivos, como son las memorias RAM, ROM, controladores, procesadores, etc., que se interconectan mediante gran cantidad de dispositivos lgicos de propsito general, frecuentemente denominados lgica de unin (" glue logic"). En los ltimos aos, los dispositivos PLD (Programmable Logic Device) han comenzado a reemplazar muchos de los antiguos dispositivos de unin, SSI y MSI. El uso de dispositivos PLD proporciona una reduccin en el nmero de circuitos integrados. Por ejemplo, en los sistemas de memoria de las computadoras, los PLD pueden utilizarse para decodificar direcciones de memoria y generar seales de escritura en memoria.

En muchas aplicaciones, los PLD y, en concreto, las matrices lgicas programables (PAL, Programmable Array Logic) y las matrices lgicas genricas (GAL, Generic Array Logic) pueden emplearse para reemplazar dispositivos lgicos SSI y MSI, consiguiendo con ello una reduccin de etapas y de los costos. Por las razones anteriores el diseo lgico hoy da se realiza con PLDs. Un PLD est formado por una matriz de puertas AND y puertas OR, que se pueden programar para conseguir funciones lgicas especficas. El diseo con PLDs seala las siguientes ventajas en relacin a la lgica cableada:


Tipos de PLD Los PLD se dividen en dos clases: 1.

Economa. Menos espacio en los impresos. Se mantiene la reserva del diseo. Se requiere tener menos inventarios que con circuitos estndar SSI, MSI. Menos alambrado.

PLDs combinatorios. Constituidos por arreglos de compuertas AND OR. El usuario define las interconexiones y en esto consiste la programacin.

2.

PLDs secuenciales. Adems de los arreglos de compuertas, incluyen flip flops para programar funciones secuenciales como contadores y mquinas de estado(ver captulo 8).

Estructura de los Dispositivos Lgicos Programables Bsicos Los PLD se clasifican de acuerdo con su estructura, la cual es bsicamente la ordenacin funcional de los elementos internos que proporciona al dispositivo sus caractersticas de operacin especficas. Memoria programable de slo lectura PROM (PROM, Programable Read Only Memory) La PROM est formada por un conjunto fijo (no programable) de puertas AND conectadas como decodificador y una matriz programable OR. La PROM se utiliza como una memoria direccionable y no como un dispositivo lgico (Ver Fig 4.1.1.).

Figura 4.1.1. Diagrama de bloques de una PROM (Programmable Read-Only Memory).

Arreglo Lgico Programable PLA (PLA, Programmable Logic Array) El PLA es un PLD formado por una matriz AND programable y una matriz OR programable. La PLA ha sido desarrollada para superar algunas de las limitaciones de las memorias PROM (Ver Fig 4.1.2.).

Figura 4.1.2. Diagrama de bloques de una PLA (Programmable Logic Array).

Los dispositivos lgicos programables como las PAL y las GAL se vern en la siguiente leccin. En la actualidad existen soluciones con Dispositivos Lgicos programables complejos que combinan arquitectura superior y software de gran alcance, ofreciendo un nivel sin precedente en la flexibilidad del diseo.

HERRAMIENTAS COMPUTACIONALES UTILIZADAS EN LAS METODOLOGIAS DE DISEO DESCENDENTES (TOP-DOWN)


En el diseo Top - Down se captura una idea en un nivel de abstraccin alto y se implementa a partir de sta descripcin, en un proceso hacia abajo incrementando el nivel de detalle segn lo requerido. La figura 4.3.1. muestra la forma de diseo Top- Down. En el primer nivel de la figura se aprecia un sistema inicial dividido en mdulos, los cuales se dividen sucesivamente hasta llegar a los componentes bsicos del circuito o elementos primarios. Estos elementos se enmarcan en un cuadrado con la lneas ms gruesa. Los mtodos de diseo se basan en programas computacionales conocidos como herramientas de automatizacin del diseo electrnico (EDA Tools), las cuales sobresalen por ofrecer una reduccin significativa en el tiempo del diseo.

Figura 4.2.1. Metodologia De Diseo Top - Down

Las herramientas siguen el diagrama de flujo de la figura 4.4.2.

Figura 4.2.2. Diagrama de Flujo con herramientas EDA

Este proceso se resume en los siguientes pasos: 1. 2. Planteamiento de las especificaciones. Entrada del diseo:En esta etapa se realiza una descripcin del circuito, para la cual existen varias alernativas, a. b. c. d. 3. 4. Captura Esquemtica: Dibujo del circuito mediante interfaz grfica, puede ser un diagrama de bloques. Mediante lenguajes de descripcin HDL como VHDL, Verilog, Abel y CUPL. Diagramas de transicin de estados. Formas de onda Tablas de verdad.

Simulacin HDL (Opcional): Simula el comportamiento del circuito que se acaba de describir antes de la sntesis. Sntesis lgica: Consiste en tomar la descripcin HDL y a partir de ella, generar y simplificar las ecuaciones lgicas correspondientes al circuito descrito. Simulacin funcional: Simula las ecuaciones lgicas, sin tener en cuenta los retardos. Implementacin del diseo: Los pasos a seguir dependen del tipo de PLD que se est utilizando en el diseo. Trazado del mapa, Colocacin y enrutamiento, Creacin del archivo para la programacin del dispositivo. Revisa si el circuito se adapta al chip; No. salidas, No. de trminos productos por salida. Simulacin temporal: Despus de la implementacin ya se conoce como queda programado el circuito y se puede realizar una simulacin teniendo en cuenta los retardos. Programacin: La implementacin genera un archivo JEDEC que indica el estado de las conexiones. Este archivo se usa para programar (o quemar el chip).

5. 6.

7.

8.

Ventajas del Diseo Top - Down La metodologia de diseo descendente disminuye el tiempo de diseo. Por medio de los programas CAD para diseo de impresos se ha logrado disminuir el tiempo a 1/10 parte de lo que se gastaba antes, cuando esto se hacia antes manualmente. En la realizacin de las simulaciones no es necesario slo un prototipo, ya que este generalmente funciona; antes se deba repetir el proceso 2 o 3 veces hasta que el prototipo funcionara.

Las ltimas herramientas de diseo electrnico permiten implementar de forma automtica la metodologa de diseo Top - Down.

Lenguajes de Descripcin de Hardware (HDL - Hardware Description Language) Los lenguejes HDL permiten realizar el primer paso de la metodologa del diseo descendente. Se describen en un lenguaje de alto nivel el comportamiento requerido del circuito a disear. Esta descripcin se puede hacer mediante tablas de verdad, lista de transiciones de estados, ecuaciones lgicas. Con base a la descripcin, el programa realiza los siguientes pasos: 1. 2. 3. 4. 5. Sintetiza y simplifica las ecuaciones lgicas. Simula las ecuaciones. Sintetiza el circuito lgico. Simula el circuito lgico. Sintetiza el archivo para programar un PLD.

Entre otras ventajas, se pueden mencionar las siguientes: 1. EL programa HDL es el mismo as cambie la tecnologa, Ejemplo: FPGA, transistores 2.5m ., 1.2 m . 2. Facilita la comunicacin entre los diseadores. 3. 4. 5. Facilita el uso de las partes de un diseo en otros ( Reutilizacin). Es posible verificar el funcionamiento del sistema dentro del proceso de diseo sin necesidad de implementar el circuito. Las simulaciones del diseo, antes de que este sea implementado, permiten probar la arquitectura del sistema para tomar decisiones en cuanto a cambios en el diseo. Las herramientas de sntesis tienen la capacidad de convertir una descripcin hecha en un HDL, VHDL por ejemplo, a compuertas lgicas y adems, optimizar dicha descripcin de acuerdo a la tecnologa utilizada. Las descripciones en un HDL proporcionan documentacin de la funcionalidad de un diseo independientemente de la tecnologa utilizada. Una descripcin realizada en un HDL es ms fcil de leer y comprender que los nestlist o circuitos esquemticos. Un circuito hecho mediante una descripcin en un HDL puede ser utilizado en cualquier tipo de dispositivo programable capaz de soportar la densidad del diseo. Es decir, no es necesario adecuar el circuito a cada dispositivo porque las herramientas de sntesis se encargan de ello.

6.

7.

8. 9.

Lenguajes HDL ms populares En la actualidad existen diversas herramientas de diseo para integrar sistemas de gran complejidad. Los lenguajes de descripcin de hardware constituyen una opcin de diseo de soluciones de sistemas electrnicos. ABEL El lenguaje ABEL es el ms utilizado en los PLDs. El lenguaje ABEL facilita la programacin de PLDs combinatorios y secuenciales. Un circuito en ABEL se puede describir en forma de ecuacin lgicas, tabla de verdad o en transicin de estados. El programa ABEL cumple los siguientes pasos:

1. 2. 3. 4. 5. VHDL

Verifica si existen errores en la sintaxis del programa fuente. Simplifica o sintetiza las ecuaciones segn sea el caso. Simula las ecuaciones. Puede escoger el dispositivo que mejor se adapte, o verificar si el dispositivo especificado s se adapta a la aplicacin. Genera el archivo JEDEC para la programacin del PLD.

El VHDL es un lenguaje de descripcin y modelado diseado para descibir en forma entendible la funcionalidad y la organizacin del hardware de los sistemas digitales y otros componentes. VHDL maneja una sintaxis amplia y flexible. El lenguaje VHDL permite el diseo Top -Down o en otras palabras; modelar los bloques de alto nivel, simularlos y adecuar la funcionalidad en alto nivel antes de llegar a los niveles bajos de abstraccin en la implementacin del diseo. CUPL El lenguaje CUPL se describir en la leccion 5 de este captulo.

HERRAMIENTAS PARA LA AUTOMATIZACIN DEL DISEO ELECTRNICO (EDA TOOLS)


Las herramientas EDA ("Electronic Design Automation") son las herramientas de hardware y software utilizadas en el diseo de sistemas electrnicos. El diseo de hardware tiene un inconveniente que no existe en el desarrollo de software. El problema es el alto costo en el ciclo de diseo, desarrollo del prototipo, pruebas y reinicio del ciclo. La etapa de costo ms elevado es el prototipo. Por necesidad del mercado, se impone la reduccin de costos en esta etapa, con el fin de incluir la fase de desarrollo del prototipo al final del proceso, evitando la repeticin de varios prototipos, razn por la cual se encarece el ciclo. La introduccin de la fase de simulacin y verificacin de circuitos utilizando herramientas EDA, hace no necesaria la comprobacin del funcionamiento del circuito por medio de la implementacin fsica del prototipo. Las herramientas EDA estn presentes en todas las fases del ciclo de diseo de circuitos. Primero en la fase de generacin del sistema que puede representarse en un diagrama esquemtico, en bloques o de flujo. Se encuentra tambin la fase de simulacin y comprobacin de circuitos, donde diferentes herramientas permiten verificar el funcionamiento del sistema. Estas simulaciones pueden ser de eventos, funcionales, digitales o elctricas, de acuerdo al nivel requerido. Despus estn las herramientas EDA utilizadas en la sntesis y programacin de circuitos digitales en dispositivos lgicos programables. Existen, adems, las herramientas EDA orientadas a la fabricacin de circuitos. En el caso del diseo de hardware estas herramientas sirven para la realizacin de PCBs ("Printed Circuit Boards" o placas de circuito impreso), o para desarrollar circuitos integrados de aplicacin especifica como ASICs ("Aplication Specific Integrated Circuits" ). Las principales caractersticas y finalidad de algunas herramientas EDA que intervienen en el diseo de circuitos son: 1. 2. 3. 4. 5. 6. 7. 8. 9. Lenguajes de Descripcin de Circuitos. Diagramas Esquemticos. Grafos y Diagramas de Flujo. Simulacin de Eventos. Simulacin Funcional. Simulacin Digital. Simulacin Elctrica. Diseo de PCBs. Diseo de Circuitos Integrados.

10. Diseo con Dispositivos Programables. Para la automatizacin del diseo electrnico se utilizan herramientas EDA. Ventajas de la metodologia de diseo que usa herramientas EDA Entre las ventajas de la metodologia de diseo con el empleo de herramientas EDA est la reduccin del diseo, la posibilidad de dividir un proyecto en mdulos que se desarrollan por separado, la independencia del diseo con respecto a la tecnologa, la posibilidad de la reutilizacin de los diseos, la optimizacin de los circuitos y las simulaciones posibles con las herramientas. Con la aparicin de herramientas EDA cada vez ms complejas, que integran en el mismo marco de trabajo las herramientas de descripcin, sntesis, simulacin y realizacin; apareci la necesidad de disponer de un mtodo de descripcin de circuitos que permitiera el intercambio de informacin entre las diferentes herramientas que componen el ciclo de diseo. En principio se utiliz un lenguaje de descripcin que permita, mediante sentencias simples, describir completamente un circuito. A estos lenguajes se les llam Netlist puesto que eran simplemente eso, un conjunto de instrucciones que indicaban las interconexiones entre los componentes de un diseo.

PRINCIPIOS Y APLICACIONES DE LOS DISPOSITIVOS LGICOS PROGRAMABLES COMO LAS PALS Y LAS GALS.
Una matriz programable es una red de conductores distribuidos en filas y columnas con un fusible en cada punto de interseccin. Las matrices pueden ser fijas o programables. Todos los PLD estn formados por matrices programables. Estrucutura Interna de un PLD La estructura bsica de un PLD et formada por un arreglo de puetas AND y OR interconectadas a travs de fusibles. Matriz AND La matriz AND est formada por una red de compuertas AND conectadas a travs conductores y fusibles en cada punto de interseccin. Cada punto de interseccin entre una fila y una columna se denomina celda. La figura 4.4.1 muestra un arreglo de compuertas no programado.

Figura 4.4.1. Arreglo AND No Programado.

Cuando se requiere una conexin entre una fila y una columna, el fusible queda intacto y en caso de no requerirse la conexin, el fusible se abre en el proceso de programacin. La figura muestra 4.4.2 un arreglo AND programado.

Figura 4.4.2. Arreglo AND Programado.

Matriz OR La matriz OR est formada por una red de compuertas OR conectadas a travs conductores y fusibles en cada punto de interseccin. La figura 4.4.3 muestra un arreglo de compuertas no programado.

Figura 4.4.3. Arreglo OR No Programado.

La figura muestra 4.4.4 un arreglo OR programado.

Figura 4.4.4. Arreglo OR Programado.

Los dispositivos lgicos programables que se usan ms comnmente para la implementacin lgica son la PAL y la GAL.

Lgica de Arreglos Programables (PAL, Programmable Array Logic) La PAL es un PLD que se ha desarrollado para superar ciertas desventajas de la PLA, tales como los largos retardos debidos a los fusibles adicionales que resultan de la utilizacin de dos matrices programables y la mayor complejidad del circuito. La PAL bsica est formada por una matriz AND programable y una matriz OR fija con la lgica de salida (Ver figura 4.4.5). Esta estructura permite implementar cualquier suma de productos lgica con un nmero de variables definido, sabiendo que cualquier funcin lgica puede expresarse como suma de productos. La PAL se implementa con tecnologa bipolar (TTL o ECL).

Figura 4.2.5. Diagrama de bloques de una PAL (Programmable Logic Array)

Nomenclatura de una PAL Los lderes en fabricacin de PLDs, Texas Instruments y AMD, tienen una notacin para identificar los dispositivos. Por ejemplo, la estructura en PLD AMD es:

Figura 4.2.6. Diagrama de bloques de una PAL (Programmable Logic Array)

Dentro de la estructura de salida se tienen las posibilidades contenidas en la tabla 4.2.1.

Cdigos

Tipos de Salidas

Combinatoria con nivel bajo activo.

Combinatoria con nivel alto activo.

Registro.

RA

Registro asncrono.

Registro O exclusivo.

Vestil.

Macroclula.

Tabla 4.2.1. Tipos de Salidas de una PAL.

PALs comerciales En el mercado se manejan referencias como la PAL16L8, PAL20L8, PAL20V8 y PAL20X8. Matriz Lgica Genrica (GAL, Generic Array Logic) La GAL se forma con una matriz AND reprogramable y una matriz OR fija , con una salida lgica programable. La figura 4.4.7. muestra el diagrama de bloques de una GAL. Esta estructura permite implementar cualquier expresin lgica suma de productos con un nmero de variables limitado.

Figura 4.4.7. Diagrama de Bloques de una GAL (Generic Array Logic).

Las dos principales diferencias entre los dispositivos GAL y PAL son: a) la GAL es reprogramable y b) la GAL tiene configuraciones de salida programables. La GAL se puede programar una y otra vez, ya que usa tecnologa ECMOS (Electrically Erasable CMOS, CMOS borrable elctricamente ). En la figura 4.4.8. se ilustra la estructura bsica de una GAL con dos variables de entrada y una de salida. La matriz reprogramable es esencialmente una red de conductores ordenados en filas y columnas, con una celda CMOS elctricamente borrable (E2CMOS) en cada punto de interseccin, en lugar de un fusible como en el caso de las PAL. Estos PLDs son borrables y reprogramables. El transistor CMOS tiene 2 compuertas, una de ellas totalmente aislada, flotante. Para programar cada celda se aplica o no una tensin mayor a VDD (alta) en la compuerta no flotante. Al aplicar esta tensin el dielctrico conduce y la compuerta flotante se carga negativamente, dejando en operacin normal siempre abierto el transistor.

Figura 4.4.8. Estructura Bsica de una GAL (Generic Array Logic)

En la figura 4.2.9. se muestra un ejemplo de una sencilla matriz GAL programada para obtener la suma de tres productos.

Figura 4.4.9. Programacin de una GAL (Generic Array Logic).

El borrado se puede hacer de dos formas:

Con luz ultravioleta(UV): exponiendo el transistor de 5 a 20 minutos a luz UV, el dielctrico conduce y permite la descarga de la compuerta flotante. Para este borrado el chip lleva una ventana de cuarzo transparente. Borrado elctrico: Es el ms usado hoy en da. La capa que aisla la compuerta flotante es ms delgada. Al aplicar una tensin alta con polaridad contraria , la compuerta flotante se descarga porque el dielctrico conduce. Las ventajas ms importantes de esta tcnica son una descarga rpida, no se requiere UV y no se requiere sacar el chip de su base.

GALs comerciales Las diversas GAL tienen el mismo tipo de matriz programable. Se diferencian en el tamao de la matriz, en el tipo de OLMC (Las macroceldas Lgicas de Salida que contienen circuitos lgicos programables que se pueden configurar como entrada o salida combinacional y secuencial) y en los parmetros de funcionamiento, tales como velocidad y disipacin de potencia.

Referencia Nmero de Pines

tPD

ICC (mA)

Caractersticas

GAL16V8A

20

10, 15, 25 55, 115

E2CMOS PLD Genrica

GAL18V10

20

15, 20

115

E2CMOS PLD Universal

GAL22V8A

24

10, 15, 25 55, 115

E2CMOS PLD Genrica

GAL22RA10 24

15, 20

115

E2CMOS PLD Universal

GAL22V10

24

10, 15, 25 130

E2CMOS PLD Universal

GAL26CV12 28

15, 20

130

E2CMOS PLD Universal

GAL6001

24

30, 35

150

E2CMOS FPLA

ispGAL16Z8 24

30, 35

190

E2CMOS PLD Programable en Circuito

Tabla 4.2.2. Familias GAL del fabricante Lattice

PRINCIPIOS Y APLICACIONES DE LOS DISPOSITIVOS LGICOS PROGRAMABLES COMO LAS PALS Y LAS GALS

PROGRAMACIN EN CUPL
En el medio electrnico hay diferentes herramientas de software para programar PLDs. Todos estos tienen semejanzas compartidas y sus diferencias distintivas. Uno de los compiladores disponibles de alto nivel de uso difundido actualmente es CUPL. En esta leccin se pretende dar una introduccin a la programacin de PLDs utilizando este compilador dejando por parte del estudiante la profundizacin en el tema. CUPL es una Herramienta de programacin para PLDs y su nombre proviene de la sigla en ingls de Compiler Universal Programmable Logic , la cual traduce Compilador Universal para Lgica Programable. Este compilador ofrece varias caractersticas que permiten desarrollos basados en la metodologa Top-Down y puede generar archivos de programacin para una gran variedad de dispositivos programables. La programacin en este Software se efecta mediante la creacin de un archivo de texto que contiene el cdigo para la programacin del dispositivo. Este archivo tiene tres partes bsicas: el encabezado, la declaracin de los pines de entrada y las definiciones lgicas. Generalmente se emplea un archivo como el que se muestra en la Lista 4.5.1 para dar inicio al diseo lgico y tener una forma estandar para trabajar en CUPL.
Name XXXXX;

Partno XXXXX; Date Revision Designer Company Assembly Location /***************************************************************/ /*Entradas*/ pin 1 = ; pin 1 = ; pin 1 = ; pin 1 = ; /*Salidas*/ pin 1 = ; pin 1 = ; pin 1 = ; pin 1 = ; /* /* /* /* /* /* /* /* */ */ */ */ */ */ */ */

/*Variables Intermedias (Opcionales)*/ pin 1 = ; /* */ pin 1 = ; /* */ pin 1 = ; /* */ pin 1 = ; /* */ /***************************************************************/ /* Ecuaciones Lgicas*/ /***************************************************************/
Lista 4.5.1. Archivo de Ejemplo de Entrada en CUPL

En este archivo los comentarios los grupos de caracteres "/*" y "*/" son empleados para incluir comentarios por parte del usuario, los cuales permiten organizar el archivo de una forma comprensible y especificar la funcion de ciertos tipos de instrucciones. En las siguientes secciones se indicarn algunas caractersticas a tener en cuenta para programar un PLD en CUPL y la sintaxis que se debe emplear en el archivo fuente para implementar un diseo. Asignacin de Pines La asignacin de los pines corresponde al nombramiento de los pines del dispositivo con nombres descriptivos para las entradas y salidas. Los nombres se pueden asignar de forma libre y corresponden a las variables que se emplean para definir las ecuaciones lgicas. La asignacin de pines se puede hacer de forma invividual o grupal. En la tabla 4.5.1 se indica la sintaxis que se emplea en CUPL para asignar los pines de un dispositivo programable. Observe que cada asignacin finaliza con un punto y coma (;).

Sintaxis General
Pin 1 = Nombre; Pin 2 = !Nombre; Pin 3 = !SET;

Sintaxis Abreviada
Pin [2,3] = [Nombre, Nombre2]; Pin [2,3] = ![Nombre, Nombre2]; Pin [2..3] = [Q0..3];
Tabla 4.5.1. Asignacin de Terminales

El signo "!" en la asignacin de pines indica que la variable se complementa. Este signo se emplea generalmente para declarar variables activas en bajo Definicin de Variables Intermedias Las variables intermedias corresponden a variables asignadas a una ecuacin lgica pero que no representan un pin en el dispositivo. Generalmente esta variables se utilizan cuando se requiere manejar varias varibles de entra y salidas.

El objetivo de declarar variables intermedias, consiste bsicamente en reducir el tamao de las ecuaciones lgicas asignadas a los pines de salida y permitir organizar el archivo de entrada de una forma comprensible. Su uso no es obligatorio en el archivo de entrada para CUPL. Definicin de Ecuaciones Lgicas Las ecuaciones lgicas corresponden a las expresiones lgicas que relacionan los pines de entrada y salida. y en el archivo fuente se ubican despus de la asigancin de pines y variables intermedias. Las ecuciones lgicas deben tener cierta sintaxis para que el programa interprete las operaciones lgicas. En la tabla 4.5.2 se ralcionan los operadores lgicos con lo cuales se contruyen las expresiones lgicas junto con la sintaxis que exige CUPL.

Operador Funcin Formato de CUPL Formato Convencional

&

AND

A&B

AB

OR

A#B

A+B

NOT

!A

A'

XOR

A$B

Tabla 4.5.2. Sintaxis de CUPL para operaciones lgicas

La sintaxis general de las equaciones lgicas en CUPL es la siguiente: [!] var [.ext] = exp; Extensiones de Variables Las extensiones son atributos que se agregan a las variables en las ecuaciones lgicas y la manera de emplearlas en el archivo fuentes es mediante la sintaxis: "V.E", donde V es la variable lgica y E es la extensin. Las extensiones para las variables son empleadas para definir funciones que dependen de la configuracin fsica de las salidas del PLD. Generalmente el tipo de salidas que se pueden configurar en un PLD son salidas combinacionales, secuenciales y triestado, entre otras. En la figura 4.5.1 se muestra un diagrama ilustrativo del tipo de salidas que se pueden configurar en CUPL segn la extensin seleccionada, y un ejemplo sobre su utilizacin.

Figura 4.5.1. Circuito Ilustrativo del tipo de salidas configurables en un PLD (Tomado de ATMEL - WinCUPL User's Manual)

Teniendo en cuenta que las varibles lgicas pueden incluir extensiones, la sintaxis que se debe emplear para las ecuaciones lgicas es la siguiente: [!] var [.ext] = exp; donde var es la variable lgica , ext es la extensin y exp es la expresin lgica.Un sencillo ejemplo usando el software para creacin de CUPL servir para ilustrar el proceso. En CUPL existe otro tipo de sintaxis para simplificar un poco la ecuaciones lgicas. Una de ellas consiste en la utlizacin de los operadores de forma cosecutiva a varias variables. En la tabla 4.5.2 se indica como se pueden representar las expresiones lgicas de forma abreviada.

Forma Convencional Forma Abreviada

A3 & A2 & A1 & A0

[A3, A2, A1, A0]:&

B3 # B2 # B1 # B0

[B3..B0]:#

C3 $ C2 $ C1 $ C0

[C3, C2, C1, C0]:$

Tabla 4.5.3. Forma abreviada para representar expresiones lgicas con un mismo operador

Existe otro tipo de sintaxis similar a la anterior que define rangos de datos. Inicialmente se debe definir un campo de la siguiente forma: FIELD entrada = [A3..A0]; Luego se escribe el rango de la ecuacin de la forma: salida = entrada:[C..F]; Esta ecuacin equivale a escribir la siguiente expresin: salida = entrada:C # entrada:D # entrada:E # entrada:F; Definicin de Alternativa de las Salidas

En CUPL existen otras formas alternativas de definir las salidas. Entre ellas exiten las Tablas de Verdad, Mquinas de Estado y Estamentos Condicionales. A contnuacin de indica la sintaxis de cada uno de estos tipo de declaracin de salidas lgicas. Tablas de Verdad Como su nombre lo indica este tipo de sintaxis agrupa la informacin sobre la asociacin de entradas y salidas en forma de tabla. Para declara una tabla de verdad inicialemnte se declarar las entradas y salidas. Despus de ello se asignan los valores uno a uno de las entradas y salidas. En la Lista 4.5.2 se indica las sintaxis para un decodificador de Hexadecimal a BCD.
FIELD Entrada = [Ent3..0]; FIELD Salida = [Sal3..0]; TABLE Ent => Sal { 0=> 00; 1=>01; 2=>02; 3=>03; 4=>04; 5=>05; 6=>06; 7=>07; 8=>08; 9=>09; A=>10; B=>11; C=>12; D=>13; E=>14; F=>15; }
Lista 4.5.2. Sintaxis en CUPL para crear Tablas de Verdad

Mquinas de Estado Este tipo de definicin permite declarar la relacin entradas y salidas mediante la definicin de mquinas de estado. La sintaxis empleada para este tipo de definicin se ilustra en las lneas de cdigo de la Lista 4.5.3.
SEQUENCE lista_vars_estado { PRESENT estado_n0 IF (condicin1)NEXT estado_n1; IF (condicin2) NEXT estado_n2 OUT sal_n0; DEFAULT NEXT estado_n0; PRESENT estado_n1 NEXT estado_n2; ... ... ... PRESENT estado_nn estamentos; }
Lista 4.5.3. Sintaxis en CUPL para crear Mquinas de Estado

Estamentos Condicionales Los estamentos condicionales es otro tipo de sintaxis que se puede emplear en CUPL para definir el diseo lgico. Bsicamente est sintaxis es muy similar a la un lenguaje de programcin de alto nivel. La sintaxis que soporta CUPL se relaciona en la lista 4.5.4.
CONDITION { IF expr0 OUT var; . . IF exprn OUT var; DEFAULT OUT var; }
Lista 4.5.4. Sintaxis en CUPL para crear Estamentos Condicionales

Ejemplo de Programacin en CUPL El cdigo que se indica en la Lista 4.5.5. corresponde al texto del archivo fuente para programar un GAL16V8, que ilustra como programa funciones lgicas bsicas en CUPL.
Name Funciones lgicas; Partno GAL16V8; Revision 01; Date 03/01/03; Designer J.Beltran; Company Universidad Nacional; Location X; Assembly X; Device G16V8;

/******************************************************/ /* Archivo Fuente de ejemplo en CUPL para implementar funciones lgicas */ /******************************************************/ /* Definicin de las entradas */ Pin 1 = a; Pin 2 = b; /* Definicinde las salidas */ Pin Pin Pin Pin Pin Pin Pin Pin 12 13 14 15 16 17 18 19 = = = = = = = = inva; invb; and; nand; or; nor; xor; xnor;

/* Definicin de Ecuaciones Lgicas*/ inva = !a; invb = !b; and = a & b; nand = !(a & b); or = a # b; nor = !(a # b); xor = a $ b; xnor = !(a $ b); /* Inversin de las entradas a y b*/ /* Funcin AND */ /* Funcin NAND */ /* Funcin OR*/ /* Funcin NOR */ /* Funcin XOR */ /* Funcin XOR Negada*/

Lista 4.5.5. Archivo fuente de ejemplo en CUPL para implementacin de funciones lgicas

Una vez se tiene el archivo fuente de un diseo lgico, el paso a seguir es compilar el archivo para generar el archivo de programacin JEDEC, el cual se emplea para programar el dispositivo. Durante el procesode compilacin del archivo fuente CUPL verifica la sintaxis del archivo e indica los posibles errores que puedan existir. Si el programa no detecta errores se genera el archivo .JED. CUPL entre sus funciones tiene un simulador con el cual se pueden comprobar las salidas. Este proceso se efecta mediante la generacin de varias entradas que comprueban los estados de las salidas para verificar las ecuaciones lgicas. La simulacin se recomienda para verificar que el diseo es correcto y que no existe ningn error. Despus de ello se puede proceder a programar el dispositivo y finalmente verificar su funcionamiento.

CERROJOS Y FLIP-FLOPS
En los captulos anteriores se realiz el anlisis y sntesis de los sistemas lgicos combinacionales, en los cuales no se tuvo en cuenta la variable tiempo. En los sistemas secuenciales la variable tiempo juega un papel importante debido a que el estado de las salidas depende del estado actual de las variables de sistema. Adicionalmente los sistemas secuenciales tienen la caracterstica de almacenar o retener informacin, lo cual los convierte en sistemas muy verstiles en electrnica digital. En este captulo se tratarn conceptos fundamentales sobre la composicin y funcionamiento de los dispositivos bsicos empleados en lgica secuencial y algunas aplicaciones particulares.

DEFINICIN DE LGICA SECUENCIAL


En la lgica secuencial a diferencia de la lgica combinatoria se hace uso de un elemento bsico llamado flip-flop. El flip-flop es un elemento de memoria que almacena un bit de informacin. Algunos textos usan este nombre para referirse a los cerrojos, pero en la mayora de las publicaciones se hace la diferencia entre flip-flop y latch. Este ltimo trmino es el que traducimos como cerrojo. Los circuitos lgicos secuenciales se dividen bsicamente en dos grupos: Los circuitos asincrnicos y los circuitos sincrnicos. Los primeros pueden cambiar los estados de sus salidas como resultado del cambio de los estados de las entradas, mientras que los circuitos sincrnicos pueden cambiar el estado de sus salidas en instantes de

tiempo discretos bajo el control de una seal de reloj. En la animacin 5.1.1. se observa la diferencia entre estos dos tipos de sistemas secuenciales.

Animacin 5.1.1. Tipos de Circuitos Secuenciales.

CERROJOS CON COMPUERTAS


Los cerrojos son dispositivos que tienen la capacidad de almacenar un bit de informacin, as que estos solo pueden estar en dos estados (1 o 0 lgico). Los cerrojos son dispositivos asincrnicos, debido a que sus salidas cambian en funcin de las entradas, de forma directamente dependiente del estado de las entradas, en un instante de tiempo cualquiera. Existen varios tipos de cerrojos y variaciones de estos que permiten realizar funciones especficas, dependiendo de la aplicacin. A continuacin veremos algunos de ellos. Cerrojo S-R (Set-Reset) Este cerrojo se compone de dos compuertas NOR (ver figura 5.2.1). La operacin de este circuito puede entenderse mediante el anlisis del estado de las terminales para los posibles valores de las entradas R y S.

Figura 5.2.1. Cerrojo S-R

Generalmente este cerrojo se representa de una forma mas simplificada. (ver figura 5.2.2).

Figura 5.2.2. Forma simplificada del cerrojo S-R

Para entender el funcionamiento de este dispositivo, analizaremos los estados de las salidas para cada uno de los casos que se puedan presentar a las entradas de este circuito (ver figura 5.2.1):

R=0 y S=0: Asumiendo que Q=0, la salida de la compuerta B es 1, as que la entrada de la compuerta A es tambin 1, que a su vez obliga a que la salida de la compuerta A sea 0, lo cual concuerda con la suposicin inicial del estado de la salida Q. Ahora suponiendo que Q=1, la salida de la compuerta B es 0, al igual que la entrada de la compuerta A, concluyendo que Q=1. En estas condiciones se deduce que el estado previo de las salidas Q y Q' no se ve alterado cuando R=0 y S=0. R=0 y S=1: Suponiendo que Q=0, entonces Q'=1. Las entradas a la compuerta B son S=1 y Q=0, luego la salida de esta compuerta es Q'=0, entonces Q=1. Tenga presente que las conexiones cruzadas garantizan que

las salidas sean siempre complementarias. Si inicialmente se asume Q=1, las entradas de la compuerta B son ahora S=1 y Q=1, lo que implica que la salida de esta compuerta es Q'=0 o Q=1. Si se observan los resultados del anlisis, siempre que R=0 y S=1, la salida Q=1, es decir, que esta combinacin de seales de entrada sirve para fijar (set) la salida de la terminal Q al nivel lgico 1.

R=1 y S=0: supongamos nuevamente que Q=0, lo cual hace Q'=1. Entonces las entradas de la compuerta A son R=1, Q'=1, lo que ocasiona que la salida de esta sea Q=0. Es decir, el circuito lgico conserva la salida en Q restaurada (reset) a 0. Si suponemos inicialmente Q=1, o Q'=0. Entonces las entradas de la compuerta A se son R=1 y Q'=0, lo que origina que la entrada a la compuerta A sea Q=0. En este caso, dado que la salida en la terminal Q estaba en 1 lgico, la accin de R=1 y S=0 es restaurar (reset) su valor a 0. En resumen, podemos decir que esta combinacin de seales de entrada sirve siempre para restaurar (reset) la salida de la terminal Q al nivel lgico de 0. S=1 y R=1: la aplicacin del anlisis anterior muestra que en estas condiciones, ambas compuertas intentan generar un mismo nivel lgico, lo cual hace indeterminado el estado de las salidas (ver Leccin 3: Estado Metaestable). Lo que hace que la salida sea indeterminada, es lo que ocurre cuando se suprimen las entradas. Si se suprime S antes que R, el cerrojo se restaura. Si R se suprime antes que S, el cerrojo se fija. En consecuencia, en el cerrojo S-R esta condicin de las entradas no se permite; sin embargo, como se explicar ms adelante, algunas modificaciones en este circuito pueden eliminar la ambigedad. El funcionamiento descrito de este circuito puede resumirse en los estados que se indican en la tabla 5.2.1.

Si Ri Qi+1

0 0

Qi

0 1

1 0

1 1

Tabla 5.2.1. Estados lgicos del Cerrojo S-R

El subndice i significa el i-simo instante en el que se alimentan las entradas S y R, donde Qi indica el i-simo instante y Qi+1 indica el siguiente estado de la salida despus de cambiar las entradas. En la interactividad 5.2.1 se muestra un cerrojo R-S, en el cual se pueden introducir los valores de las entradas y verificar su funcionamiento. En las entradas se deben ingresar solo valores lgicos.

Interactividad 5.2.1. Estados lgicos del Cerrojo S-R

Cerrojo S'- R' Este cerrojo es otra versin del cerrojo S-R y se compone de dos compuertas NAND como se muestra en la figura 5.2.3. Su funcionamiento es similar al cerrojo S-R, y se puede hacer un anlisis similar al que se hizo anteriormente para llegar a los estados que se resumen en la tabla 5.2.2. Este cerrojo tambin se conoce con el nombre de cerrojo S-R con entrada activa en bajo.

Figura 5.2.3. Cerrojo S'-R'

Al igual que el cerrojo S-R, este tambin tiene su representacin simplificada (ver figura 5.2.4).

Figura 5.2.4. Representacin simplificada de cerrojo S'-R'

Observe el comportamiento de este cerrojo comparado con el anterior. Las salidas son similares, pero en este la indeterminacin ocurre cuando S=0 y R=0, y no cuando S=1 y R=1, como en el cerrojo S-R. (ver la tabla 5.2.2 y comparar con la tabla 5.2.1).

Si Ri Qi+1

0 0

0 1

1 0

1 1

Qi

Tabla 5.2.2. Estados lgicos del Cerrojo S'-R'

Cerrojo S-R con habilitacin Este tipo de cerrojo es una variacin del cerrojo S'-R', con dos compuertas NAND adicionales a las entradas (ver figura 5.2.5), permite crear una nueva entrada, la cul acta como habilitador ( enable), para permitir que las entradas S y R, acten sobre cerrojo.

Figura 5.2.5. Cerrojo S-R con habilitacin

En la siguiente tabla se resumen los estados de las salidas de este cerrojo para las posibles entradas.

Si Ri E Qi+1

0 0

1 Qi

0 1

1 0

1 0

1 1

1 1

1 -

X X 0 Qi

Tabla 5.2.3. Estados lgicos del Cerrojo S-R con habilitacin

Como se observa, el funcionamiento es similar al cerrojo S'-R', solo que en este caso se agreg otra entrada para habilitar la operacin del circuito como cerrojo. Circuito Integrado cerrojo S-R El circuito integrado TTL ref. 74LS279 contiene cuatro cerrojos. En este integrado dos de los cerrojos tienen una entrada doble para S'. Existe otro circuito integrado CMOS ref. 4043 que tiene igualmente cuatro cerrojos. La configuracin de pines de estos dos circuitos integrados se muestra en la figura 5.2.6

Figura 5.2.6. Configuracin de pines CI-74LS279 y CI-4043

Cerrojo D con habilitacin Este tipo de cerrojo es similar al anterior, tiene una entrada habilitadora, pero adicionalmente tiene un inversor entre las terminales S y R, como se observa en la figura 5.2.7.

Figura 5.2.7. Cerrojo D

La entrada D va directamente a la entrada S del cerrojo y su complemento a la entrada R. Este cerrojo recibe su nombre por la habilidad que tiene para transmitir datos a otro cerrojo, o simplemente memorizarlos. Adems este cerrojo tiene una caracterstica particular diferente a los anteriores, que consiste en que en nign momento de presentan estados indeterminados a las salidas. La razn por la cual se elimina la indeterminacin es debido a la presencia del inversor. En la figura 5.2.8 se observa el smbolo que se utiliza para representar este cerrojo.

Figura 5.2.8. Cerrojo D

Los estados de este cerrojo se muestran en la tabla 5.2.4.

D E Qi+1

0 0 Qi

0 1 0

1 0 Qi

1 1 1

Tabla 5.2.4. Estados lgicos del Cerrojo D

Circuito Integrado cerrojo D El circuito integrado TTL ref. 74LS75 contiene cuatro cerrojos tipo D. Existe otro circuito integrado CMOS ref. 4042 que tiene igualmente cuatro cerrojos tipo D. La configuracin de pines de estos dos circuitos integrados se muestra en la figura 5.2.9.

Figura 5.2.9. Configuracin de pines CI-74LS75 y CI-4042

ESTADO METAESTABLE
Se define como estado metaestable aquel que ocurre cuando se presentan condiciones invlidas en los cerrojos, por ejemplo el cerrojo S-R de la leccin anterior tiene un estado metaestable cuando las entradas son: S=1 y R=1. En esta condicin las salidas intentan generar un mismo estado lgico (0), lo cual constituye una indeterminacin, porque no se cumple que Q y Q' sean estados complementarios. Cuando se pone a 0 cualquiera de las entradas (S o R), el cerrojo vuelve a una condicin vlida, sin embargo si las entradas se ponen a 0 de forma simultanea el cerrojo entra en un estado indeterminado, en el cual se presentan oscilaciones a la salida. Cuando el cerrojo entra en este estado se dice que el cerrojo se encuentra en estado metaestable. En la interatividad 5.3.1 se indica lo que ocurre cuando se presenta esta condicin para el cerrojo SR. Haga click sobre el botn "simular", para ver las seales de salida del cerrojo.

Animacin 5.3.1. Estado Metaestable para el cerrojo S-R

INTERRUPTOR SIN REBOTE


En los interruptores normales es imposible obtener una transicin de tensin libre de ruido y sin variaciones, debido a las oscilaciones que se presentan al hacer contacto los terminales del interruptor, formando de esta manera un rebote en la seal aplicada. En este fenmeno la seal de salida del interruptor oscila varias veces antes de llegar a un estado estable. Estas oscilaciones duran unos pocos milisegundos, sin embargo, en algunas aplicaciones es inaceptable que se presenten estas condiciones y en especial en los circuitos digitales. En la interactividad 5.4.1, se muestra un circuito para ver el rebote en un interrutor, haga click sobre el interruptor y sostngalo para observar la seal de salida Vo.

Interactividad 5.4.1. Conmutacin en un interruptor comn

Para evitar las oscilaciones durante el cierre de un interruptor se puede emplear un cerrojo S'-R' en la configuracin que se muestra en la figura 5.4.2. y analice la forma en que funciona.

Figura 5.4.2. Conmutacin un interruptor sin rebote

Inicialmente suponga que el interruptor se encuentra en reposo en la posicin (1) lo que implica que la terminal R del cerrojo se encuentra en 0V o 0 lgico, es decir R=0 y por lo tanto Q=0. Cuando el interruptor se mueve a la posicin (2) la terminal R del cerrojo se cambia a 5V o 1 lgico, luego R=1 y Q=1 despus de unos nanosegundos, los cuales corresponden al tiempo de transicin de las compuertas del cerrojo. Inevitablemente la conexin mecnica del interruptor en la posicin (2) oscilar, pero cuando esto ocurre las entradas R y S del cerrojo permanecen en 1 lgico, lo cual hace que el estado actual permanezca inalterado, es decir, en 1 lgico. De la misma manera cuando se pasa de la posicin (2) a la (1), ocurre el rebote se sostiene el ltimo estado, quedando en 0 lgico. Ejercicio propuesto: Definir la configuracin del mismo eliminador de rebote utilizando un cerrojo S-R.

FLIP-FLOPS
A diferencia de los cerrojos los flip-flops son dispositivos sincrnicos y el estado de sus salidas es controlado en instantes de tiempo discretos por una seal de reloj. Al igual que los cerrojos los hay de varios tipos y sus aplicaciones son diversas. Los flip-flops son dispositivos que responden una seal de reloj durante los cambios de 1 a 0 lgico o de 0 a 1 lgico, segn el tipo de flip-flop. Para lograr que los flip-flops respondan al cambio de la seal del reloj es necesario implementar un circuito que detecte el flanco de subida o bajada de la sea de reloj. En la interactividad 5.5.1 se observa uno de estos circuitos, el cul se conoce como flip-flop D maestro/esclavo. Un flip-flop de este tipo contiene dos cerrojos, uno

de ellos acta como maestro y el otro como esclavo. Durante la transicin de la seal de reloj de 1 a 0 lgico las entradas se emplean para determinar la salida del maestro. Cuando la seal de reloj pasa de 0 a 1 lgico el estado del maestro se trasmite al esclavo. De esta forma se garantiza que las salidas Q y Q' del flip-flop cambien cada vez que ocurre una transicin de 0 a 1 en la seal de reloj. Haga click sobre la entrada D del cerrojo maestro y observe como se transmite la informacin al cerrojo esclavo y de este a la salida.

Interactividad 5.5.1. Flip-Flop maestro/esclavo

Flip-Flop S-R (Set-Reset) Este dispositivo es similar al cerrojo S-R de la leccin anterior, la diferencia radica en la inclusin de una seal de reloj, que acta como seal de confirmacin del paso de los datos hacia el circuito principal, el cul se encarga de memorizar los datos. Su representacin en los sistemas digitales es la que se muestra en la figura 5.5.2. Este tipo de flip-flop no es muy comercial as que no se darn mas detalles sobre este dispositivo en este curso.

Figura 5.5.2. Flip-flop S-R

Flip-Flop D (Data) El flip-flop D es muy similar al cerrojo D, y su diferencia radica en que la seal habilitadora ( enable) es reemplazada por el mecanismo del flip-flop maestro/esclavo, el cual actualiza los datos cada vez que la seal de reloj tiene una transicin de 0 a 1 o 1 a 0 dependiendo del tipo de flip-flop. La estructura del flip-flop D y su representacin simplificada se muestran en la figura 5.5.3.

Figura 5.5.3. Flip-flop D

La tabla 5.5.1 es la tabla de verdad de este flip-flop, la cual indica que el dado se tranfiere cuando ocurre un pulso de reloj.

D CLK Qi+1

Tabla 5.5.1. Estados del flip-flop D

La forma de operacin de este flip-flop es muy sencilla:

Cuando D=0 y se presenta un cambio de 0 a 1 lgico en la entrada de reloj del flip-flop la salida Q=0. Cuando D=1 y se presenta un cambio de 0 a 1 lgico en la entrada de reloj del flip-flop la salida Q=1.

En otras palabras, el dato en D se transfiere y memoriza en Q cada vez que se presenta una transicin de 0 a 1 lgico en la seal de reloj (CLK); esta condicin se conoce con el nombre de transicin por flanco positivo. La condicin complementaria a la anterior es cuando la transicin es de 1 a 0 lgico, en este caso se dice que la transicin se da por flanco negativo. Este flip-flop se puede utilizar para que la transicin se de por flanco negativo, simplemente basta con poner a la entrada del reloj (CLK) un inversor como en la figura 5.5.4.

Figura 5.5.4. Flip-flop D con inversor en la entrada de reloj

Flip-Flop D Preset-Clear Este flip-flop es similar al flip-flop D, excepto que este tiene dos entradas asincrnicas activadas en bajo llamadas Preset y Clear. Estas entradas como su nombre lo indican sirven respectivamante para poner en 1 y 0 la salida Q del flip-flop independientemente de la seal de reloj. La configuracin de este flip-flop y su representacin abreviada se describen en la figura 5.5.5.

Figura 5.5.5. Flip-flop D Preset-Clear

La gran parte de los Circuitos Integrados que contienen flip-flops vienen con entradas asncrnicas de inicializacin y borrado (Preset y Clear), comunmente representados con las abreviaturas PRE y CLR. Flip-Flop J-K Este flip-flop es una versin modificada del flip-flop D, y su aplicacin es muy difundida en el Anlisis y Diseo de Circuitos Secuenciales. El funcionamiento de este dispositivo es similar al flip-flop S-R, excepto que en este no se presentan indeterminaciones cuando sus dos entradas se encuentran en 1 lgico, si no que el flip-flop entra en un

modo de funcionamiento llamado modo complemento, en el cual, la salida Q cambia a su estado complementario despus de cada pulso de reloj. La configuracin de este flip-flop y su representacin abreviada se muestran en la figura 5.5.6. y en la tabla 5.5.2 se indican los estados de entrada y salida de este flip-flop.

Figura 5.5.6. Representacin del flip-flop J-K

Note que las entradas J y K controlan el estado de este flip-flop de la misma manera que en el flip-flop D. Cuando las entradas son J=1 y K=1 no generan un estado indeterminado a la salida, sino que hace que la salida del flipflop cambie a su estado complementario.

J K CLK Qi+1

0 0

Qi

1 0

0 1

1 1

Qi '

Tabla 5.5.2. Estados del flip-flop J-K

Flip-Flop T (Toggle) Este flip-flop recibe su nombre por la funcin que realiza ( Toggle) cambiando el estado de la salida por su complemento. Es una modificacin del flip-flop J-K limitndolo a cumplir exclusivamente esta funcin, la cual se logra uniendo las terminales J y K como se muestra en la figura 5.5.7.

Figura 5.5.7. Flip-flop T

La tabla de verdad de este flip-flop se limita a las lneas 1 y 4 del flip-flop J-K.

T CLK Qi+1

Qi

Qi'

Tabla 5.5.3. Estados del flip-flop T

FLIP-FLOPS CONSTRUIDOS CON COMPUERTAS DE TRANSMISIN E INVERSORES


En la leccin anterior se estudi la composicin interna de los flip-flops, en donde se observ que las compuertas lgicas son la base para la construccin de estos dispositivos, sin embargo, es posible construir los flip-flops de otra manera, mediante el uso de compuertas de transmisin e inversores, de los cuales se dar una introduccin sobre su funcionamiento. Los cerrojos y flip-flops generalmente se contruyen empleando dos tipos de tecnologa:

Tecnologa TTL: Logica de Transistor a Transistor. Esta tecnologa, hace usos de resistencias, diodos y transistores bipolares para obtener funciones lgicas estndar. Tecnologa CMOS: Logica MOS Complementaria. Esta tecnologa, hace uso bsicamente de transistores de efecto de campo NMOS Y PMOS. Cuando se habla de compuertas de transmisin e inversores generalmente se trata de circuitos construidos con tecnologa CMOS, sin embargo, en otras tecnologas hay disponibles dispositivos que realizan la misma funcin. En esta leccin se har referencia a los conceptos segun tecnologa CMOS. Inicialmente se ver que son las compuertas de transmisin e inversores y al final de la leccin se indicaran dos modelos de flip-flops que se pueden construir con estos dos componentes. Inversores Existen diversas formas de construir un inversor, ya sea con transistores bipolares, o con trnasistores de tecnologa MOS. Dentro de esta ltima tecnologa encontramos los inversore s NMOS y PMOS. Inversor NMOS En la figura 5.6.4 se observa una forma de implementar este dispositivo mediante el uso de un transistor NMOS

Figura 5.6.4. Inversores NMOS

Cuando la tensin de la compuerta (VENT) esta en alto (1 lgico) el transistor entra en conduccin, haciendo que el transistor se ponga en baja impedancia dando como resultado que la salida ( VSAL) se establesca en bajo (0 lgico). En los integrados generalmente la resistencia es reemplazada por un transistor. La razn por la cual se reemplaza se debe bsicamente a que la resistencia ocupa mas espaci dentro del encapsulado que un transistor, por la cual se prefiere emplear unicamente trasistores para construir los inversores. En la figura 5.6.4 se indica la configuracin del inversor empleando dos transistores MOS de canal N.

Inversor CMOS Este tipo de inversor construido con lgica Complementaria MOS. tiene una ventaja con relacin al anterior, y se debe a que no consume corriente en ninguno de sus dos estados (alto o bajo). En la figura 5.6.5 se muestra la configuracin del inversor CMOS.

Figura 5.6.5. Inversor CMOS

Como es de observar los trasistores operan de forma complementaria. Cuando la tensin de entrada se encuentra en alto (1 lgico), el transistor NMOS entra en estado de conduccin y el transistor PMOS entra en corte, haciendo que la salida quede en bajo (0 lgico). La situacin inversa ocurre cuando la tensin de entrada se encuentra en bajo. Compuertas de Transmisin La compuerta de transmisin es un dispositivo empleado como interruptor. Generalmente se emplean transistores para cumplir la funcin de interrupcin y existen compuertas en tecnologa NMOS, PMOS y CMOS. En la figura 5.6.6 se muestra la configuracin interna de una cumpuesta CMOS. de Para mas detalles sobre el funcionamiento de este funcionamiento refierase a la Leccin: Compuerta de Transmisin CMOS del Capitulo 9.

Figura 5.6.6. Compuertas de transmisin CMOS

Flip-Flops Existen varias formas de disear y construir flip-flops segn lo visto en las lecciones anteriores en los dispositivos vistos en las secciones anteriores. Entre ellas los flip-flop pueden construirse con compuertas lgicas, mediante la utilizacin de los cerrojos maestro y esclavo vistos en la Leccin: Flip-flops de este captulo, sin embargo, es posible construir flips-flops usando compuertas de transmisin e inversores, que funcionan de forma similar controlando y almacenando datos. En la figura 5.6.7 se ilustra el circuito de un flip-flop D maestro/esclavo construido con compuertas de transmisin e inversores CMOS. Por comodidad las compuertas de transmisin CMOS se muestran en su representacin abreviada.

Figura 5.6.7. Flip-flop D construido con compuertas de transmisin e inversores.

En la figura 5.6.8 se ilustra otra configuracin para este flip-flop que fsicamente en el chip ocupa menos espacio pero que maneja tiempos de propagacin mas prolongados dentro del circuito.

Figura 5.6.8. Flip-flop D con inversores CMOS

Los flip-flops construidos de esta forma tienen algunas ventajas con respecto a aquellos contruidos con compuertas lgicas, entre las que se pueden mencionar las siguientes:

El tamao de los circuitos de los flip-flops construidos con compuertas de transmisin e inversores es mas reducido. La velocidad de propagacin de los datos es menor. Permiten integrar mas dispositivos en un mismo circuito integrado. Disipan menos potencia durante su operacin. El costo de diseo y construccin es menor. Se plantea como ejercicio para esta leccin hacer un anlisis sobre el funcionamiento de estos flip-flops y comprobar como se transmite la informacin desde D hasta Q.

CONTADORES Y REGISTROS
En este capitulo se ver como pueden emplearse los flip-flops y las compuertas lgicas para obtener distintos circuitos secuenciales, como contadores y registros. Adems se presentarn aplicaciones prcticas para ilustrar la forma en que estos circuitos lgicos secuenciales pueden ser utilizados en los sistemas digitales. Los contadores digitales son elementos importantes de muchos sistemas digitales. Adems de efectuar la funcin obvia de contar, tienen la capacidad de integrarse en equipos para la medicin digital de cantidades como tiempo, velocidad, frecuencia y distancia, entre otras. Los contadores encuentran tambin usos muy difundidos en la instrumentacin digital. Los registros son dispositivos que almacenan temporalmente un conjunto de datos en forma de palabras binarias. Por lo general tienen tamaos de 8, 16, o 32 bits, y se encuentran conformados por un conjunto de flip-flops, en los cuales se almacena la informacin. Estos dispositivos son empleados en los computadores para almacenar temporalmente datos, con los cuales se realizan operaciones binarias.

CONTADORES DE PROPAGACIN
Los contadores digitales o binarios en esencia son un grupo de flip-flops dispuestos de tal manera que sus salidas proporcionan una secuencia determinada como respuesta a los acontecimientos que ocurren a la entrada del reloj. Estos acontecimientos pueden ser por lo general pulsos de reloj (sincrnicos) o acontecimientos aleatorios (asincrnicos) alimentados como entradas por la terminal de reloj de los flip-flops. Los contadores de propagacin se basan en este ltimo principio para generar secuencias binarias que cambian como respuesta a eventos. Para conformar un contador de n bits solo basta tener n flip-flops, uno para cada bit de informacin. A continuacin se dar una descripcin sobre la estructura y funcionamiento de los contadores de propagacin mas comunes en lgica secuencial. Contador de propagacin ascendente El flip-flop T (ver Captulo 5: Cerrojos y flip-flops), tiene especial aplicacin en los contadores, debido a la habilidad que tienen para cambiar a su estado complementario, despus de un evento de reloj. La configuracin del circuito de la Animacin 6.1.1 corresponde a un contador ascendente de 4 bits disparado por flanco negativo. Note que todas las entradas del los flip-flops T estn en 1, con lo cual el estado de los flip-flops se complementa despus de cada cambio de 1 a 0 lgico a la entrada de reloj de cada uno de ellos. La Tabla 6.1.1 muestra los estados de salida de este circuito.

Animacin 6.1.1. Contador de propagacin ascendente

Nmero de pulsos Q3 Q2 Q1 Q0

...

... ... ... ...

15

16

17

...

... ... ... ...

Tabla 6.1.1. Estados contador ascendente

Observe la forma en que opera este circuito. Los pulsos de reloj se aplican nicamente al flip-flop A, as que la salida de este flip-flop se complementar cada vez que haya una transicin negativa en la entrada de reloj. La salida del flip-flop A se aplica directamente a la entrada de reloj del flip-flop B, de tal forma que la salida de este flip-flop se complementa cada vez que su entrada de reloj pasa de 1 a 0 lgico. De forma similar se comportan los flip-flops C y D cambiando su estado cada vez que reciben una transicin negativa en sus respectivas entradas de reloj. Las salidas de los flip-flops D,C,B y A representan un numero binario de 4 bits, siendo D el bit mas significativo y A el menos significativo. Este contador cuenta en forma ascendente desde 0000 hasta 1111, es decir que tiene 16 estados diferentes (24=16). En electrnica digital, existe una notacin que define el nmero de estados de un contador, designada por la sigla MOD mas el el numero de estados, por esta razn se dice que es un contador MOD16. Este tipo de contadores actuan como divisores de frecuencia. Si se hace un anlisis sobre la frecuencia de las seales de salida de los flip-flops se puede observar que la seal Q3 tiene una frecuencia dada por la siguiente expresin:

donde fCLK corresponde a la frecuencia de la seal del reloj. De igual forma las frecuencias de las salidas de los dems flip-flops estaran dadas por las siguientes expresiones:

Se plantea como ejercicio dibujar la seal de reloj y las seales de salida de los flip-flops para confirmar estos resultados. Este contador se puede modificar para que opere a cualquier nmero MOD entre 1 y 16. De forma general un contador de n bits se puede modificar para cualquier nmero MOD2n, y para lograrlo es necesario utilizar la entrada asincrnica de borrado CLR de los flip-flops, como veremos a continuacin. Contadores con nmeros MOD < 2n Los contadores bsicos pueden ser modificados para producir nmeros MOD < 2n, permitiendo que el contador omita estados que normalmente hacen parte de la secuencia de conteo. La forma mas usual para lograr esto se puede ver en la Figura 6.1.2, la cual corresponde a un contador de 4 bits MOD10. Este contador es conocido tambin como contador decadal.

Figura 6.1.2. Contador decadal (MOD10)

Asumiendo que la compuerta NAND no estuviera presente, el contador sera MOD16, sin embargo la presencia de esta compuerta altera el funcionamiento normal cuando las salidas Q3 y Q1 que van a la compuerta son 1. Esta condicin ocurrir cuando el contador pase del estado 1001 (9) al 1010 (10), haciendo que las entradas asncronas CLR de los flip-flops sean 0 y por tanto el contador pase al estado 0000. En la Tabla 6.1.2, se resumen los estados de este contador. En el momento que el contador llega al estado 1001 y ocurre una nueva transicin en la entrada de reloj (CLK), se presenta el estado 1010 (10) de forma temporal, y su duracin depende del tiempo de propagacin de la compuerta NAND. En la Figura 6.1.3 se observa el estado temporal entre los estados 1001 y 0000.

Nmero de pulsos Q3 Q2 Q1 Q0

...

...

...

...

...

10

11

...

...

...

...

...

Tabla 6.1.2. Estados del contador decadal

Figura 6.1.3. Estados de transicin del contador de propagacin MOD10

Contador de propagacin descendente

Los contadores descendentes cuentan en forma inversa, por ejemplo de 1111 hasta 0000. En la Figura 6.1.4 se observa un contador descendente de 4 bits. Note que este contador es similar al ascendente excepto que las salidas ahora son su complemento.

Figura 6.1.4. Contador descendente

En la tabla 6.1.3 se muestran los estados de las salidas de los flip-flops, donde se observa que despus de cada pulso se decrementa la secuencia binaria representada por las salidas Q 3 a Q0.

Nmero de pulsos Q3 Q2 Q1 Q0

...

...

...

...

...

15

16

17

...

...

...

...

...

Tabla 6.1.3. Estados del contador descendente

Ejercicio: Dibujar dos contadores binarios de 4 bits (ascendente y descendente) utilizando flip-flops T que respondan al flanco negativo del la seal del reloj.

CONTADORES SINCRNICOS
El inconveniente que se presenta con los contadores de propagacin de la leccin anterior, consiste bsicamente en que no todos los flip-flops cambian simultaneamente con la seal del reloj. Los contadores asincrnicos deben esperar que la seal se propage desde el primer flip-flop que representa el bit menos significativo hasta el flip-flop del bit mas significativo.

En los contadores sincrnicos a diferencia de los contadores de propagacin o asncronicos, la seal de reloj se aplica simultneamente a todos los flip-flops. Estos contadores por lo general tienen mas circuitera que los contadores de propagacin y estn conformados por flip-flops J-K. Para entender el funcionamiento de este tipo de contadores es necesario observar con atencin la secuencia para determinar los componentes que se deben agregar (generalmente flip-flops y compuertas). Analicemos el funcionamiento del contador de 3 bits que se muestra en la figura 6.2.1, y cuyos estados se resumen en la tabla 6.2.1. Asumamos que inicialmente el contador se encuentra en el estado 000. Note que el estado de la salida Q0 debe cambiar despus de cada transicin positiva del reloj (CLK), as que el flip-flop F0 debe tener sus entradas J y K en 1 lgico para que cumpla esta funcin, tal como se muestra en la figura 6.2.1.

Figura 6.2.1. Contador ascendente sincrnico de 3 bits

Nmero de pulsos Q2 Q1 Q0

Tabla 6.2.1. Estados del contador sincrnico ascendente de 3 bits

Ahora note que la salida Q1 cambia a su estado complementario cada vez que Q0=1 (ver tabla 6.2.1), as que las entradas J y K del flip-flop F1 deben estar contadas a la salida Q0. De esta forma cada vez que Q0=1 y ocurra una transicin positiva del reloj el flip-flop cambiara de estado tal como se observa en la secuencia. Finalmente nos resta analizar el estado de la salida Q2, para lo cual se debe obsevar nuevamente la tabla 6.2.1. Note que Q2 cambia a su estado complementario cada vez que Q1 y Q0 son 1, as que la forma de implementarlo en el contador es conectado Q1 y Q0 como entradas a una compuerta AND y cuya salida debe ir a las entradas J y K del flip-flop F2. Obseve que este flip-flop queda en estado complemento (toggle), cada vez que se presente esta condicin y ocurra una transicin positiva en el reloj ( CLK). En la Animacin 6.2.2 se ilustra el funcionamiento de un contador de 4 bits ascendente sincronico, el opera de forma similar la contador de tres bits. observe como los flip-flop cambian de estado cada vez que sus entradas J y K son 1 y ocurre una transicin positiva en la seal de reloj.

Animacin 6.2.2. Contador ascendente sincrnico de 4 bits

Nmero de pulsos Q3 Q2 Q1 Q0

...

...

...

...

...

15

16

Tabla 6.2.2. Estados del contador sincrnico ascendente

Se puede hacer un anlisis similar al anterior para entender el funcionamiento de este contador, sin embargo, observe que la secuencia de 3 bits es parte de la secuencia para 4 bits, as que solo basta agregar un flip-flop JK y una compuerta AND que ponga el flip-flop F3 en modo complemento cada vez que Q2, Q1 y Q0 son 1, para lograr que el contador genere finalmente la secuencia de la tabla 6.2.2. Al igual que el contador de propagacin de la leccin anterior, el contador sincrnico se puede modificar para cambiar su nmero MOD, mediante el uso de compuertas NAND y las entradas asincrnicas CLR de los flip-flops. En la Figura 6.2.3 se observa como se puede convertir este contador MOD16 a MOD10, agregando simplemente una compuerta NAND de dos entradas.

Figura 6.2.3. Componente adicional para convertir un contador MOD16 a MOD10

EJEMPLOS DE CONTADORES EN CIRCUITO INTEGRADO


En el comercio existen varios contadores en circuito integrado que aparte de realizar la funcin de generar secuencias binarias, tiene otras funciones adicionales que generalmente tienen que ver con la configuracin y modo de funcionamiento. Entre las funciones que se pueden encontrar en estos cirsuitos integrados se encuentran opciones de seleccin de secuencia ascendente o descendente, borrado as como inicializacin entre otras. A continuacin se presenta una lista de algunos contadores en circuito integrado de uso difundido en Electrnica Digital, con una descripcin detallada de sus pines.

Nombre

Imagen

Terminales

Descripcin

Contador Binario Decadal Up/Down

PE

(Preset Enable): Esta entrada se utiliza para cargar los datos Pi en las salidas Qi

P0...P3

(Presets): Entradas de fijacin. Se utilizan en forma conjunta con PE

Q0...Q3

(Quits): Salidas binarias

C.I'

(Carry In). Entrada para detener la secuencia. En 0 Cuenta, en 1 se detiene

C.O'

(Carry Out). Salida para indicar rebasamiento. 0 sin acarreo, 1 con acarreo

B/D

(Bin/Dec): Seleccin del tipo de funcionamiento. 1 Binario, 0 decadal

U/D

(Up/Down): Entrada de seleccin de secuencia. 1 Ascendente, 0 descendente

Vdd, Gnd

Alimentacin

Q1 ... Q13 RES Contador Binario (14 bits) INP

(Quits): Salidas Binarias (Reset): Entrada de Borrado (Input): Entrada Asincrnica para incremento del contador

Vdd, Gnd

Alimentacin

Q0 ... Q11 CLK RES Contador Binario (12 bits)

(Quits): Salidas binarias (Clock): Entrada de reloj (Reset): Entrada de Borrado

Vdd, Gnd

(Voltaje, Ground): Alimentacin

CLR' CLK A, B, C, D ENP, ENT LD'

Contador Decadal (4 bits)

(Clear): Entrada de borrado, en cero inicializa todas las salidas a cero (Clock): Entrada de Reloj Entradas de Datos Paralelo Entradas de Sostenimiento (Load'): Entrada de habilitacin de carga de datos. Se usa de forma conjunta con las entradas A, B, C, D

Contador Binario (4 bits)

QA, QB, QC, (Quits): Salidas QD Salida de Rebasamiento. Cuando el contador llega al RCO ltimo dgito se genera un acarreo (1) (Clear): Entrada de borrado, en cero inicializa todas CLR' las salidas a cero CLK (Clock): Entrada de Reloj A, B, C, D Entradas de Datos Paralelo ENP, ENT Entradas de Sostenimiento (load): Entrada de habilitacin de carga de datos. Se LD' usa de forma conjunta con las entradas A, B, C, D QA, QB, QC, (Quits): Salidas QD RCO Salida de Rebasamiento. Cuando el contador llega al

ltimo dgito se genera un acarreo (1) D0, D1, D2, D3 CTEN' D/U' Contador Decadal Up/Down (4 bits) Entradas Paralelo (Count Enable'): Entrada de habilitacin para el contador (Down/Up'): entrada de seleccin de la secuencia, ascendente o descendente

Q0, Q1, Q2, (Quits): salidas binarias Q3 (load): entrada de carga de los datos presentes en LD' D0...D3 (Max/\): salida de sealizacin de rebasamiento del contador. En 1 indica que hay carry al rebasar el M/m nmero 1001 en modo ascendente o cuando alcanza el 0000 en modo descendente. Salida de propagacin para conexin en cascada con RCO otros contadores CLK (Clock): entrada de reloj VDD, GND Alimentacin
Tabla 6.3.1. Contadores en Circuito Integrado

Se plantea como ejercicio, adquirir algunos de estos circuitos integrados comerciales. y verificar su funcionamiento.

CONTADOR EN ANILLO
El contador en anillo es un registro de corrimiento bsico en el que los datos no se pierden al desplazarce, en ves de ello la informacin rota debido a que los flip-flops de los extremos se encuentran interconectados, de tal forma que los datos se desplazan en forma de "anillo". En la Animacin 6.5.1 se observa la configuracin de un contador de este tipo y la forma en que se desplazan los datos entre flip-flops.

Animacin 6.5.1. Contador en Anillo

Asumiendo que el estado inicial del contador en anillo es 1000 (Q3=1, Q2=0, Q1=0, Q0=0), los estados que se presentaran en este contador seran los mostrados en la tabla 6.5.1. Despus del cuarto pulso en la seal del reloj el estado inicial se repite.

Pulso del Reloj Q3 Q2 Q1 Q0

Figura 6.5.1. Estados del Contador en Anillo

En el mercado existen contadores de este tipo en circuito integrado, sin embargo su contrucin es muy facil a partir de un registro de corrimiento convencional. Existe otro contador en anillo llamado contador Johnson, el cual tiene un funcionamiento similar al contador en anillo, excepto que el estado del ltimo flip-flop se realimenta al primero a travs de un inversor. En al figura 6.5.2 se observa el diagrama lgico de este contador.

Figura 6.5.2. Contador Johnson de 4 bits

Tomando como estado inicial del contador Johnson 0000 (Q3=0, Q2=0, Q1=0, Q0=0), los estados presentes en este contador seran los mostrados en la tabla 6.5.2. Note que durante el octavo pulso en la seal del reloj el estado inicial se repite.

Pulso del Reloj Q3 Q2 Q1 Q0

Figura 6.5.1. Estados del Contador Johnson

CIRCUITOS INTEGRADOS PARA RELOJES


Como hemos notado en los dos captulos anteriores los flip-flops, los contadores y los registros necesitan recibir una seal de reloj para poder cumplir su funcin en los circuitos secuenciales. Los circuitos mas conocidos para desempear la funcin de reloj son los llamados osciladores o generadores de pulso. Los osciladores son circuitos que cambian el estado de sus salidas permanentemente entre dos estados lgicos ( 1 lgico y 0 lgico). Por esta razn estos circuitos son tiles para generar seales de reloj para los Circuitos Secuenciales Sincrnicos. Existen varios osciladores que se pueden construir para generar seales de reloj, mediante el uso resistencias, condensadores, inversores y compuertas. En la Figura 6.6.1 se observan algunas configuraciones que se pueden implementar haciendo uso de estos elementos. El esquema de la figura 6.1.1 (a), es un circuito generador de pulsos sin rebote y opera de forma manual. En la posicin (1) la salida ser 0 lgico y cuando el interruptor se ubica en la posicin (2) la salida es 1 lgico. En las figuras (b) y (c) se muestran dos circuitos generadores de pulso que se pueden implementar usando inversores y compuertas. La frecuencia de oscilacin ed setoas circuitos depende bsicamente de los valores de la resistencia y el condensador. Para este tipo de circuitos se recomienda el uso de circuitos CMOS de la serie B, ya que estos tienen tiempos de conmutacin menores.

Figura 6.6.1. Circuitos generadores de clock

A continuacin se estudiaran dos tipos de osciladores cuyo uso es muy difundido en Electrnica Digital. Se mencionaran los aspectos bsicos sobre su montaje sin tratar de explicar su funcionamiento, dejando como ejercici para el estudiante analizar su operacin. Oscilador con Disparador de Schmitt

En la Figura 6.6.2 se observa la configuracin de este oscilador. La salida V o es una onda aproximadamente cuadrada y su forma depende de los valores de R y C. En la Tabla 6.1.1 se observa la relacin entre los valores de R y C con la frecuencia para tres tipos de integrados con inversores tipo Schmitt, junto con los rangos de valores que debe tener R para que el circuito oscile.

Figura 6.6.2. Oscilador con disparador de Schmitt

Integrado Frecuencia Valor de R

7414

0.8/RC

R 500

74LS14

0.8/RC

R 2

74HC14

1.2/RC

R 10

Tabla 6.6.1. Frecuencia de oscilacin segn R y C

Multivibrador astable con CI-555 El CI-555 es un dispositivo de tecnologa TTL que funciona de varios modos. En la Figura 6.6.3 observamos la manera de conectar los componentes al Circuito Integrado de forma que opere como un Multivibrador Astable. La frecuencia de oscilacin de la seal de salida depende de los valores de las resistencias RA, RB y C.

Figura 6.6.3. Multivibrador astable con CI-555

La seal de salida de este circuito es una onda cuadrada de las caractersticas que se indican en la Figura 6.6.4, donde los tiempos t1 y t2 estn dados por las siguientes expresiones:

Figura 6.6.4. Seal de salida del CI-555

El periodo y al frecuencia de esta senal estan dados por:

Para que el circuito oscile es necesario que se se cumplan ciertos rangos para los valores de las resistencias y el condensador, los cuales se relacionan a continuacin.

REGISTROS DE CORRIMIENTO
En el procesamiento digital de datos se necesita con frecuencia retener los datos en ciertas ubicaciones intermedias del almacenamiento temporal, con el objeto de realizar algunas manipulaciones especificas, despus de las cuales los datos modificados se pueden enviar a otra localizacin similar. Los dispositivos digitales donde se tiene este almacenamiento temporal se conocen como registros de corrimiento o registros de desplazamiento. Dado que la memoria y el desplazamiento de informacin son sus caractersticas bsicas, los registros son circuitos secuenciales constituidos por flip-flops, donde cada uno de ellos maneja un bit de la palabra binaria. Por lo general se da el calificativo de registro a un conjunto de 8 o mas flip-flops. Muchos registros usan flip-flops tipo D aunque tambin es comn el uso de flip-flops JK. Ambos tipos pueden obtenerse sin dificultad como unidades comerciales. Son muy populares los de 8 bits, ya que en los computadores con frecuencia manipulan bytes de informacin. Registro de Corrimiento Bsico Un registro de corrimiento bsico es un conjunto de flip-flops conectados de tal forma que los nmeros binarios almacenados en l son desplazados de un flip-flop al siguiente con cada pulso de reloj aplicado. En la Interatividad 6.4.1 se observa la forma de conectar 4 flip-flops tipo D para construir un registro. Note como la salida de un flipflop se conecta a la entrada de otro adyacente. Haga click sobre "1" o "0" para ingresar los datos al registro.

Interacitvidad 6.4.1. Registro de corrimiento bsico

Con cada flanco ascendente del reloj la informacin se va desplazando hacia la derecha una posicin. En la Figura 6.4.2 se observan las formas de onda de las salidas de cada flip-flop, donde se observa el desplazamiento de los datos de izquierda a derecha.

Figura 6.4.2. Formas de onda de un registro de 4 bits

Tipos de Entradas y Salidas en los Registros de Corrimiento Exiten diversas formas de cargar o extraer informacin en un registro de corrimiento. En la figura 6.4.3 se muestran las distintas formas de mover la informacin en un registro de corrimiento.

Figura 6.4.3. Tipos de Entradas y Salidas en los registros de corrimiento

Las combinaciones de Entrada/Salida mas comunes en los registros de corrimiento son: Entrada Serie/Salida Paralelo y Entrada Paralelo/Salida Serie. A continuacin se dar una descripcin sobre estos dos modos de funcionamiento. Entrada Serie - Salida Paralelo Es la forma mas usual del tipo de entrada y salida de datosen los registros de corrimiento. En la Figura 6.4.4 se observa el esquema de un registro de esta clase. La entrada asincrnica CLR que se observa, es usada para poner todos los bits del registro en 0. Existen circuitos integrados como el 74HC164 que funcionan de esta forma.

Figura 6.4.4. Registro de corrimiento Entrada serie - Salida paralelo

Entrada paralelo Salida serie En la Figura 6.4.5 se observa el esquema de un registro de este tipo. LOAD: Las entradas en paralelo se almacenan en los flip-flops internos (entrada asincrnica), SHIFT: Corrimiento del puerto hacia la derecha (entrada sincrnica), entrada serie por el primer flip-flop y salida serial por el ltimo. Existen circuitos integrados como el 74HC165 que funcionan con base en este esquema.

Figura 6.4.5. Registro de corrimiento Entrada paralelo - Salida serie

Registros de corrimiento bidireccionales Este tipo de registro tiene la opcin de elegir la direccin en que se transmiten los datos. Estos registros tienen una seal de control que permite seleccionar el sentido de desplazamiento de los datos. En la Figura 6.4.6 se observa el circuito lgico de un registro bidireccional de 4 bits.

Figura 6.4.6. Registro de corrimiento bidireccional de 4 bits

Para propsitos de entender el funcionamiento de este registro se ha dispuesto de forma vertical, para mostrar como se despalzan los datos. Cuando la entrada ABA/ARR' se encuentra en 1 lgico, los datos se desplazan hacia abajo y cuando esta es 0 lgico los datos se desplazan hacia arriba. Cuando la seal de control ABA/ARR' es 1, las compuertas marcadas con A se activan, permitiendo que el dato de cualquier flip-flop pase al flip-flop inmediatamente inferior despus de que ocurra una transicin positiva en la seal del reloj, de esta forma la informacin de desplaza por las lneas marcadas en azul ques e se observan en la figura 6.4.6. Cuando la seal de control ABA/ARR' es 0, las compuertas marcadas con B se activan y el dato de cualquier flipflop se pasa al flip-flop inmediatamente superior. Las lneas marcadas en rojo en la figura 6.4.6 indican el canal de transmisin de los datos de un flip-flop a otro para esta condicin. Note que las compuertas marcadas como A y B se activan de forma complementaria, es decir, mientras se activan aquellas marcadas como A las marcadas como B se encuentran inactivas y viceversa. Registros en Circuito Integrado En el mercado exiten actualmente varios circuitos integrados que desempean su funcin como registros, en esta seccin mencionaremos algunos de estos registros disponibles en lgica TTL y CMOS. Circuito Integrado 74HC373 Este integrado contiene 8 Cerrojos tipo D con salidas triestado. En la figura 6.4.7 se observa el esquema de conexiones interno y la descripcin de sus entradas y salidas es la siguiente: D0...D7: Entrada paralelo Q0...Q7: Salida paralelo

LE: Latch Enable OE: Output Enable

Figura 6.4.7. Diagrama Lgico del CI74HC373

Circuito Integrado 74HC374 Este circuito integrado contiene 8 Flip-Flops tipo D con salidas triestado sensibles al flanco de subida de la seal del Reloj. En la figura 6.4.8 se muestra la estructura interna de este registro y su diferencia con el anterior Circuito Integrado es que este contiene flip-flops.

Figura 6.4.8. Diagrama lgico del CI74HC374

Circuito Integrado 74HC273 Este integrado contiene 8 flip-flops tipo D con salidas triestado sensibles al flanco de subida de la seal del reloj, adicionalmente tiene una entrada para borrar activa en bajo ( CLR'). En la figura 6.4.9 se observa el diagrama de pines de este integrado y el tabla 6.4.1 los estados lgicos.

Figura 6.4.9. Esquema del CI-74HC273

CLEAR CLK D

X 0

1 1

0 0

X Q0

Tabla 6.4.1. Descripcin de las entradas del CI-74HC273

Aplicaciones de los Registros de Corrimiento Los registros de corrimiento tiene varias aplicaciones en la Electrnica Digital, entre las cuale se pueden mencionar las siguientes: Transmisin de datos. Conversin de protocolo serie en paralelo y viceversa.

Puertos de salida de los microcomputadores. Secuenciadores (luces y anuncios publicitarios). Multiplicaciones y divisiones por 2, 4, 8, 16 bits. Operaciones que se hacen en forma secuencial.

ANLISIS Y DISEO DE CIRCUITOS SECUENCIALES


El Anlisis y Diseo de Circuitos Secuenciales se encuentra estrechamente relacionado con el control secuencial, denominado tambin control lgico o control binario. En los sistemas de control secuencial las entradas y las salidas son de tipo binario y determinan una serie de pasos para la operacin de un proceso. Las entradas por lo general son: pulsadores, interruptores, microinterruptores, fines de carrera o detectores de proximidad. Las salidas pueden ser: Vlvulas solenoides, cilindros neumticos, contactores para arranque y parada de motores, pilotos de sealizacin, alarmas, etc. Cuando el sistema de control secuencial es pequeo se realiza con circuitos digitales combinatorios y secuenciales. Cuando es grande se realiza con PLCs (Controladores Lgicos Programables), microcomputadores, microprocesadores especiales para control secuencial y por software en PC. En este capitulo se mostraran las metodologas bsicas para el Diseo de Circuitos Secuenciales y su aplicabilidad en dispositivos secuenciales para funciones especficas.

TEORA DE MQUINAS DE ESTADO (FSM)


La teora de mquinas de estado es el nombre con el que se conocen los mtodos de Anlisis y Diseo de Circuitos Secuenciales Sincrnicos. Esta leccin constituye una introduccin al tema del captulo, donde se definir lo que son las mquinas de estado y los conceptos bsicos para entender la metodologa de Anlisis y Diseo de Circuitos Secuenciales.

Las mquinas de estado son circuitos secuenciales que se encuentran constituidos por una etapa combinacional y una etapa de memoria, relacionadas de tal forma que conforman un sistema secuencial para algn propsito especial. Los registros y contadores con entradas asincrnicas son ejemplos de este tipo de sistemas secuenciales.

MQUINAS DE ESTADO DE MEALY Y MOORE


Los circuitos secuenciales se clasifican dentro de una categora conocida como mquinas de estado, de la cual se distinguen comnmente dos tipos:

Mquina de Mealy: En esta mquina de estados las salidas se encuentran determinadas por el estado interno del sistema y por las entradas no sincronizadas con el circuito. El diagrama de bloques representativo de esta mquina se muestra en la figura 7.1.1. donde se observa que las salidas del sistema son tanto sincrnicas como asincrnicas.

Figura 7.1.1. Maquina de estados de Mealy

Mquina de Moore: Las salidas solo dependen del estado interno y de cualquier entrada sincronizada con el circuito, como se observa en la figura 7.1.2. donde las salidas del sistema son unicamente sincrnicas. Un ejemplo de este tipo de mquinas de estado son los contadores (ver captulo 6).

Figura 7.1.2. Maquina de estados de Moore

Los circuitos secuenciales se caracterizan por tener una etapa combinacional y otra de memoria conformada por flip-flops. En la figura 7.1.3. se puede observar un ejemplo particular de este tipo de circuitos, el cual corresponde a una Maquina de estado de Mealy. Observe que hay salidas que dependen de la etapa de memoria y hay una salida que depende directamente de la etapa combinatoria.

Figura 7.1.3. Circuito Secuencial de ejemplo

Con base en el circuito de la figura 7.1.3. se dar una descripcin de las herramientas bsicas que son empleadas para el Anlisis y Diseo de Circuitos Secuenciales. Entre estas herramientas se encuentran las ecuaciones lgicas, las los diagramas de estado, las tablas de estado, las tablas de transicin y los mapas de Karnaugh. Ecuaciones Lgicas Las ecuaciones lgicas son funciones que definen la relacin existente entre los estados de entrada y los estados de salida del sistema. Para determinar las ecuaciones lgicas de la mquina de estados de la figura 7.3.1. inicialmente se deben identificar los estados siguientes. Estos estados corresponden a aquellos que ocurren despus de una transicin en la seal de reloj de los flip-flops. Recuerde que para los flip-flops tipo D el estado siguiente (Qi+1) es igual al estado de la entrada D. Teniendo en cuenta lo anterior las ecuaciones lgicas para los flip-flops A y B del circuito de la figura 7.1.3 seran las siguientes: A = DA = AX + BX B = DB= AX La salida Y esta dada por: Y = (A + B)X Observando esta ltima ecuacin se concluye que la salida (Y) es funcin del estado presente del sistema (A y B) y de la entrada asincrnica (X). Las ecuaciones lgicas en los circuitos secuenciales tienen una estructura formada por dos clases de estados:

Los estados siguientes, los cuales se agrupan al lado izquierdo de la expresin y representan las variables dependientes del sistema. El estado de estas variables cambia en el momento que ocurra un transicin en la seal de reloj. Los estados actuales y entradas del sistema. Agrupados al lado derecho de la exprexin, constituyen las variables inpendientes, las cuales pueden o no cambiar en sincrona con el sistema.

Cuando las ecuaciones de estado contienen varios trminos, se pueden simplificar empleando metodologas de reduccin de trminos como Algebra de Boole, Mapas de Karnaugh, o mediante el Algoritmo de Quine-McCluskey , las cuales fueron presentadas en el Capitulo 2. Tablas de Estado Una tabla de estado es un listado que contiene la secuencia de los estados de entradas, estados internos y salidas del sistema, considerando todas las posibles combinaciones de estados actuales y entradas. Las tablas de estado por lo general se divididen en tres partes: estados actuales, estados siguientes y salidas, tal como se muestra en la tabla 7.1.1.

Estados actuales Entrada Estados siguientes Salida

Tabla 7.1.1. Tabla de estado (circuito Figura 7.1.3)

La tabla de estado para un circuito secuencial con m flip-flops y n entradas tiene 2m+n filas. El estado siguiente tiene m columnas, y el nmero de columnas depende del nmero de salidas. Existe una forma mas conveniente de organizar la informacin en la tabla de estado, la cual se muestra en la Tabla 7.1.2, donde los estados se agrupan de tal modo que la tabla se puede traducir a un diagrama de estados. Al igual que la tabla anterior esta tiene tres secciones: estados actuales, estado siguientes y salidas, sin embargo los estados se agrupan dependiendo del valor de las entradas. La seccin de estados actuales agrupa los estados que ocurren antes de una transicin en la seal de reloj, la seccin de estados siguientes lista aquellos que ocurren despus de la transicin del reloj y la seccin de salidas rene los estados que se dan en el mismo instante de los estados actuales.

Estado Siguiente Estado Actual X=0 X=1

Salida

X=0 X=1

AB

AB

AB

00

00

01

01

00

11

10

00

10

11

00

10

Tabla 7.1.2. Tabla de estado (forma simplificada)

Haciendo un anlisis de la operacin del circuito de la figura 7.1.3. se puede observar lo siguiente: Cuando la variable X=0 los estados actuales A y B cambian a 0 despus de la transicin de reloj , y cuando X=1, los estados de las salidas se comportan tal como se resume en la tabla 7.1.2. Se plantea como ejercicio verificar la informacin de la tabla. Diagramas de Estado Un diagrama de estados es una representacin grfica que indica la secuencia de los estados que se presentan en un circuito secuencial, teniendo en cuenta las entradas y salidas. El diagrama se forma con crculos y lneas. Los circulos representan los estados del circuito secuencial y cada uno de ellos contiene un nmero que identifica su estado. Las lneas indican las transiciones entre estados y se marcan con dos nmeros separados por un (/), estos dos nmeros corresponden a la entrada y salida presentes antes de la transicin. A manera de ejemplo observe la lnea que une los estados 00 y 01 en el diagrama de estado de la figura 7.1.4. Esta lnea marcada como 1/0 indica que el circuito secuencial se encuentra en el estado 00 mientras la entrada X=0 y la salida Y=0, y que despus de que ocurra una transicin en la seal de reloj el estado cambia a 01.

Figura 7.1.4. Diagrama de estados correspondiente a la Tabla 7.1.2

Las lneas que salen y regresan al mismo crculo indican que no hay cambio en el estado, cuando se presentan la entrada y salida indicados. Tablas de Transicin de flip-flops Las tablas de transicin se usan en conjunto con las de estado y representan la tabla de verdad de los flip-flops con los cuales se desea implementar el circuito secuencial. La tabla contiene los estados actuales y siguientes segn el estado de las entradas de los flip-flops. La tabla 7.1.3 corresponde a la tabla de transicin del flip-flop JK.

Transiciones de Salida Entradas al flip-flop

Qi

Qi+1

Tabla 7.1.3. Tabla de transicin del flip-flop JK

En la tabla, Qi corresponde al estado actual y Qi+1 al estado siguiente, J y K son las entradas de los flip-flops. La informacin sombreada en la tabla se interpreta de la siguiente forma: cuando el estado presente de la salida Q=0 y las entradas J=1 y K=X (X indica una condicin de no importa, 1 o 0), despus de un pulso de reloj en el flipflop la salida cambia al estado siguiente Q=1. Mapas de Karnaugh Generalmente la tablas de estado y de transicin de los flip-flops se fusionan en una sola para agrupar la informacin de tal forma que permitan construir los Mapas de Karnaugh para simplificar las funciones lgicas. La tabla 7.1.4 corresponde a una tabla de estado de un contador de tres bits con flip-flops JK. Observe que esta tabla incluye las entradas J y K para cada una de la transiciones (estado actual a estado siguiente). Las regiones sombreadas en la tabla indican que el estado Qi cambia estando presentes las entradas Ji y Ki correspondientes despus de una transicin del reloj.

Estado Actual Estado Siguiente Entradas de los flip-flop

Q2 Q1

Q0

Q2

Q1

Q0

J2 K2 J1 K1 J0 K0

Tabla 7.1.4. Tabla de estado y transicin de un contador de 3 bits

Los Mapas de Karnaugh se emplean para definir la lgica de las entradas de los flip-flops y se debe hacer uno para cada una de las entradas. La figura 7.1.5 corresponde al Mapa de karnaugh de la entrada J1. de la tabla de estado 7.1.4.

Figura 7.1.5. Mapa de Karnaugh para el estado J1

Observe que cada celda en el mapa representa uno de los estados actuales de la secuencia en la tabla de estado. Una vez asignados todos los estados posibles a cada celda en el Mapa de Karnaugh se procede a simplicar y deducir las exprexiones lgicas. En la figura 7.1.5 se observa que la expresin correspondiente a la entrada J1 es: J1 = Q0 Esta expresin indica que en el circuito lgico la salida Q0 debe ir conectada a la entrada J1. En la siguiente leccin se explicara de una forma detallada el procedimiento para el Diseno de Circuitos Secuenciales.

ANLISIS Y DISEO DE CIRCUITOS SECUENCIALES SINCRNICOS


La gran mayora de los circuitos digitales contienen flip-flops y compuertas para realizar funciones especficas. El diseo de estos circuitos inicia a partir de las especificaciones y finaliza con las funciones lgicas, de las cuales se obtiene el circuito lgico. Inicialmente se debe crear una tabla de estado o representacin equivalente, para identificar la secuencia de estados que deseada. Luego de seleccionar el nmero y tipo de flip-flops con los cuales se desea hacer el diseo, se deduce la lgica combinatoria necesaria para generar la secuencia de estados. Los circuitos secuenciales se pueden analizar y disear siguiendo un procedimiento claramente definido que consiste en los siguientes pasos: 1. 2. 3. 4. 5. Asignacin de estados Construccin del diagrama de transicin Elaboracin de la tabla de estados Obtencin de ecuaciones o funciones lgicas Realizacin de circuitos lgicos

Para explicar este mtodo se desarrollar un ejemplo aplicado a un diseo particular. Ejemplo Disear el circuito secuencial del proceso que se cumple de acuerdo al diagrama de estados de la figura 7.2.1. Paso 1. Asignacin de estados Este proceso tiene cuatro estados, una entrada y no tiene salidas (se pueden considerar como salidas las de los flip-flops). Para representar los cuatro estados se usarn dos flip-flops identificados como A y B de tipo JK. y la entrada ser identificada como X.

Figura 7.2.1. Diagrama de estados

Paso 2. Contruccin del diagrama del transicin o de estado La figura 7.2.1 corresponde al diagrama de transicin. Analizando este diagrama se observa que el estado 10 se mantiene mientras X=0 y en el momento que X=1 pasa al estado 11, despus al estado 00 y finalmente al estado 01, hasta el momento que nuevamente X=0, volviendo de esta forma al estado AB=10. Adicionalmente observe que los estados 00 10 y 11, se mantienen cuando X=0 y el estado 01 se mantiene cuando X=1. Paso 3. Elaboracin de la tabla de estados A partir del diagrama de estados y de la tabla de transcin del flip-flop JK se puede contruir la tabla de estados (ver tabla 7.2.1).

Entrada Estado Actual Estado Siguiente Excitaciones

JA K A JB K B

Tabla 7.2.1. Tabla de estado

Para la simplificacin de los circuitos combinatorios es conveniente que se presenten condiciones de "no importa", ya que estas permiten simplicar las funciones lgicas y por tanto el tamao del circuito lgico. Paso 4. Obtencin de ecuaciones o funciones lgicas. En este paso se obtienen las funciones lgicas para las entradas de los flip-flops (JA, KA, JB y KB) y el objetivo es deducir la lgica combinatoria de estado siguiente, mediante el uso de Mapas de Karnaugh. A continuacin en la figura 7.2.2. se muestran los Mapas de Karnaugh y las funciones lgicas correspondientes.

Figura 7.2.2. Mapas de Karnaugh para las entradas JA , JB, KA y KB

Paso 5. Realizacin de circuitos lgicos Este es el ultimo paso del diseo, y consiste en implementar la lgica combinacional a partir de las ecuaciones lgicas obtenidas en el paso anterior para las entradas J y K de los flip-flops. Las conexiones correspondientes, se efectan mediante el uso de compuertas e inversores y en la figura 7.2.3. se muestra el diseo final del circuito lgico.

Figura 7.2.3. Circuito Lgico del Diseo

Diseo de Circuitos Secuenciales con flip-flops D El diseo del circuito de la figura 7.2.3 se hizo con flip-flops JK. En esta seccin veremos como se realiza el diseo de circuitos secuenciales mediante el uso de flip-flops tipo D. A diferencia de las entradas de los flip-flops JK, las entradas en los flip-flops D corresponden exactamente a los estados siguientes. Por esta razn en la tabla de estado no se requiere una columna independiente para las excitaciones. En el siguiente ejemplo se ver como realizar el diseo de circuitos secuenciales con flip-flops D.

Ejemplo Realizar el diseo del circuito lgico correspondiente a la tabla de estado 7.2.2. Observe que esta tabla es la misma del ejemplo anterior, pero adicionamente se agreg una salida ( Y).

Entrada Estado actual Estado siguiente Salida

A(DA)

B(DB)

Tabla 7.2.2. Tabla de estado

Paso 1. Asignacin de estados Este proceso al igual que el ejemplo anterior tiene cuatro estados de dos bits (AB), una entrada (X) y una salida (Y). Para representar los cuatro estados se usarn dos flip-flops D identificados como A y B. Paso 2. Construccin del diagrama del transicin o de estado El diagrama de transicin es el mismo del ejemplo anterior, excepto que ahora se tiene en cuenta la salida ( Y). En la figura 7.2.4 se observa el diagrama de estado.

Figura 7.2.4. Diagrama de estados - Ejemplo 2

Paso 3. Elaboracin de la tabla de estado. Para este ejemplo inicialmente se di la tabla de estados, la cual se observa en la tabla 7.2.2. Paso 4. Obtencin de ecuaciones o funciones lgicas. En este paso se deben obtener las funciones lgicas para las entradas de los flip-flops (DA, DB) y la salida (Y). En la figura 7.2.5 se muestran los Mapas de Karnaugh y las funciones lgicas correspondientes.

Figura 7.2.5. Mapas de Karnaugh para las entradas DA , DB, y Y

Paso 5. Realizacin de circuitos lgicos Con las ecuaciones lgicas obtenidas en el paso anterior se puede implementar el circuito lgico. Las conexiones correspondientes, se efectan mediante el uso de compuertas e inversores y en la figura 7.2.6 se muestra el diseo del circuito.

Figura 7.2.6. Circuito Lgico

Estados no usados Durante el diseo de los circuitos secuenciales para simplificar las representaciones lgicas, es conveniente emplear los estados no usados como condiciones que no importa. Estos estados se identifican con una ( X) en los Mapas de Karnaugh. Para ilustrar como emplear estos estados, observe la tabla 7.2.3. Teniendo en cuenta todas las posibles combinaciones de las variables A, B, C y X, Note que en esta tabla hay seis estados que no estn presentes ( 0000, 0001, 1100, 1101, 1110 y 1111) . Las seis filas de la tabla correspondientes a estos estados se identifican como estados X (1 o 0) o condiciones de "No importa"

Estado actual Entrada Estado siguiente

Excitaciones

Salida

JA KA JB KB JC KC Y

, al momento de elaborar los Mapas de Karnaugh.


Tabla 7.2.3. Tabla de estado - Condiciones de "no importa"

Los mapas de karnaugh correspondientes a las entradas de cada flip-flop (JA, KA, JB, KB, JC y KC) y la salida (Y), se muestran en la figura 7.2.7. Observe que en cada mapa los estados resaltados en rojo corresponden a los estados no usados, los cuales se han incluido como condiciones "no importa" para simplificar la mayor cantidad de variables en las expresiones.

Figura 7.2.7. Mapas de Karnaugh para las entradas a los flip-flops

Como conclusin sobre esta seccin, podemos decir que es recomendable incluir los estados no usados en el diseo de los circuitos secuenciales. Esto implica una reduccin en las expresiones lgicas y por consiguiente en el tamao del circuito, que en otros trminos representar obviamente un menor tiempo de desarrollo y costo de implementacin. Se plantea como ejercicio hacer el diagrama lgico correspondiente a las ecuaciones halladas a partir de los mapas de Karnaugh de la figura 7.2.7 y hacer el diseo del circuito secuencial sin tener en cuenta los estados no usados para comparar los dos casos y notar las diferencias. Para mas informacin sobre simplificacin de funciones lgicas ver la Leccin 4. Mapas de Karnaugh.

ANLISIS DE CIRCUITOS SECUENCIALES ASINCRNICOS


El anlisis de Circuitos Asincronicos es similar al analisis de los circuitos sincrnicos, sin embargo estos circuitos requieren un tratamiento particular, debido a que no existen pulsos de reloj, como referencia de tiempo para controlar los cambios de estado. En los Circuitos Cecuenciales Asincrnicos las variables de entrada actuan directamente sobre el sistema, es decir que un cambio en tales variables produce un cambio sobre el estado interno. Los Circuitos Secuenciales Asincrnicos se clasifican dependiendo del tipo de entradas o del cambio en el tiempo de las estas, en dos grupos: los Circuitos Asincrnicos en Modo Fundamental y los Circuitos Asincrnicos en Modo Pulso. Circuitos Asincronicos Activados por Nivel (Modo Fundamental) Los circuitos asincrnicos operando de esta forma fueron los primeros que se implementaron en los inicios del anlisis de los sistemas secuenciales en Electrnica Digital y se encuentran constituidos por un sistema combinacional, donde algunas de sus salidas se unen a las entradas formando lazos de realimentacin. En la figura 7.3.1 se observa un diagrama de bloques descriptivo de este tipo de sistemas secuenciales.

Figura 7.3.1. Diagrama de bloques de un Circuito Asincrnico Activado por Nivel

Veamos la descripcin y caractersticas de este esquema.

La variable t representa el tiempo de retardo mnimo para que ocurra una transicin y corresponde al retardo que ocurre cuando una seal viaja a travs de una o ms compuertas del circuito secuencial. En este tipo de sistemas secuenciales no se permiten cambios en forma simultnea en las variables de entrada, debido a la posible ocurrencia de estados indeterminados en las salidas. Se pueden presentar estados estables e inestables. Los estables son aquellos en los que el valor de estado presente es igual al estado siguiente, y los inestables son aquellos en los que el valor del estado presente es diferente al estado siguiente. Las variables en minscula (yn) corresponden a las variables secundarias en el instante t (Yt), y las variables en mayscula corresponden a las variables secundarias en el instante t+1 (Yt+1).

Para observar los fenmenos que pueden ocurrir en este tipo de sistemas, a continuacin se describe un procedimiento para analizar los estados lgicos, el cual se desarrolla en los siguientes pasos: 1. 2. Hallar las ecuaciones lgicas para las variables de excitacin y salida del circuito. Elaborar los mapas de Karnaugh para los estados de las variables de excitacin y salida a partir de las ecuaciones halladas. Los mapas de Karnaugh contienen los estados secundarios versus los estados de salida. Localizar e identificar todos los estados estables e inestables en el mapa de Karnaugh de las variables de excitacin. Los estados estables ocurren cuando yt = Yt, y los estados inestables cuando yt Yt. Asignar un nombre (pueder ser un caracter) a cada fila de la tabla. Elaborar una tabla de flujo, reemplazando cada estado estable de excitacin con el mismo nombre que tiene asignado el estado secundario, as como el de los estados inestables. Para analizar la tabla de flujo, debern considerarse movimientos horizontales, cuando ocurran cambios en las entrada, y movimientos verticales cuando se dn transiciones de estados inestables a estados estables, sin cambio en las entradas.

3.

4. 5.

Para ilustrar el proceso de anlisis se desarrollar un ejemplo basado en el circuito de la figura 7.3.2.

Figura 7.3.2. Circuito Secuencial Asincrnico de ejemplo

Este circuito tiene dos variables de entrada (x1, x2), una variable de estado interno o secundaria (y) y una variable de salida o exitacin (Y=z).

Obtencin de las ecuaciones lgicas del circuito . Segn la lgica del circuito se deducen las siguientes expresiones para los estados de excitacin y salida. Comparando este circuito con el de la figura 7.3.1, se observa que la variable de excitacin corresponde a la variable de salida, por esta razn las expresiones son las mismas. Y = x1x2' + x2y z = x1x2' + x2y

Elaboracin de Mapas de Karnaugh para las variables de excitacin y salida. Partiendo de las expresiones lgicas anteriores y teniendo encuenta todas las posibles combinaciones de las variables x1, x2 y y se puede llegar al mapa de Karnaugh de la figura 7.3.3, el cual es el mismo para Y como para z.

Figura 7.3.3. Mapa de Karnaugh para estados de excitacin y salida

Esta tabla indica los cambios en el estado de la varible Y despus de un cambio en las entradas x1 y x2. A manera de ejemplo, observe el estado sombreado (1) en la figura 7.3.3, el cual indica que el estado actual Y=0 cambia a Y=1 cuando las entradas son x1=x2=1.

Localizacin de estados estables e inestables. De la figura 7.3.3 se pueden deducir las estados estables e inestables, basta observar si los estados actuales cambian al alterar las entradas. Teniendo en cuenta lo anterior se puede concluir que los estados inestables son aquellos que estan sombreados y los dems son estables, debido a que no hay cambios en el estado siguiente. Asignacin de nombres a cada fila de la tabla de excitacin . Las filas de la tabla sen identificadas como a y b para identicar los estados 0 y 1 de la variable Y. Tabla de flujo o transicin de estados lgicos. Teniendo en cuenta que los estados de las entradas no deben tener cambios simultaneamente, en la figura 7.3.4 se muestra la tabla de flujo, donde se observa la transicin de estados a y b segn el estado de las entradas.

Figura 7.3.4. Flujo de estados

Circuitos Asincronicos Activados por Pulso (Modo Pulso) Los circuitos asincrnicos operando de este modo son similares a aquellos que operan en modo fundamental, excepto que las seales de entrada corresponden a pulsos que se ocuren de forma asncrnica. en la figura 7.3.5 se observa un diagrama de bloques ilustrativo sobre este tipo de sistemas.

Figura 7.3.5. Circuito Asincrnico Activado por Pulsos

Un circuito secuencial activado por pulsos, se caracteriza por cumplir las siguientes condiciones:

Como mnimo, una de las entradas debe ser un pulso.

Los cambios en los estados internos ocurren nicamente por la presencia de un pulso en las terminales de entrada. Cada estado de entrada, desencadena nicamente un cambio en el estado interno del circuito. No se permiten dos o ms pulsos en forma simultnea en las seales de entrada. En caso de incumplirse esta condicin la nica forma de analizar el circuito es con un diagrama de tiempos. Existen dos tipos de circuitos en esta modalidad de funcionamiento: La mquina de estados de Mealy y Moore (Ver Leccin 1. Teora de mquinas de estado (FSM))

Para entender el funcionamiento de este tipo de circuitos, se desarrollar un ejemplo con base en el circuito de la figura 7.3.6.

Figura 7.3.6. Circuito Asincrnico de Ejemplo

Para comenzar el anlisis considere que los pulsos de entrada ocurren en la secuencia que se observa en la figura 7.3.7. Note que los estados de las entradas son complementarios y las transiciones ocurren en instantes de tiempo diferentes, lo cual es una caracterstica particular de las entradas de estos sistemas secuenciales.

Figura 7.3.7. Secuencia de pulsos para x1 y x2

Para analizar el estado de las variables del circuito se deben deducir las expresiones lgicas para S, R y z. De la figura 7.3.6, se tiene: S = x1y' R = x2y z = x1y A partir de las expresiones lgicas se puede construir el diagrama de tiempos para las variables del circuito. En la figura 7.3.8 se observan las transiciones de los estados correspondientes a la secuencia de las seales de entrada.

Figura 7.3.8. Diagrama de tiempo del circuito de la figura 7.3.6

La figura 7.3.9 muestra los estados siguientes y los estados de salida de la forma "estado siguiente/estado salida" (y/z).

Figura 7.3.9. Estados de Excitacin y Salida

En la tabla no se tuvo en cuenta la columna correspondiente a la entrada x1x2=11, debido a que los circuitos secuenciales asincrnicos no admiten entradas activas de forma simultanea. Esta tabla de estados se puede simplificar aun mas debido a que el estado 00 no implica ningn cambio en los estados del circuito, as que la columna correspondiente se puede suprimir, sin alterar el anlisis. Teniendo presente esta condicin, la figura 7.3.9 se reduce a la figura 7.3.10. Observe que los estados de las entradas son complementarios, lo cual es caracterstico de una seal pulsada.

Figura 7.3.10. Estados de Excitacin y Salida

EJEMPLOS DE CONTROL SECUENCIAL


Los sistemas combinacionales y secuenciales tienen gran variedad de aplicaciones en la vida real. En la mayora de sistemas digitales encontrados en la prctica se incluyen elementos que memorizan la informacin, por lo cual se requieren de circuitos secuenciales. El objetivo de esta leccin consiste en dar aplicabilidad a la teora vista en este captulo, mediante dos ejemplos sencillos, con los cuales se harn uso de las herramientas de anlisis y diseo de circuitos secuenciales: la implementacin de un semforo y un control de un motor de pasos. Implementacin de un Semforo Construir el circuito lgico para un semforo que responda a la siguiente secuencia: Verde, Amarillo, Rojo y Rojo/Amarillo.

El semforo tiene cuatro estados, los cuales se pueden representar con 2 flip-flops, sin embargo para asignar el tiempo de duracin de cada estado se emplearan 3 flip-flops, de los cuales se pueden obtener 8 estados, cuyos tiempos se pueden distribuir de la siguiente forma:

Verde (3 ciclos) Amarillo (1 ciclo) Rojo (3 ciclos) Rojo-Amarillo (1 ciclo)

Donde cada ciclo representa una transicin en la seal de reloj. Observe que la duracin de la secuencia de los cuatro estados es de 8 ciclos. El primer paso para realizar el diseo consiste en asignar los estados lgicos, como se puede notar en la tabla 7.4.1. Esta asignacin de estados se puede hacer de forma libre y no necesariamente debe corresponder a una secuencia binaria, sin embargo, en este caso por comodidad sean establecido de esta forma para implementar el circuito con base en un contador sincrnico de tres bits.

Salidas de los flip-flops Salidas al Semforo Color Q2 Q1 Q0 V A R

Verde>

Amarillo

Rojo

Rojo-Amarillo

Tabla 7.4.1. Asignacin de estados

En la figura 7.4.1 se observa un contador sincrnico de tres bits construido con flip-flops JK, a partir del cual se realizar el diseo. El objetivo de hacer uso del contador es emplear sus salidas (Q 2, Q1 y Q0) para generar los estados de las variables V, A y R (Verde, Amarillo y Rojo) del semforo.

Figura 7.4.1. Contador de tres bits

El siguiente paso consiste en deducir la logica combinacional adicional para generar los estados de las variables V, A y R. Para ello se deben construir los mapas de Karnaugh y obtener las ecuaciones lgicas. En la figura 7.4.2 se muestran los mapas con las ecuaciones resultantes para cada variable.

Figura 7.4.2. Mapas de Karnaugh

Con las expresiones obtenidas solo resta agregar la lgica al contador de la figura 7.4.1. El diseo del final del circuito de muestra en la animacin 7.4.1.

Animacin 7.4.1. Circuito Lgico

Motor paso a paso operando en forma unipolar

Un motor de pasos es un tipo especial de motor diseado para rotar un determinado ngulo como respuesta a una seal en su circuito de control. Estos motores se utilizan en varios sistemas de control de posicin debido a la presicin que manejan. Este tipo de motor puede tener una o dos bobinas por fase. Los que tienen una bobina por fase se conocen como motores de tres hilos y los que tienen dos bobinas por fase se conocen como motores de devanado partido. Para este ejemplo se emplear un motor de fase partida, como el que se indica en la figura 7.4.3. Observe la foma en que debe ser conectado para hacer el control.

Figura 7.4.3. Motor de pasos de devanado partido

En este ejemplo se har el diseo del circuito de control para manejar cuatro pasos, los cuales corresponden a la posicin de los interruptores se indican en la tabla 7.4.2.

Estado de los interruptores Numero de paso S1 S2 S3 S4

ON

OFF

OFF

ON

ON

OFF

ON

OFF

OFF

ON

ON

OFF

OFF

ON

OFF

ON

Tabla 7.4.2. Secuencia de estados de los interruptores (4 pasos)

Los interruptores se pueden controlar de dos formas, ya sea con tiristores ( SCR's) o mediante el uso de relevos. En la figura 7.4.4 se observan las dos opciones para manejar los interruptores.

Figura 7.4.4. Interruptor por relevo y de estado solido

Observando la tabla 7.4.2, se puede notar que los estados de los interruptores S1 y S2, son complementarios, al igual que los interruptores S3 y S4, lo cual simplifica el diseo del circuito. El primer paso para realizar el diseo de la unidad de control, consiste en asignar los estados lgicos y seleccionar el tipo de flip-flop con el cual se implementar el circuito lgico. En la tabla 7.4.3 se relacionan los estados lgicos de las salidas y los estados de las entradas j y k de los flip-flops. Note que las variables S2 y S4 no se tuvieron en cuenta, debido a que sus estados son el complemento de S1 y S3 respectivamante.

Estado Actual Entrada Estado Siguiente Estadas de los flip-flops

S1

S3

S1

S3

J1

K1

J3

K3

Tabla 7.4.3. Tabla de estado

El siguiente paso consiste en construir los mapas de Karnaugh para los estados de los flip-flops (J1, K1, J3, K3). Tales estados se indican en los mapas de Karnaugh mostrados en las figura 7.4.5 con las ecuaciones lgicas correspondientes.

Figura 7.4.5. Mapas de Karnaugh

El ltimo paso del diseo consiste en construir el circuito lgico a partir de las ecuaciones lgicas obtenidas, el cual se muestra en la figura 7.4.6.

Figura 7.4.6. Diseo final del circuito lgico

Observe que los estados S2 y S4 no se tuvieron en cuenta en el diseo debido a que los flip-flops por defecto entregan en sus salidas una variable y su complemento.

PLD'S SECUENCIALES
En la mayora de las aplicaciones en electrnica digital se requiere del almacenamiento de informacin de forma temporal para efectuar operaciones lgicas. Debido a que los flip-flops tienen esta caracterstica, la gran parte de los PLDs existentes en el mercado tienen incorporados estos dispositivos en su estructura interna . Estos dispositivos lgicos se conocen como PLDs de registro y son empleados para construir mquinas de estado de propsito especial, adems de la ventaja que ofrecen para reducir el tamao de los circuitos. Se puede agregar que los PLDs facilitan el ruteado de las placas de circuito impreso debido a la libertad de asignacin que proporcionan, y adems permiten realizar modificaciones posteriores del diseo. Los PLDs secuenciales se componen de un arreglo programable de compuertas AND seguido de un arreglo fijo de compuertas OR, dispuestos de la misma manera que en los PLDs combinatorios. Su diferencia con los PLDs combinatorios se debe a que el estado de las salidas se almacena en flip-flops cuando se presenta un flanco activo en la seal de reloj del PLD.

En este capitulo veremos la arquitectura de algunos PLDs de uso general y ejemplos de programacin para aplicaciones particulares mediante el Programa ABEL.

ARQUITECTURA DE DIVERSOS PLD'S SECUENCIALES


En el captulo 4 vimos la descripcin y arquitectura de los PLD's combinatorios, en el cual se dieron los detalles sobre su estructura y funcionamiento. En esta leccin veremos la descripcin de algunos PLDs secuenciales de uso comercial. Los PLDs secuenciales se encuentran clasificados en dos tipos: "no reprogramables" y "reprogramables". A continuacin veremos estas dos categoras de PLDs y sus diferencias. PLDs no reprogramables En este tipo de PLD's es posible programar el arreglo de compuertas slo una vez, de tal manera que no es posible hacer modificaciones posteriores al estado de los fusibles, quedando nicamente operando con la lgica definida por las conexiones internas programadas. Estos dispositivos son conocidos por la sigla PAL (Programmable Array Logic). En la figura 8.1.1 se muestra un PLD secuencial PAL16R6. Este dispositivo tiene 20 pines, los cuales se distribuyen de la siguiente forma:

8 entradas principales (pines 2 a 9). 8 salidas (pines 12 a 19). 1 entrada de reloj (pin 1). 1 entrada de habilitacin (pin 11). 2 entradas de alimentacin (pines 10 y 20).

Este PLD tiene la posibilidad de obtener 10 entradas como mximo y 6 salidas de registro con flip-flop tipo D. En la Figura 8.1.1. se observa la estructura interna de este PLD, donde se puede notar lo siguiente:

Todos los flip-flops se encuentran conectados a una seal comn de reloj, como en los circuitos secuenciales sincrnicos. Cada una de las salidas de los flip-flops pasa por un buffer triestado cuya seal de habilitacin es comn para los dems buffers de las salidas. Existen dos pines especiales IO1 e IO8, los cuales son bidireccionales y se pueden configurar como entrada o como salida. Las salidas de los flip-flops retornar hacia el arreglo de compuertas, lo cual permite crear lazos de realimentacin, lo cual permite implementar contadores y registros.

En la tabla 8.1.1 se observa una lista de algunos PLDs secuenciales de uso general. Los PLDs PAL16XX indicados en la tabla tiene el mismo arreglo de compuertas de 16 variables. Los PLDs de la familia PAL20XX tienen un arreglo de compuertas similar con 20 variables. En la figura 8.1.2 se observan los esquemas lgicos de los PLDs relacionados en la tabla 8.1.1.

PLD

N de Entradas por pines compuerta AND

Entradas principales

Salidas combinacionales bidireccionales

Salidas tipo Salidas registro combinacionales

PAL16R4 20

16

PAL16R6 20

16

PAL16R8 20

16

PAL20R4 24

20

12

PAL20R6 24

20

12

PAL20R8 24

20

12

Tabla 8.1.1. Descripcin de PLDs secuenciales no reprogramables de uso general

Figura 8.1.2. Diagramas lgicos de PLDs secuenciales no reprogramables (Copyright 1999 by John F. Wakerly)

PLDs reprogramables Estos PLDs utilizan tecnologa EEPROM (Electrical Erasable Programmable ROM) y se conocen con el nombre de GALs (Generic Array Logic). Estos dispositivos a diferencia de los anteriores permiten modificar la disposicin interna de las conexiones de las compuertas despus de haber sido programados. En la Figura 8.1.3 se observa la arquitectura de una GAL16V8. Este dispositivo tiene 20 pines distribuidos de la siguiente forma:

8 entradas dedicadas (pines 2 a 9). 8 salidas de registro programables (pines 12 a 19). 1 entrada de reloj (pin 1). 1 entrada de habilitacin (pin 11).

2 entradas de alimentacin (pines 10 y 20).

Las salidas se pueden programar como salida secuencial o como salida combinacional dependiendo del estado de los fusibles de seleccin ubicados en la macrocelda lgica de cada salida. La macrocelda corresponde al conjunto de elementos agrupados en cada salida, incluyendo la compuerta OR).

Figura 8.1.4. Macroceldas lgicas para el PLD GAL16V8. (Copyright 1999 by John F. Wakerly).

Estas celdas son conocidas como OLMCs de la sigla en ingls Output Logic MacroCell y en la figura 8.1.4 se observa la estructura interna de una de estas celdas en sus dos configuraciones disponibles (salida secuencial y salida combinacional).

ARQUITECTURA DE DIVERSOS PLD'S SECUENCIALES

Figura 8.1.1. PLD secuencial PAL16R6. (Copyright 1999 by John F. Wakerly)

ARQUITECTURA DE DIVERSOS PLD'S SECUENCIALES

EJEMPLOS DE PROGRAMACIN DE PLDS SECUENCIALES


En el capitulo 4 se vieron las bases sobre la programacin de PLD's con CUPL. En esta leccin se indicarn algunos ejemplos para aplicaciones particulares desarrolladas en CUPL. Recordando lo visto en el captulo 4, en este lenguaje el cdigo fuente se dividide en tres partes: Encabezado, asignacin de pines de entrada y salida y ecuaciones lgicas. Los ejemplos ilustrados en esta leccin fueron tomados de algunos fabricantes que han desarrollado estos cdigos para aplicaciones particulares en sus dispositivos. Se plantea al estudiante analizar el cdigo de estos ejemplos para comprender la forma en que se pueden programar en CUPL. Ejemplo 8.2.1 - Uso de los flip-flop D en un PLD
Name Flops; Partno CA0002; Revision 03; Date 9/12/95; Designer G. Woolhiser; Company Assisted Technology, Inc.; Location None; Assembly None; Device P16R8; /****************************************************************/ /* */ /* This example demonstrates the use of D-type flip-flops, */ /* and flexibilty of expression with CUPL. The following */ /* are four implementations of a two bit counter. */ /* */ /****************************************************************/ /* Target Devices: PAL16R8, PAL16RP8, EP300 */ /****************************************************************/ Pin 1 = clock; Pin 2 = reset; Pin 11 = !enable; /* * Outputs: define outputs and output active levels */ Pin Pin Pin Pin 19 17 15 13 = = = = qa0; Pin 18 = qa1; qb0; Pin 16 = qb1; qc0; Pin 14 = qc1; qd0; Pin 12 = qd1;

/* * Logic: examples of two-bit counters using d-type flip-flops */ /* two-bit counter example no. 1 */ /* using software emulated exclusive or's */ qa0.d = !reset & !qa0; qa1.d = !reset & (qa1 $ qa0); /* two-bit counter example no. 2 */ /* using expanded exclusive or's */ qb0.d = !reset & (!qb0 & !qb1 # !qb0 & qb1); qb1.d = !reset & (!qb0 & qb1 # qb0 & !qb1); /* two-bit counter example no. 3 */ /* using bit fields on the right hand side of the equals sign */ field state = [qc1,qc0]; qc0.d = !reset & (state:0 # state:2); qc1.d = !reset & (state:1 # state:2);

/* two-bit counter example no. 4 */ /* using bit fields on the left hand side of the equals sign */ field q = [qd0,qd1]; q.d = !reset & ([!qd0,qd1] & [!qd1,!qd0] # [!qd0,!qd1] & [qd1,qd0]);

Ejemplo 8.2.2 - Contador Sincrnico de 8 bits con Cargue en Paralelo


Name Count8; Partno CA0008; Date 7/19/95; Revision 01; Designer Kahl; Company Assisted Technology; Assembly None; Location None; Device P20X8; /****************************************************************/ /* */ /* Octal Counter (74LS461) */ /* */ /* 8-bit synchronous counter with parallel load, clear, and */ /* hold capability. The LOAD operation loads the inputs */ /* (D7-D0) into the output register (Q7-Q0). The CLEAR */ /* operation resets the output register to all LOWs. The HOLD */ /* operation holds the previous value regardless of clock */ /* transitions. The increment function adds one to the output */ /* register when the CARRY-IN is true (!ci=LO), otherwise the */ /* operation is a hold. The CARRY-OUT is true (!co=LO) when */ /* the output register (Q7-Q0) is all HIGHs, otherwise false */ /* (!co=HI). */ /****************************************************************/ /** Allowable Target Device Types : PAL20X8 */ /****************************************************************/ /** Inputs **/ PIN PIN PIN PIN PIN 1 = clock ; /* Register Clock */ [2,11] = [instr0..1] ; /* Instruction Type Inputs */ [3..10] = [D0..7] ; /* Data Inputs */ 13 = !out_enable ; /* Register Output Enable */ 23 = !carry_in ; /* Carry-In Input */

/** Outputs **/ PIN 14 = !carry_out ; /* Carry-Out Output */ PIN [15..22] = [Q7..0] ; /* Register Outputs */ /** Declarations and Intermediate Variable Definitions **/ field instruction = [instr1..0]; /* Instruction Field */ clear = instruction:0 ; /* Operation Types */ hold = instruction:1 ; load = instruction:2 ; count = instruction:3 ; /** Logic Equations **/ carry_out = carry_in & !Q0.d = clear # (count !Q1.d = clear # (count !Q2.d = clear # (count !Q3.d = clear # (count !Q4.d = clear # (count !Q5.d = clear # (count !Q6.d = clear # (count !Q7.d = clear # (count [Q0..7]:& ; # hold) & !Q0 # hold) & !Q1 # hold) & !Q2 # hold) & !Q3 # hold) & !Q4 # hold) & !Q5 # hold) & !Q6 # hold) & !Q7

$ $ $ $ $ $ $ $

load load load load load load load load

& & & & & & & &

!D0 !D1 !D2 !D3 !D4 !D5 !D6 !D7

# # # # # # # #

count count count count count count count count

& & & & & & & &

carry_in carry_in carry_in carry_in carry_in carry_in carry_in carry_in

; & & & & & & &

Q0 ; [Q0..1]:& [Q0..2]:& [Q0..3]:& [Q0..4]:& [Q0..5]:& [Q0..6]:&

; ; ; ; ; ;

Ejemplo 8.2.3 - Contador Up/Down con Lmites


Name CYP_CNT; Partno CY7C330;

Revision 01; Date 02-25-95; Designer Joe Designer; Company Cypress Semiconductor; Location U1; Assembly COUNTER; Device P7C330; /* This design is an up/down counter with preloadable limits. The Lower limits are loaded into the dedicated input registers on the rising edge of LLC and the upper limits are loaded into the input registers found in the I/O macrocells on the rising edge of ULC. The counter begins counting upwards, when preloading is done, until the upper limit is reached, and then, begins counting downward. This design, because the equations are already minimized and in sum of products form, should only be compiled with the default minimization (-M1 flag). */ PIN 1 = CLK; /* Clock used for counting */ PIN 2 = LLC; /* Clock for preloading lower limit */ PIN 3 = ULC; /* Clock for preloading upper limit */ PIN [4..7] = [LL0..3]; /* Lower limit hold registers */ PIN [9..12] = [LL4..7]; PIN 13 = LPL; /* Lower limit preload indications */ /* Counter output registers. Pin assignments are based on the number of product terms are available on that pin. */ PIN PIN PIN PIN PIN PIN PIN PIN PIN PIN PIN 28 15 26 17 19 24 20 23 18 25 27 = = = = = = = = = = = CNT0; /* Also used for Upper limit loading CNT1; /* Also used for Upper limit loading CNT2; /* Also used for Upper limit loading CNT3; /* Also used for Upper limit loading CNT4; /* Also used for Upper limit loading CNT5; /* Also used for Upper limit loading CNT6; CNT7; UL6; /* Used for Upper limit loading */ UL7; /* Used for Upper limit loading */ UPL; 29 30 31 32 = = = = */ */ */ */ */ */

PINNODE PINNODE PINNODE PINNODE

UEQUAL; /* Upper limit has been reached */ PLDONE; /* Preloading has finished */ LEQUAL; /* Lower limit has been reached */ UP; /* Count direction */

PIN 16 = !RESET; /* Reset signal clears all registers */ PIN 14 = !CNTOE; /* I/O pin OE used for loading upper limit */ PINNODE PINNODE PINNODE PINNODE PINNODE PINNODE UL0.IMUX UL2.IMUX UL5.IMUX UL4.IMUX UL3.IMUX UL1.IMUX UL0 UL2 UL5 UL4 UL3 UL1 = = = = = = 45 46 47 48 49 50 = = = = = = = = = = = = UL0; UL2; UL5; UL4; UL3; UL1; /* /* /* /* /* /* Shared Shared Shared Shared Shared Shared input input input input input input MUX MUX MUX MUX MUX MUX definition definition definition definition definition definition */ */ */ */ */ */

CNT0.IOD; /* These definitions are used to */ CNT2.IOD; /* indicate which pin will be fed */ CNT5.IOD; /* through the share feedback MUX.*/ CNT4.IOD; CNT3.IOD; CNT1.IOD;

CNT0.IOD; CNT2.IOD; CNT5.IOD; CNT4.IOD; CNT3.IOD; CNT1.IOD;

UPL.CKMUX = ULC; LPL.CKMUX = LLC; RESET.CKMUX = LLC; [CNT0..5].CKMUX = ULC; /* Pin 3 will be used for upper preload */ [UL6..7].CKMUX = ULC; /* Pin 3 will be used for upper preload */

[LL0..7].CKMUX = LLC; /* Pin 2 will be used for lower preload */ [CNT0..7].SR = RESET.DQ; /* Count register will be reset with pin 16 */ [CNT0..7].OEMUX = CNTOE; /* Output enable will be controlled by pin 14 */ /* Count equations. Note how the use of the XOR terms significantly reduces the number of product terms that are needed. This allows this complex design to fit into the device. */ !CNT0.D = !CNT0 $ PLDONE # !LL0.DQ & LPL.DQ & CNT0 # !CNT0 & UL0 & UPL.DQ # LL0.DQ & LPL.DQ & !CNT0 # CNT0 & !UL0 & UPL.DQ ; !CNT1.D = !CNT1 $ !LL1.DQ & LPL.DQ & !PLDONE & CNT1 # LL1.DQ & LPL.DQ & !PLDONE & !CNT1 # UPL.DQ & !PLDONE & !UL1 & CNT1 # UPL.DQ & !PLDONE & UL1 & !CNT1 # CNT0 & PLDONE & !UP # !CNT0 & PLDONE & UP ; !CNT2.D = !CNT2 $ !LL2.DQ & LPL.DQ & CNT2 & !PLDONE # LL2.DQ & LPL.DQ & !CNT2 & !PLDONE # UPL.DQ & CNT2 & !UL2 & !PLDONE # UPL.DQ & !CNT2 & UL2 & !PLDONE # CNT0 & PLDONE & !UP & CNT1 # !CNT0 & PLDONE & UP & !CNT1; !CNT3.D = !CNT3 $ !LL3.DQ & LPL.DQ & !PLDONE & CNT3 # LL3.DQ & LPL.DQ & !PLDONE & !CNT3 # UPL.DQ & !PLDONE & !UL3 & CNT3 # UPL.DQ & !PLDONE & UL3 & !CNT3 # CNT0 & CNT2 & PLDONE & !UP & CNT1 # !CNT0 & !CNT2 & PLDONE & UP & !CNT1; !CNT4.D = !CNT4 $ !LL4.DQ & LPL.DQ & !PLDONE & CNT4 # LL4.DQ & LPL.DQ & !PLDONE & !CNT4 # UPL.DQ & !PLDONE & !UL4 & CNT4 # UPL.DQ & !PLDONE & UL4 & !CNT4 # CNT0 & CNT2 & PLDONE & !UP & CNT3 & CNT1 # !CNT0 & !CNT2 & PLDONE & UP & !CNT3 & !CNT1; !CNT5.D = !CNT5 $ !LL5.DQ & LPL.DQ & CNT5 & !PLDONE # LL5.DQ & LPL.DQ & !CNT5 & !PLDONE # UPL.DQ & CNT5 & !UL5 & !PLDONE # UPL.DQ & !CNT5 & UL5 & !PLDONE # CNT0 & CNT2 & PLDONE & CNT4 & !UP & CNT3 & CNT1 # !CNT0 & !CNT2 & PLDONE & !CNT4 & UP & !CNT3 & !CNT1; !CNT6.D = !CNT6 $ !LL6.DQ & LPL.DQ & !PLDONE & CNT6 # LL6.DQ & LPL.DQ & !PLDONE & !CNT6 # UPL.DQ & !PLDONE & CNT6 & !UL6.DQ # UPL.DQ & !PLDONE & !CNT6 & UL6.DQ # CNT0 & CNT2 & CNT5 & PLDONE & CNT4 & !UP & CNT3 & CNT1 # !CNT0 & !CNT2 & !CNT5 & PLDONE & !CNT4 & UP & !CNT3 & !CNT1; !CNT7.D = !CNT7 $ !LL7.DQ & LPL.DQ & CNT7 & !PLDONE # LL7.DQ & LPL.DQ & !CNT7 & !PLDONE # UPL.DQ & !UL7.DQ & CNT7 & !PLDONE # UPL.DQ & UL7.DQ & !CNT7 & !PLDONE # CNT0 & CNT2 & CNT5 & PLDONE & CNT6 & CNT4 & !UP & CNT3 & CNT1 # !CNT0 & !CNT2 & !CNT5 & PLDONE & !CNT6 & !CNT4 & UP & !CNT3 & !CNT1;

/* Direction of count */ UP.D = UP $ !UEQUAL & !UP & PLDONE # !LEQUAL & UP & PLDONE # UPL.DQ & !PLDONE & !UP # LPL.DQ & !PLDONE & UP; /* Has the lower limit been reached */ LEQUAL.D = LL6.DQ & !CNT6 # !LL7.DQ & CNT7 # LL7.DQ & !CNT7 # LL3.DQ & !CNT3 # !LL5.DQ & CNT5 # LL5.DQ & !CNT5 # !LL1.DQ & CNT1 # LL0.DQ & !CNT0 # !LL2.DQ & CNT2 # !LL4.DQ & CNT4 # LL4.DQ & !CNT4 # !LL0.DQ & CNT0 # LL1.DQ & !CNT1 # !LL6.DQ & CNT6 # !LL3.DQ & CNT3 # LL2.DQ & !CNT2; /* Has preloading finished */ PLDONE.D = !LPL.DQ & !UPL.DQ ; /* Has the upper limit been reached */ UEQUAL.D = !CNT6 & UL6.DQ # !UL7.DQ & CNT7 # UL7.DQ & !CNT7 # UL3 & !CNT3 # CNT5 & !UL5 # !CNT5 & UL5 # !UL1 & CNT1 # !CNT0 & UL0 # CNT2 & !UL2 # !UL4 & CNT4 # UL4 & !CNT4 # CNT0 & !UL0 # UL1 & !CNT1 # CNT6 & !UL6.DQ # !UL3 & CNT3 # !CNT2 & UL2;

Ejemplo 8.2.4 - Contador Up/Down de 16 bits


Name Tcounter; Partno CA0020; Date 6/9/95; Revision 01; Designer Kahl; Company Personal CAD Systems, Inc.; Assembly None; Location None; Device ep600; /****************************************************************/ /* */ /* 16 Bit Synchronous Up/Down Counter */ /* */ /* This is a 16-bit up/down counter with built-in shift */ /* register using toggle flip-flops. The various modes are */ /* controlled by the signals CNTUP (1 = count up) */ /* SHIFT (1 = shift) */ /* SHLFT (1 = shift left) */ /****************************************************************/ /* Allowable Target Device Types : EP600 */ /****************************************************************/

/** Inputs **/ Pin Pin Pin Pin Pin Pin 1 = clock1; /* Counter Clock 1 */ 13 = clock2; /* Counter Clock 2 */ 2 = data_in; /* Serial Shift Data Input */ 11 = cntup; /* Count Up/Down Mode Control */ 14 = shift; /* Shift/Count Mode Control */ 23 = shlft; /* Shift Left Mode Control */

/** Outputs **/ Pin [3..10,15..22] = [q0..15]; /* Counter/Shifter Outputs */ /** Declarations and Intermediate Variable Definitions **/ count_up = !shift & cntup & !shlft; count_down = !shift & !cntup & !shlft; shift_left = shift & !cntup & shlft; shift_right = shift & !cntup & !shlft; reset_count = shift & cntup & shlft; /* Counter Reset Command */ Field counter = [q15..0]; /* Declared Counter Field */ /** Logic Equations **/ counter.t = 'h'0001 & (count_up & 'b'1 /* BIT 0 (LSB) */ # count_down & 'b'1 # shift_left & (data_in $ q0) # shift_right & (q0 $ q1)) # 'h'0002 & (count_up & q0 /* BIT 1 */ # count_down & !q0 # shift_left & (q0 $ q1) # shift_right & (q1 $ q2)) # 'h'0004 & (count_up & [q0..1]:& /* BIT 2 */ # count_down & ![q0..1]:& # shift_left & (q1 $ q2) # shift_right & (q2 $ q3)) # 'h'0008 & (count_up & [q0..2]:& /* BIT 3 */ # count_down & ![q0..2]:& # shift_left & (q2 $ q3) # shift_right & (q3 $ q4)) # 'h'0010 & (count_up & [q0..3]:& /* BIT 4 */ # count_down & ![q0..3]:& # shift_left & (q3 $ q4) # shift_right & (q4 $ q5)) # 'h'0020 & (count_up & [q0..4]:& /* BIT 5 */ # count_down & ![q0..4]:& # shift_left & (q4 $ q5) # shift_right & (q5 $ q6)) # 'h'0040 & (count_up & [q0..5]:& /* BIT 6 */ # count_down & ![q0..5]:& # shift_left & (q5 $ q6) # shift_right & (q6 $ q7)) # 'h'0080 & (count_up & [q0..6]:& /* BIT 7 */ # count_down & ![q0..6]:& # shift_left & (q6 $ q7) # shift_right & (q7 $ q8)) # 'h'0100 & (count_up & [q0..7]:& /* BIT 8 */ # count_down & ![q0..7]:& # shift_left & (q7 $ q8) # shift_right & (q8 $ q9)) # 'h'0200 & (count_up & [q0..8]:& /* BIT 9 */ # count_down & ![q0..8]:& # shift_left & (q8 $ q9) # shift_right & (q9 $ q10)) # 'h'0400 & (count_up & [q0..9]:& /* BIT 10 */ # count_down & ![q0..9]:& # shift_left & (q9 $ q10) # shift_right & (q10 $ q11)) # 'h'0800 & (count_up & [q0..10]:& /* BIT 11 */ # count_down & ![q0..10]:& # shift_left & (q10 $ q11) # shift_right & (q11 $ q12)) # 'h'1000 & (count_up & [q0..11]:& /* BIT 12 */ # count_down & ![q0..11]:& # shift_left & (q11 $ q12) # shift_right & (q12 $ q13)) # 'h'2000 & (count_up & [q0..12]:& /* BIT 13 */

# # # # # # # # # # #

count_down & ![q0..12]:& shift_left & (q12 $ q13) shift_right & (q13 $ q14)) 'h'4000 & (count_up & [q0..13]:& /* BIT 14 */ count_down & ![q0..13]:& shift_left & (q13 $ q14) shift_right & (q14 $ q15)) 'h'8000 & (count_up & [q0..14]:& /* BIT 15 (MSB) */ count_down & ![q0..14]:& shift_left & (q14 $ q15) shift_right & (q15 $ data_in)) ;

counter.ar = reset_count; /* Resets the Counter */

FAMILIAS LGICAS

Las tecnologas de fabricacin de los circuitos integrados digitales determinan diferentes propiedades de operacin como niveles de tensin, margenes de ruido, potencia disipada, cargabilidad de entrada y salida, etc. Las familias lgicas son conjuntos de compuertas basadas en una tecnologa de transistores determinada. Las distintas compuertas lgicas exhiben diferentes comportamientos elctricos ante los valores de entrada, condiciones ambientales existentes, y condiciones de salida. La fabricacin de circuitos digitales est dirigida a disminuir el espacio de los circuitos, la velocidad de respuesta, envejecimiento de los componentes, tolerancias y la disminucin de potencia consumida entre otros.

FAMILIAS TTL Y CMOS


La compuerta TTL fue una mejora introducida a la compuerta DTL. Los parmetros ms importantes de las compuertas TTL son el retardo de propagacin (ns), la disipacin de potencia (mW), y el producto velocidad -potencia (pJ). El producto velocidad-potencia indica un retardo en la propagacin con una disipacin de potencia determinada. Caractersticas Generales de los Circuitos Digitales Las caractersticas de un circuito digital se usan con el fin de comparar las compuertas de las distintas familias lgicas. Estas se listan a continuacin:

Fan Out (Cargabilidad de salida): Es el mximo nmero de cargas que pueden ser gobernadas en la salida de la compuerta sin alterar su operacin normal. Fan In (Cargabilidad de entrada): Es el mximo nmero de entradas que puede tener una compuerta. Tensin de Umbral: Una curva de transferencia de una puerta lgica inversora se muestra en la figura 9.1.1. En la figura se distinguen dos tensiones de umbral; la primera para el estado lgico cero ( Vu, 0) y la segunda para el estado lgico uno (Vu, 1). Los puntos de pendiente -1 representan estas tensiones de umbral. Por lo tanto, la tensin de umbral es la tensin en la que la compuerta comienza a cambiar de estado lgico. Margen de ruido: Es el lmite de tensin de ruido admisible a la entrada del elemento lgico, sin registrar cambios en el estado de la salida. Existen dos mrgenes de un ruido, uno para el estado lgico uno y otro para el estado lgico cero.

Figura 9.1.1. Curva de transferencia de un circuito lgico inversor

Vsal, 0 mx = Mxima tensin en la salida de una compuerta cuando su estado lgico es cero y con cargabilidad de salida mxima. Vsal, 1 mn = Mnima tensin a la salida de una compuerta cuando su estado lgico es uno y con cargabilidad mxima posible. Vu, 0 = Tensin de umbral del estado lgico de entrada cero. Vu, 1 = Tensin de umbral del estado lgico de entrada uno. En circuitos digitales es comn conectar dos puertas de las mismas caractersticas, una enseguida de otra, tal como indica la figura 9.1.2. Por consiguiente, la tensin mxima de entrada en estado cero VE,0 mx, es equivalente a la mxima tensin de salida en estado cero Vs,0 mx. De igual forma, la tensin mnima de entrada en estado uno VE,1 mn es igual a la tensin mnima de salida en estado uno Vs,1 mn.

Figura 9.1.2. Compuertas Lgicas Interconectadas.

Los margenes de ruido se definen de la forma siguiente: Margen de ruido en estado cero a la entrada: Es la diferencia entre Vu, 0 y VE,0 mx. M0 = Vu, 0 - VE,0 mx = Vu, 0 - Vs,0 mx Margen de ruido en estado uno a la entrada: Es la diferencia entre VE,1 mn y Vu, 1. M1 = VE,1 mn - Vu, 1 = Vs,1 mn - Vu, 1

Tiempo de programacin medio (tpd): Es el tiempo de retardo promedio en la transicin de una seal de la entrada a la salida en los casos que esta pasa del estado 1 a 0 y viceversa. Potencia disipada: Es la potencia consumida por la compuerta. La disipacin de potencia en funcin de la frecuencia de una compuerta TTL es constante dentro del rango de operacin. En cambio, la compuerta CMOS depende de al frecuencia (ver figura 9.1.3).

Figura 9.1.3. Curva de potencia en funcin de la frecuencia

Producto potencia dispada-tiempo de propagacin: Es el producto de los dos tipos de caractersticas mencionadas.

La velocidad de la compuerta es inversamente proporcional al retardo de propagacin. Familia TTL (Lgica de Transistor - Transistor) Esta fue la primera familia de xito comercial, se utiliz entre 1965 y 1985. Los circuitos TTL utilizan transistores bipolares y algunas resistencias de polarizacin. La tensin nominal de alimentacin de los circuitos TTL son 5 V DC. Niveles Lgicos TTL En el estudio de los circuitos lgicos, existen cuatro especificaciones lgicos diferentes: VIL, VIH, VOL y VOH. En los circuitos TTL, VIL es la tensin de entrada vlida para el rango 0 a 0.8 V que representa un nivel lgico 0 (BAJO). El rango de tensin VIH representa la tensiones vlidas de un 1 lgico entre 2 y 5 V. El rango de valores 0.8 a 2 V determinan un funcionamiento no predecible, por la tanto estos valores no son permitidos. El rango de tensiones de salida VOL, VOH se muestra en la figura 9.1.4.

Figura 9.1.4. Nivel lgico de entrada de un circuito TTL

Circuitos Lgicos CMOS (Metal xido Semiconductor Complementario)

La tecnologa CMOS es la ms utilizada actualmente para la construccin de circuitos integrados digitales, como las compuertas, hasta los circuitos como las memorias y los microprocesadores. La tensin nominal de alimentacin de los circuitos CMOS son +5 V y +3,3 V.
Niveles Lgicos CMOS En la figura 9.1.5. se muestran las tensiones VIL, VIH, VOL, VOH vlidas para los dispositivos CMOS de nivel +5 VDC.

Figura 9.1.5. Nivel Lgico de Entrada de un circuito CMOS +5 V

CONFIGURACIN DE SALIDAS EN LAS FAMILIAS TTL Y CMOS


El funcionamiento interno de estos dispositivos se rige por dos estados bien diferenciados a los cuales se les asigna los valores lgicos uno o cero. La convencin es asignar el valor lgico uno al interruptor y el valor lgico cero al interruptor abierto. En lugar de interruptores se usan transistores bipolares o unipolares. Configuraciones de Salida en las Compuertas TTL Las compuertas TTL tienes tres tipos de configuraciones de salida: 1. 2. 3. Salida de Colector Abierto. Salida de Poste Totmico. Salida de Tres Estados.

Compuerta con Salida de Colector Abierto La compuerta bsica TTL fue una modificacin DTL. La figura de la compuerta citada se muestra en la figura 9.2.1.

Figura 9.2.1. Compuerta NAND TTL de colector abierto

La resistencia externa RL debe conectarse para que la salida hale hacia el nivel alto, cuando el transistor Q3 est en corte. Si cualquiera de los niveles lgicos de entrada es cero, la juntura base-emisor en Q1 se polariza directamente. Por consiguiente, la tensin en la base Q1 es igual a: 0.2 V(Tensin de entrada) + 0.7(VbeQ1) = VbQ1 = 0.9 V

El transistor Q3 comienza a conducir cuando la suma de las cadas de tensin de VbcQ1, VbeQ2 y VbeQ3 sean superiores a 1.8 V. Como la tensin en VbQ1 es 0.9.V, el transistor Q3 queda en estado de corte. Por lo tanto, s se conecta una resistencia al colector, la tensin de salida ser un 1 lgico. Si todos los niveles lgicos de entrada son 1, los transistores Q2 y Q3 se saturan debido a que la tensin en la base de Q1 es superior a la suma de las cadas de tensin VbcQ1, VbeQ2 y VbeQ3. Entonces el estado de salida es igual a cero lgico (0). Compuerta con Salida de Tipo Totmico (Totem Pole) Las compuertas se caracterizan por tener una impedancia de salida determinada. Esta impedancia se compone de una resistencia ms una capacitancia. La capacitancia se carga exponencialmente de bajo a alto segn la constante de tiempo RC, cuando el transistor de salida pasa de bajo a alto. La diferencia entre una compuerta de colector abierto y una de tipo totmico radica en el transistor Q4 y el diodo D1.

Figura 9.2.2. Compuerta TTL de salida tipo totmico

La salida es baja cuando Q2 y Q3 se encuentran en saturacin como en la compuerta de colector abierto. La ecuacin siguiente expresa el valor de la tensin en el colector de Q2: 0.7(VbeQ3) + 0.2 V(VceQ2) = VcQ2 = 0.9 V Como F = VceQ3 = 0.2 V, el transistor Q4 est en corte por: 0.6 V(VbeQ4) + 0.6 V(VD1) < 0.11 V(VcQ2 VbQ4) ya que VcQ2 = VbQ4 . Por lo tanto Q4 est en corte. El diodo se coloca para provocar una cada en el lazo y asegurar el corte de Q4 con Q3 saturado. En una transicin de estado lgico 1 en la salida por causa de cambio en la entrada a 0, los transistores Q2 y Q3 se cortan. En este caso, la salida se mantiene un instante de tiempo baja debido a que el voltaje en el condensador no puede cambiar instantneamente. En el momento que Q2 entra en corte, Q4 conduce por el voltaje conectado a su base a travs de la resistencia de 1.6 KW. El transistor Q4 se satura momentneamente por la corriente exigida por el condensador, incrementndose el voltaje de acuerdo a una constante de tiempo RC. El proceso anterior es rpido por la baja resistencia equivalente entre 130 KW, la resistencia de saturacin del transistor y la resistencia del diodo. Por consiguiente, la transicin de un valor lgico bajo a uno alto es ms rpida. En la medida de acumulacin de carga a la salida, el voltaje de salida la corriente por el transistor Q4 disminuye, por lo que ste pasa a la regin activa. Entonces, el voltaje de salida es: F = 5 - 0.6 V(VbeQ4) - 0.6 V(VD1) = 3.6 V Compuerta con Salida de Tres Estados (Triestado) Las compuertas de tres estados por su construccin se clasifican en TTL y CMOS. La compuerta de tres estados se presenta en las compuertas de tipo totmico que permiten la conexin alambrada de las salidas para formar un bus comn.

Las compuertas de tres estados tienen los siguientes estados de salida: 1. 2. 3. Un estado de bajo nivel (0). Un estado de alto nivel (1). un estado de alta impedancia o estado flotante (Z).

En la figura 9.2.3. se muestran los smbolos de las compuertas.

Figura 9.2.3. Compuertas de tres estados

La compuerta de tres estados funciona normalmente con la entrada B1 en alto. La compuerta inversora de tres estados se activa en su funcionamiento con la entrada B2 en bajo. Cuando la entrada C es baja, la salida es un circuito abierto con con una impedancia alta, independiente del valor lgico en la entrada A1 (Ver figura Figura 9.2.3.a). En el estado Z no existe posibilidad de circulacin de corriente en ningn sentido. En la tabla 9.2.1. se indican los valores de salida para estas dos compuertas.

A1 B1 C1 A2 B2 C2

0 0

1 0

0 1

1 1

Tabla 9.2.1. Compuertas TTL de tres estados

Compuerta de Tres Estados TTL El circuito en estado Z se basa en bloquear los dos transistores de la salida Totem- Pole a la vez cuando se active la entrada de control. La figura 9.2.4. muestra el inversor TTL 3-State. La entrada B2 en alto, hace que el transistor T5 se corte; por lo tanto la corriente base colector de T5 satura los transistores T6 y T7. El diodo D6 conduce y esto produce que los transistores de salida del circuito se corten, debido al potencial bajo en el emisor de T1 y el colector de T2. La conduccin de T1, bloquea a T2 y T4 no recibe corriente en la base, por lo que entra a estado de corte. De otro lado, el colector del transistor T2 queda a un potencial muy prximo a masa, llevando a T3 a corte.

Figura 9.2.4. Circuito Inversor de tres estados TTL Compuerta de Tres Estados CMOS En el circuito CMOS de la figura 9.2.5., el estado de la salida es igual a la entrada slo si la entrada B1 est en nivel alto (1). Cuando la entrada B1 est en nivel bajo (0), la salida se encuentra en nivel de impedancia alta ( Z) y es independiente del nivel de entrada A1. En el funcionamiento del circuito interno de la figura 9.2.5., en el estado de entrada B1=0 conduce el transistor QP1 (canal P) y la activacin de este elemento hace conducir a QN3 (canal N); por lo tanto el drenador QN3 queda a un potencial de 0 V y esto sita al transistor QN5 en estado de corte. El potencial de 0 V en la puerta del transistor QP3 hace conducir a ste, colocando al transistor QP5 en estado de corte. En este estado de la entrada de control, los transistores de salida QP5 y QN5 estn en corte y el terminal de salida queda en estado de alta impedancia o tercer estado. Cuando la entrada B1 est en nivel bajo (1), el estado de salida es igual de la entrada, tal como se deduce del funcionamiento del circuito. Si la compuerta tiene estado de entrada A1=1, conduce el transistor QP5 y QN5 entra en corte, lo cual hace la salida C1 igual a 1. Cuando A1=0, conduce el transistor QN5 y QP5 entra en corte, lo cual hace la salida C1 igual a 0.

Figura 9.2.5. Circuito de tres estados CMOS

COMPUERTAS BSICAS
Las compuertas bsicas se estudiaron en la leccin 1 del captulo 2. Las compuertas se encuentran disponibles segn la tecnologa de fabricacin.

Familia CMOS Inversor Un dispositivo CMOS consiste en distintos dispositivos MOS interconectados para formar funciones lgicas. Los circuitos CMOS combinan transistores PMOS y NMOS. El conocimiento sobre el funcionamiento de los transistores MOS es importante para la comprensin de la leccin. La convencin de los transistores MOS de canal p y canal n es la siguiente:

Figura 9.3.1. Smbolos para transistores MOS

La operacin del transistor MOS se basa en los siguientes preceptos bsicos: 1. 2. 3. El transistor MOS de canal p conduce cuando el voltaje de puerta a fuente es negativo. El transistor MOS de canal n conduce cuando el voltaje de puerta a fuente es positivo. Cualquiera de los dos dispositivos entra a corte cuando el voltaje de puerta a fuente es cero.

El circuito mostrado en la figura 9.3.2. representa un inversor CMOS y est formado por un transistor de canal tipo P(QP1) y otro de canal tipo N(QN1). Cuando la entrada A1 est en nivel bajo (0), QP1 y QN1 estn a potencial cero. La entrada est a 0 V con respecto a la fuente de QN1 y a -VSS con respecto a la fuente de QP1. Como resultado el transistor QP1 se activa y el transistor QN1 se pone en estado de corte. El resultado es un camino de baja impedancia de VSS a la salida F y uno de alta impedancia de tierra a la salida. Cuando la entrada A1 est en nivel alto (1), QP1 y QN1 estn a potencial VSS. Como resultado el transistor QP1 se pone en estado de corte y el transistor QN1 se activa. El resultado es un camino de baja impedancia de tierra a la salida y uno de alta impedancia de VSS a la salida F. La tabla 9.3.1. ilustra los estados en el circuito lgico.

A1

Q1

Q2

0 ON

OFF 1

1 OFF ON

Tabla 9.3.1. Tabla de Estados del Inversor CMOS

Figura 9.3.2. Circuito lgico de un inversor CMOS

Compuerta NAND En una compuerta NAND CMOS, las entradas en nivel alto, hacen que los transistores QP1 y QP2 entren en corte y ambos transistores QN1 y QN2 en conduccin (Ver Tabla 9.3.2). La salida pasa a bajo ( 0) a travs de QN1 y QN2. Cuando ambas entradas estn en bajo, QP1 y QP2 entran a conduccin y QN1 y QN2 entran a corte. La salida pasa a alto a travs de QP1 y QP2. En las parejas de transistores ya sean de canal n de canal p, si cualquier entrada es baja, uno de los transistores entra a corte y otro a conduccin. La salida pasa a alto ( 1) acoplandose a travs del transistor en conduccin a VSS. El circuito mostrado en la figura 9.3.3. representa una compuerta NAND CMOS.

A1 B1 QP1

QP2

QN1

QN2 F

0 0

ON

ON

OFF OFF 1

0 1

ON

OFF OFF ON

1 0

OFF ON

ON

OFF 1

1 1

OFF OFF ON

ON

Figura 9.3.3. Circuito lgico de la compuerta NAND CMOS

Las entradas no usadas de una compuerta CMOS no se pueden dejar abiertas, porque la salida resulta ambigua. Cuando sobra alguna entrada de una compuerta CMOS se debe conectar a otra entrada o a uno de los dos terminales de alimentacin. Esto tambin es vlido para circuitos secuenciales y dems circuitos CMOS. Ejemplo: Contadores, Flip-Flops, etc. Compuerta NOR En una compuerta NOR CMOS, las entradas en nivel alto, hacen que los transistores QP1 y QP2 entren en corte y ambos transistores QN1 y QN2 en conduccin (Ver Tabla 9.3.3). La salida pasa a bajo ( 0) a travs de QN1 y QN2. Cuando ambas entradas estn en bajo, QP1 y QP2 entran a conduccin y QN1 y QN2 entran a corte. La salida pasa a alto (1)a travs de QP1 y QP2. En las parejas de transistores ya sean de canal n de canal p, si cualquier entrada es baja, uno de los transistores entra a corte y otro a conduccin. La salida pasa a bajo ( 0) acoplandose a travs del transistor en conduccin a tierra. El circuito mostrado en la figura 9.3.4. representa una compuerta NOR CMOS.

A1 B1 QP1

QP2

QN1

QN2

0 0

ON

ON

OFF OFF

0 1

ON

OFF

OFF ON

1 0

OFF ON

ON

OFF

1 1

OFF OFF< ON

ON< 0

Tabla 9.3.3. Tabla de estados de la compuerta NOR CMOS

Figura 9.3.4. Circuito lgico de la compuerta NOR CMOS

Familia TTL INVERSOR La descripcin de los elementos del inversor lgico de la figura 9.3.5. se muestra en la tabla 9.3.4. Cuando la entrada E es alta (1), la unin base-emisor de Q1 se polariza inversamente y la unin base colector se polariza directamente. La circulacin de corriente por esta juntura provoca la saturacin del transistor Q2. El transistor Q2 excita a Q3, acercndose el potencial de colector de ste a tierra. La tensin de colector de Q3, bloquea el transistor Q4. Cuando la entrada est en nivel bajo (0), la unin base-emisor de Q1 se polariza directamente y la unin base colector se polariza inversamente. La circulacin de corriente por esta juntura tiene el sentido hacia tierra. Q 2 entra en estado de corte por la ausencia de circulacin de corriente en su base. Por lo tanto, el colector del transistor Q2 est en nivel alto y hace entrar en conduccin a Q4. La saturacin de Q4 permite un nivel lgico 1 en la salida. El potencial de tierra en el emisor de Q2 impide la conduccin de Q3.

Dispositivo

Descripcin

Q1<

Transistor de acoplamiento

D1

Diodo de fijacin de nivel de entrada

Q2

Transistor divisor de fase

Q3y Q4

Transistores Totem Pole

Tabla 9.3.4. Tabla descriptiva de los elementos del inversor

Figura 9.3.5. Circuito lgico de un inversor lgico TTL

NAND La compuertas NAND se detall en la leccin de configuraciones de salida TTL.

COMPARACIN ENTRE LAS DISTINTAS FAMILIAS LGICAS


Las caractersticas vistas en la leccin 1 se utilizan usualmente para comparar las distintas familas lgicas. Las caractersticas estticas y las dinmicas sirven de buen comparacin entre las familias lgicas. La compuerta NAND sirve de comparacin entre cada familia. Caractersticas Estticas Entre las caractersticas estticas escogidas se encuentran:


Funcin de Transferencia

Funcin de transferencia. Caractersticas de entrada. Caractersticas de salida. Cargabilidad de salida (Fan-Out). Disipacin de potencia.

La funcin de transferencia de tecnologa CMOS se aproxima ms a la ideal en comparacin con la tecnologia TTL. Entre las razones ms importantes se encuentran los estados bajo ( 0) y alto (1) sin carga, el umbral de conmutacin y el margen de transicin nulo. Caractersticas de Entrada Los estados en los niveles de tensin de entrada y salida se explicaron en la leccin 1. En la familia TTL los niveles lgicos bajos son ms importantes que los niveles altos. De las grficos 9.1.4. y 9.1.5. se puede concluir la preferencia de un valor VILmx lo ms elevado posible y un valor VIHmn lo ms reducido posible. Caractersticas de Salida Las entradas de las compuertas CMOS nunca deben dejarse flotantes. La estructura de entrada de un elemento TTL contiene una resistencia que proporciona un camino a V ss. La estructura de los dispositivos CMOS no contiene la resistencia y tiene una impedancia de entrada extremadamente alta. Por la anterior, un ruido pequeo hace que la entrada sea baja alta. En el caso de un ruido entre el nivel lgico 0 y 1, los dos transistores de entrada pueden estar en conduccin y puede circular una corriente excesiva. En ocasiones la corriente afecta la fuente de tensin y crea una oscilacin de alta frecuencia en la salida del dispositivo. Segn especificacin del fabricante es necesario conectar la entrada de estos dispositivos a Vss, tierra u otra fuente. Las figuras 9.1.4. y 9.1.5. establecen la diferencia de salida entre las familias TTL y CMOS.

Cargabilidad de Salida (Fan-Out) La cargabilidad se puede establecer de acuerdo a nmero mximo de cargas que se pueden conectar a la salida de una compuerta, para una tensin de salida a nivel bajo de 0.3 V (VOL= 0.3 V). La referencia 4000B tiene un fan out menor en comparacin a la familia TTL estndar. Disipacin de Potencia Por razones econmicas predominan los dispositivos de baja disipacin de potencia. La diferencia de potencia CMOS es un milln de veces menor a la familia TTL. Caractersticas Dinmicas La caracterstica dinmica de una familia lgica es el comportamiento del dispositivo ante la conmutacin. Las caractersticas dinmicas ms importantes son:

Retardo de propagacin y frecuencia mxima de funcionamiento. Disipacin de potencia en conmutacin. (familia CMOS).

Retardo de propagacin y frecuencia mxima de funcionamiento El diseo de un sistema digital de un regimen de trabajo a alta velocidad debe incluir un tiempo de retardo de propagacin de compuertas bajo. Lgicamente, un menor retardo de propagacin se traduce en una mayor frecuencia mxima de funcionamiento. El tiempo de propagacin medio ( tPD) se mide en nS y la mxima de frecuencia de funcionamiento en MHz. En la tabla 9.4.1. se muestran los tiempos de la familias lgicas TTL y CMOS. Disipacin de Potencia en Conmutacin En la familia CMOS, la disipacin de potencia se da prcticamente en rgimen de conmutacin. La mayor disipacin de potencia en regimen esttico ocurre en la familia TTL. La tabla 9.4.1. muestra algunas caractersticas de las compuertas TTL y CMOS.
Caractersticas F TTL CMOS 3,3 V CMOS 5 V AHC 3,7

LS ALS LV LVC ALVC HC AC 7 9 4,3 3 150 24 7 5

Retardo de Propagacin de puerta, tp (ns) 3,3 10 Frecuencia mxima de reloj (MHz) Excitacin de salida IOL(mA)

145 33 45 20 8 8

90 100 12 24

50 160 170 4 24 8

Tabla 9.4.1. Caractersticas de Compuertas TTL y CMOS

COMPUERTA DE TRANSMISIN CMOS


La compuerta de transmisin es un dispositivo utilizado como interruptor controlado por tensin. Generalmente se emplean transistores para cumplir la funcin de interrupcin y existen compuertas en tecnologa NMOS, PMOS y CMOS. Compuerta de transmisin NMOS La compuerta NMOS corresponde a un transistor MOS de canal N conectado en la configuracin que se muestra en la figura 9.5.1. En la figura se observa que la fuente se encuentra conectada a tierra. Este transistor puede conducir corriente en cualquiera de sus dos direcciones ( Vsal/Vent o viceversa) cuando la tensin en la compuerta (VG) supere la tensin de umbral para encenderlo, es decir, aplicando un 1 lgico.

Figura 9.5.1. Compuerta de Transmisin NMOS

Compuerta de transmisin PMOS El transistor MOS de canal P conectado en la configuracin de la figura 9.5.2 funciona como compuerta de transmisin. Su funcionamiento es similar a la compuerta de transmisin NMOS, excepto que la lgica que maneja para entrar en conduccin es inversa, es decir que la tensin en la compuerta ( VG) debe ser negativa para encender el transistor, en este caso la seal aplicada corresponde a un 0 lgico.

Figura 9.5.2. Compuerta de Transmisin PMOS

Compuerta de transmisin CMOS Esta compuerta agrupa algunas caractersticas de las compuertas de transmisin NMOS y PMOS. En la figura 9.5.3 (a) se ilustra el circuito de esta compuerta, observe que esta compuerta contiene un transistor NMOS, un PMOS y un Inversor.

Figura 9.5.3. Compuerta de transmisin CMOS

El inversor es empleado para tener una sola seal de control para encender o apagar los transistores. Cuando V C se encuentra en bajo (0 lgico) el transistor NMOS se apaga al igual que el transistor PMOS, anlogamente, si la tensin VC cambia alto (1 lgico), los transistores se encenderan. Existe otra representacin de esta compuerta de transmisin, la cual se ilustra en la figura 9.5.3 (b). Note que la compuerta no tiene incluido el inversor y que las seales de control son C y C'. Otra opcin de representacin se muestra en la figura 9.5.3 (c).

CIRCUITOS DE ARSENIURO DE GALIO


Los circuitos integrados digitales utilizan habitualmente silicio, sin embargo un semiconductor se puede producir mediante una mezcla de elementos del grupo tres (III) y cuatro (IV)de la tabla peridica. H. Welker descubri en los aos cincuenta, que el enlace qumico de estos compuestos permita una gran movilidad de electrones. El silicio a pesar de permitir el desarrollo del transistor bipolar y el transistor de efecto de campo, no es un semiconductor universal que d respuesta a todos los inconvenientes que se presentan al tratar de realizar

dispositivos en diferentes aplicaciones prcticas. Por lo tanto se ha generado el inters por desarrollar dispositivos con semiconductores III- IV y puntualmente, con arseniuro de galio ( GaAs), complementarios en la fabricacin de circuitos integrados de gran velocidad. Los transistores MOSFET han sido ampliamente utilizados en tecnologas de silicio debido a las caractersticas estables del xido de silicio que permiten su utilizacin como aislante entre la puerta y el sustrato. Por el contrario, los xidos de arsenuro de galio presentan grandes dispersiones en sus caractersticas que no permiten tensiones de umbral constantes.

Figura 9.6.1. Canal N de transistores MOS

Por ello se han realizado grandes esfuerzos, con resultados positivos, para realizar en tecnologas GaAs transistores de efecto de campo de semiconductor y metal (Metal-semiconductor fireld effect transistor (MESFET)) una de cuyas estructuras bsicas se representa en la figura 9.6.1. Este transistor se diferencia del MOS al emplear un sustrato semiaislante formado por una zona de alta resistividad que hace posible que la tensin aplicada entre l y la puerta controle por efecto de campo la anchura del canal entre el drenador y la fuente o surtidor. Los transistores MESFET pueden ser, al igual que los CMOS, empobrecidos (depletion) D-MESFET y enriquecidos (enhancement) E-MESFET. Los D-MESFET conducen con tensin de puerta nula y los E-MESFET necesitan ser polarizados adecuadamente (positivamente la puerta con respecto al sustrato en transistores en transistores de canal N). Lgica de Diodo Schottky Fet La familia lgica de diodo Schottky Fet o SDFL (Schottky Diode FET Logic) incluye un inversor. La figura 9.6.2. muestra un inversor bsico. El dispositivo del lado derecho mantiene conduciendo los diodos conduciendo. Los dispositivos del lado derecho funcionan como un inversor NMOS con carga activa de deplexin. En estado lgico uno de salida, el transistor 5 est cortado y 4 est en estado ohmico pero entrega corriente cero.

Figura 9.6.2. Inversor SDFL

En estado lgico cero de salida, el transistor 5 conduce y 4 est activo.

MEMORIAS
La mayora de los procesos lgicos en electrnica digital se encuentran constituidos por sistemas que manipulan la informacin binaria para dar como resultado una o varias salidas. En el proceso de manipular la informacin, los sistemas requieren del almacenamiento temporal o permanente de los estados lgicos. Un ejemplo de este tipo de sistemas son los microcomputadores, los cuales necesitan del almacenamiento tanto de datos como de los programas que manipulan la informacin. En este capitulo veremos los tipos de memorias que existen, sus aplicaciones y algunos ejemplos de memorias de uso general disponibles en el mercado.

ASPECTOS GENERALES SOBRE MEMORIAS


Las unidades de memoria son mdulos conformados por un conjunto de cerrojos o condensadores agrupados de tal forma que almacenan varias palabras binarias de n bits. Cada una de ellas tienen la capacidad de almacenar un bit de informacin (1 o 0), y se conocen con el nombre de celdas de memoria. Las celdas o bits de memoria se ubican mediante la fila y la columna en la que se encuentra. En la figura 10.1.1 se observa como ubicar un bit y una palabra dentro de una memoria.

Figura 10.1.1. Ubicacin de la informacin en una memoria

Las palabras binarias se identifican con una direccin la cual define la ubicacin dentro del arreglo y generalmente se designa con un nmero binario, octal o hexadecimal. En la mayora de las aplicaciones se asocian en grupos de ocho unidades para formar bytes y el tamao de las palabras en las memorias actuales est entre 4 y 64 bits. El parmetro bsico de una memoria es su capacidad, la cual corresponde al total de unidades que puede almacenar. Como ejemplo, la memoria de la figura 10.1.1 tiene una capacidad de 8n bits, que en otras palabras representa n bytes. Regularmente estas memorias en la actualidad se consiguen en tamaos del orden megabytes. El tiempo de acceso es otro parmetro importante en las memorias. Este corresponde al tiempo que tarda la memoria en acceder a la informacin almacenada en una direccin. Generalmente este tiempo se designan como tacc en las fichas tcnicas de estos dispositivos. En tabla 10.1.1 se indican los tiempos de acceso de las memorias en Circuito Integrado comparados con los tiempos de otros tipos de memoria.

Memoria

Tiempo de Acceso

Ncleo de Ferrita

0.3 - 1.0 us

Cinta Magntica

5 ms - 1s

Disco Magntico

10ms - 50 ms

CD ROM

200 ms 400 ms

Memorias Integradas MOS

2ns 300 ns

Memorias Integradas Bipolares 0.5ns 30 ns

Tabla 10.1.1. Comparacin de tiempos de acceso de diversos tipos de memorias

Operaciones bsicas de una Memoria La funcin bsica de las memorias es almacenar informacin. Sin embargo las memorias tienen la funcin especifica de escribir y leer los datos en su interior. En la figura 10.1.2 se observa la estructura bsica de una memoria de 1K de 4 bits, en la cual se indican sus partes bsicas.

Figura 10.1.2. Esquema descriptivo de una Memoria

En la figura 10.1.2 la entrada de direcciones (A 0 a A9), como su nombre lo indica, define la posicin a escribir o leer dentro de la memoria, las entradas y salidas de datos definen los datos a escribir y leer respectivamente, la entrada WE controla el tipo de operacin que la memoria debe hacer y la entrada OE corresponde a la seal de habilitacin de la memoria, la cual habilita o deshabilita la memoria para responder a las dems entradas. En los computadores modernos las memorias actan directamente con la CPU a travs de canales de comunicacin llamados buses. En la figura 10.1.3 se observa un esquema general, el cul muestra cmo interacta la CPU de un microcomputador con las memorias a travs de estos canales.

Figura 10.1.3. Esquema Simplificado de un Microcomputador.

Las operaciones bsicas de una memoria consisten en leer y almacenar informacin mediante el uso del bus de datos y direcciones. Estas operaciones ocurren en un orden lgico, el cual se indica a continuacin:

Apuntar a la direccin de memoria que se desea leer o escribir mediante el uso del bus de direcciones Seleccin del tipo de operacin: Lectura o escritura. Cargar los datos a almacenar (en el caso de una operacin de escritura) Retener los datos de la memoria (en el caso de una operacin de lectura) Habilitar o deshabilitar la memoria para una nueva operacin.

MEMORIAS DE ACCESO ALEATORIO


Las memorias de Acceso Aleatorio son conocidas como memorias RAM de la sigla en ingls Random Access Memory. Se caracterizan por ser memorias de lectura/escritura y contienen un conjunto de variables de direccin que permiten seleccionar cualquier direccin de memoria de forma directa e independiente de la posicin en la que se encuentre. Estas memorias son voltiles, es decir, que se pierde la informacin cuando no hay energa y se clasifican en dos categoras bsicas: la RAM esttica y la RAM dinmica, las cuales se describen en las siguientes dos secciones. Memoria RAM esttica Este tipo de memoria conocida como SRAM (Static Random Access Memory) se compone de celdas conformadas por flip-flops construidos generalmente con transistores MOSFET, aunque tambin existen algunas memorias pequeas construidas con transistores bipolares. En la figura 10.2.1 se observa la estructura tpica de una celda de memoria de una SRAM.

Figura 10.2.1. Estructura de una celda de memoria SRAM

Como se observa en la figura la celda se activa mediante un nivel activo a la entrada superior y los datos se cargan o se leen a travs de las lneas laterales. Las celdas de memoria se agrupan en filas y columnas para conformar el arreglo bsico de la memoria. En la figura 10.2.2 se muestra la disposicin de las celdas de memoria en una SRAM, donde se observa que cada una de las filas se habilita de forma simultnea para recibir o cargar los datos del bus de entrada/salida.

Figura 10.2.2. Arreglo bsico de una SRAM

Existen otras modalidades de funcionamiento de las memorias estticas, entre ellas se pueden nombrar las siguientes: SRAM Sincrnica Al igual que en los sistemas sincrnicos, este tipo de memoria tiene una entrada de reloj, la cual le permite operar en sincrona con otros dispositivos. Esta caracterstica no aporta mejores beneficios, sin embargo simplifica enormemente el diseo de sistemas de alta prestaciones, ya que una nica seal controla todos los dispositivos involucrados. La ventaja de estas memorias viene proporcionada por lo que se podra llamar su funcionamiento automtico, guiado por la seal de reloj, por lo que no es necesario ocuparse de generar las seales de control. SRAM de Rfaga Las memorias de rfagas (burst) son sincrnicas y se caracterizan por incluir un contador que permite que la memoria genere internamente la direccin a la que debe acceder, consiguiendo de esta forma accesos hasta cuatro posiciones de memoria con una sola direccin de referencia. Esto permite acceder de forma mas rpida a la informacin en memoria. Vemos como funciona este tipo de memoria. La CPU genera una direccin de memoria, la cual se propaga a travs del bus de direcciones hasta la memoria, decodificndose y accediendo a la posicin correspondiente. Si se ha configurado la memoria en modo rfaga, una vez obtenido el primer dato, incrementa la direccin y vuelve a acceder. De esta forma se evita el tiempo de propagacin de las seales por el bus y el tiempo de decodificacin de la direccin. El numero de palabras ledas o escritas en una rfaga, viene limitado por el tamao del contador interno de la memoria. SRAM Pipeline Con los dos tipos de memorias anteriores se consigue el acceso a posiciones consecutivas de forma rpida. Para mantener esta velocidad cuando se cambia de secuencia, las memorias pipeline incluyen un buffer para almacenar la direccin y los datos actuales proporcionados por la memoria. De esta forma, se puede enviar la nueva direccin antes de terminar la lectura, consiguiendo as que la CPU no espere la finalizacin del acceso a una posicin de memoria para generar la nueva direccin. Memoria RAM dinmica Este tipo de memoria conocida como DRAM (Dinamic Random Access Memory), a diferencia de la memoria esttica se compone de celdas de memoria construidas con condensadores. Las celdas de memoria son de fabricacin ms sencillas en comparacin a las celdas a base de transistores, lo cual permite construir memorias de gran capacidad. La figura 10.2.3 se observa la composicin interna de una de estas celdas.

Figura 10.2.3. Celda de memoria de una DRAM

La operacin de la celda es similar a la de un interruptor, cuando el estado en la fila se encuentra en alto, el transistor entra en saturacin y el dato presente en el bus interno de la memoria (columna) se almacena en el condensador, durante una operacin de escritura y se extrae en una operacin de lectura. El inconveniente que tiene este tipo de memorias consiste en que hay que recargar la informacin almacenada en las celdas, por lo cual estas celdas requieren de circuitera adicional para cumplir esta funcin. En la figura 10.2.4 se observa la celda completa con sus aditamentos donde se puede identificar la forma en que se desarrollan las operaciones de escritura, lectura y recarga.

Figura 10.2.4. Sistema lectura, escritura y recarga de una celda DRAM

Como se ha notado, existen diferencias entre la memoria Esttica y Dinmica. En La tabla 10.2.1 se indican las ventajas y desventajas de los dos sistemas de memoria, lo cual permite seleccionar el tipo de memoria dependiendo de la aplicacin.

Memoria

Ventajas

Desventajas

alta. SRAM

La velocidad de acceso es

Para retener los datos solo necesita estar energizada. Son mas fciles de disear.

Menor capacidad, debido a que cada celda de almacenamiento requiere mas transistores. Mayor costo por bit. Mayor consumo de Potencia.


DRAM

Mayor densidad y capacidad. Menor costo por bit. Menor consumo de potencia.

La velocidad de acceso es bajar. Necesita recargar de la informacin. almacenada para retenerla. Diseo complejo.

Memorias de Solo Lectura Las memorias de solo lectura son conocidas como memorias ROM de la sigla en ingls Read Only Memory. Se caracterizan por ser memorias de lectura y contienen celdas de memoria no voltiles, es decir que la informacin almacenada se conserva sin necesidad de energa. Este tipo de memoria se emplea para almacenar informacin de forma permanente o informacin que no cambie con mucha frecuencia. Actualmente se dispone de varios tipos de memorias ROM, a continuacin se explicar cada una de ellas con sus caractersticas bsicas. Memoria ROM de Mscara Esta memoria se conoce simplemente como ROM y se caracteriza porque la informacin contenida en su interior se almacena durante su construccin y no se puede alterar. Son memorias ideales para almacenar microprogramas, sistemas operativos, tablas de conversin y caracteres. Generalmente estas memorias utilizan transistores MOS para representar los dos estados lgicos (1 0). La programacin se desarrolla mediante el diseo de un negativo fotogrfico llamado mscara donde se especifican las conexiones internas de la memoria. En la figura 10.3.1 se muestra la celda de memoria de una ROM de este tipo, en tecnologas TTL y MOS.

Figura 10.3.1. Celdas de memoria para una ROM

Las celdas de memoria se organizan en grupos para formar registros del mismo tamao y estos se ubican fsicamente formando un arreglo, como el indicado en la figura 10.3.2.

Figura 10.3.2. Organizacin interna de una Memoria ROM

Memoria PROM Esta memoria es conocida como ROM programable de la sigla en ingls Programmable Read Only Memory. Este tipo de memoria a diferencia de la ROM no se programa durante el proceso de fabricacin, en vez de ello la programacin la efecta el usuario y se puede realizar una sola vez, despus de la cual no se puede borrar o volver a almacenar otra informacin. El proceso de programacin es destructivo, es decir, que una vez grabada, es como si fuese una ROM normal. Para almacenar la informacin se emplean dos tcnicas: por destruccin de fusible o por destruccin de unin. Comnmente la informacin se programa o quema en las diferentes celdas de memoria aplicando la direccin en el bus de direcciones, los datos en los buffers de entrada de datos y un pulso de 10 a 30V, en una terminal dedicada para fundir los fusibles correspondientes. Cuando se aplica este pulso a un fusible de la celda, se almacena un 0 lgico, de lo contrario se almacena un 1 lgico (estado por defecto), quedando de esta forma la informacin almacenada de forma permanente. En la figura 10.3.3 se observa la disposicin interna de una celda de memoria y los fusibles correspondientes.

Figura 10.3.3. Celda de Memoria de una PROM

El proceso de programacin de una PROM generalmente se realiza con un equipo especial llamado quemador. Este equipo emplea un mecanismo de interruptores electrnicos controlados por software que permiten cargar las direcciones, los datos y genera los pulsos para fundir los fusibles del arreglo interno de la memoria. En la figura 10.3.4 se indica de forma esquemtica la funcin del programador.

Figura 10.3.4. Programacin de un PROM

Memoria EPROM Este tipo de memoria es similar a la PROM con la diferencia que la informacin se puede borrar y volver a grabar varias veces. Su nombre proviene de la sigla en ingls Erasable Read Only Memory. La programacin se efecta aplicando en un pin especial de la memoria una tensin entre 10 y 25 Voltios durante aproximadamente 50 ms, segn el dispositivo, al mismo tiempo se direcciona la posicin de memoria y se pone la informacin a las entradas de datos. Este proceso puede tardar varios minutos dependiendo de la capacidad de memoria. La memoria EPROM, tal como las memorias vistas anteriormente se compone de un arreglo de transistores MOSFET de Canal N de compuerta aislada. En la figura 10.3.5 se observa el transistor funcionando como celda de memoria en una EPROM.

Figura 10.3.5. Celda de memoria de una EPROM

Cada transistor tiene una compuerta flotante de SiO2 (sin conexin elctrica) que en estado normal se encuentra apagado y almacena un 1 lgico. Durante la programacin, al aplicar una tensin (10 a 25V) la regin de la compuerta queda cargada elctricamente, haciendo que el transistor se encienda, almacenando de esta forma un 0 lgico. Este dato queda almacenado de forma permanente, sin necesidad de mantener la tensin en la compuerta ya que la carga elctrica en la compuerta puede permanecer por un perodo aproximado de 10 aos. Por otra parte el borrado de la memoria se realiza mediante la exposicin del dispositivo a rayos ultravioleta durante un tiempo aproximado de 10 a 30 minutos. Este tiempo depende del tipo de fabricante y para realizar el borrado, el circuito integrado dispone de una ventana de cuarzo transparente, la cual permite a los rayos ultravioleta llegar hasta el material fotoconductivo presente en las compuertas aisladas y de esta forma lograr que la carga se disipe a travs de este material apagando el transistor, en cuyo caso todas las celdas de memoria quedan en 1 lgico. Generalmente esta ventana de cuarzo se ubica sobre la superficie del encapsulado y se cubre con un adhesivo para evitar la entrada de luz ambiente que pueda borrar la informacin, debido a su componente UV. En la figura 10.3.6 se observa la fotografa de una memoria de este tipo.

Figura 10.3.6. Apariencia Fisica de una EPROM

Memoria EEPROM La memoria EEPROM es programable y borrable elctricamente y su nombre proviene de la sigla en ingls Electrical Erasable Programmable Read Only Memory . Actualmente estas memorias se construyen con transistores de tecnologa MOS (Metal Oxide Silice) y MNOS (Metal Nitride-Oxide Silicon). Las celdas de memoria en las EEPROM son similares a las celdas EPROM y la diferencia bsica se encuentra en la capa aislante alrededor de cada compuesta flotante, la cual es ms delgada y no es fotosensible. La programacin de estas memorias es similar a la programacin de la EPROM, la cual se realiza por aplicacin de una tensin de 21 Voltios a la compuerta aislada MOSFET de cada transistor, dejando de esta forma una carga elctrica, que es suficiente para encender los transistores y almacenar la informacin. Por otro lado, el borrado de la memoria se efecta aplicando tensiones negativas sobre las compuertas para liberar la carga elctrica almacenada en ellas. Esta memoria tiene algunas ventajas con respecto a la Memoria EPROM, de las cuales se pueden enumerar las siguientes:

Las palabras almacenadas en memoria se pueden borrar de forma individual. Para borra la informacin no se requiere luz ultravioleta. Las memorias EEPROM no requieren programador. Para reescribir no se necesita se necesita hacer un borrado previo. Se pueden reescribir aproximadamente unas 1000 veces sin que se observen problemas para almacenar la informacin. El tiempo de almacenamiento de la informacin es similar al de las EPROM, es decir aproximadamente 10 aos. Memoria FLASH La memoria FLASH es similar a la EEPROM, es decir que se puede programar y borrar elctricamente. Sin embargo esta rene algunas de las propiedades de las memorias anteriormente vistas, y se caracteriza por tener alta capacidad para almacenar informacin y es de fabricacin sencilla, lo que permite fabricar modelos de capacidad equivalente a las EPROM a menor costo que las EEPROM. Las celdas de memoria se encuentran constituidas por un transistor MOS de puerta apilada, el cual se forma con una puerta de control y una puerta aislada, tal como se indica en la figura 10.3.7. La compuerta aislada almacena carga elctrica cuando se aplica una tensin lo suficientemente alta en la puerta de control. De la misma manera que la memoria EPROM, cuando hay carga elctrica en la compuerta aislada, se almacena un 0, de lo contrario se almacena un 1.

Figura 10.3.7 Celda de memoria de una FLASH

Las operaciones bsicas de una memoria Flash son la programacin, la lectura y borrado. Como ya se mencion, la programacin se efecta con la aplicacin de una tensin (generalmente de 12V o 12.75 V) a cada una de las compuertas de control, correspondiente a las celdas en las que se desean almacenar 0s. Para almacenar 1s no es necesario aplicar tensin a las compuertas debido a que el estado por defecto de las celdas de memoria es 1. La lectura se efecta aplicando una tensin positiva a la compuerta de control de la celda de memoria, en cuyo caso el estado lgico almacenado se deduce con base en el cambio de estado del transistor:

Si hay un 1 almacenado, la tensin aplicada ser lo suficiente para encender el transistor y hacer circular corriente del drenador hacia la fuente. Si hay un 0 almacenado, la tensin aplicada no encender el transistor debido a que la carga elctrica almacenada en la compuerta aislada. Para determinar si el dato almacenado en la celda es un 1 un 0, se detecta la corriente circulando por el transistor en el momento que se aplica la tensin en la compuerta de control. El borrado consiste en la liberacin de las cargas elctricas almacenadas en las compuertas aisladas de los transistores. Este proceso consiste en la aplicacin de una tensin lo suficientemente negativa que desplaza las cargas como se indica en la figura 10.3.8.

Figura 10.3.8. Proceso de descarga de una celda de memoria FLASH

APLICACIONES DE LAS MEMORIAS


En la actualidad muchos de los sistemas electrnicos necesitan dispositivos para almacenar y/o leer informacin. Como ejemplo de este tipo de sistemas podemos mencionar los telfonos electrnicos, televisores, equipos de sonido y los computadores entre otros. Esta leccin se centrar en mencionar algunas aplicaciones particulares de las memorias que pueden ser de inters para desarrollar proyectos.

Memoria RAM La memoria RAM es uno de los componentes ms importantes en un computador. Cuando se requiere emplear un archivo de datos o programa, los datos o instrucciones son ledos desde el disco duro o disquete y colocados en una memoria RAM, para que sean ledos por el microprocesador, permitindole manipularlos, ingresar nuevos datos, modificar los existentes, hacer clculos, bsquedas, resmenes, etc. El uso ms difundido de estos dispositivos indiscutiblemente se encuentra en los computadores:

Se utilizan en sistemas microprocesados, y en los microcontroladores, en sistemas pequeos es de lectura/escritura. En los computadores se utiliza como memoria de Cache y memoria de vdeo. Las memorias para computadores generalmente no se consiguen en chips, sino en mdulos de memoria empaquetados en dos formatos bsicos: SIMM y DIMM que contienen 8, 16, 32, 64 o 128 MB cada uno. Estos mdulos se introducen en ranuras o slots en la tarjeta madre de los computadores y en la figura 10.4.1 se muestra su presentacin de 32 y 72 pines.

Figura 10.4.1. Mdulos de Memoria RAM

Memoria ROM Programas y Datos La aplicacin ms difundida en este tipo de memoria ha sido el almacenamiento de cdigos de programas para el momento del arranque de dispositivos que utilizan microprocesadores, como es el caso de los computadores. Los Computadores vienen con una memoria ROM, donde se encuentran alojados los programas del BIOS (Basic Input Output System), el cual contiene las instrucciones y datos necesarios para activar y hacer funcionar el computador y sus perifricos. Debido a que en esta memoria la informacin est disponible en cualquier momento, los programas en una ROM son a menudo los cimientos sobre los que se construye el resto de los programas (incluyendo el DOS). La ventaja de tener los programas fundamentales del computador almacenados en una ROM, es que estn all disponibles y no hay necesidad de cargarlos en la memoria desde el disco de la misma forma que se carga el DOS. Comnmente estos programas son llamados Firmware, lo que indica que se encuentran firmemente almacenados en el Hardware y que no cambian. Funciones matemticas y Generadores de Seales Otra aplicacin de estas memorias consiste en el almacenamiento de tablas de datos que permiten generar funciones matemticas. Por ejemplo existen memorias que almacenan funciones trigonomtricas y hallan el resultado con base en el valor binario introducido en el bus de direcciones. En la figura 10.4.1, se observa como se puede implementar un generador de una seal seno, a partir de la informacin almacenada en una memoria ROM.

Figura 10.4.2. Generador de seales con una memoria ROM

Ejemplos de Memorias Comerciales Las memorias son circuitos integrados cuyos pines se hayan en ambos lados de la cpsula, formando dos lneas o hileras de pines (DIP) y generalmente se fabrican con capacidades de orden de Kilobytes o Megabytes mltiplos de 8, por ejemplo 8k, 16k, 32k, 64k, 128k, o 8M, 16M, 32M, etc.

Figura 10.5.1. Distribucin de pines de un chip de memoria

En la figura 10.5.1 se observa un esquema descriptivo de los pines que generalmente se encuentran en una memoria. A continuacin se da una explicacin de cada uno de estos pines:

A0...An (Bus de direcciones): Estos pines son las entradas para seleccionar la posicin de memoria a escribir o leer y su cantidad define la capacidad de palabras que puede almacenar, dada por la expresin 2n, donde n es el nmero de pines. D0...Di (Bus de Datos): Corresponde a los pines de entrada y salida de datos. En el mercado se consiguen generalmente buses de 1, 4, 8 y 16 bits y lo ms usual es encontrar chips tengan 8 entradas de datos. CS (Chip Select): Este pin se utiliza para seleccionar el chip de memoria que se desea acceder. Esto en el caso del usar dos o ms memorias similares. OE (Output Enable): Utilizado para habilitar la salida de datos. Cuando se encuentra en estado activo las salidas tiene alta impedancia o actan como entradas. R/W (Read/Write): Entrada utilizada en las memorias RAM para seleccionar la operacin de lectura o escritura VCC y GND (Alimentacin): Corresponden a los pines de alimentacin del circuito integrado. Algunas tienen disponible tres pines para este propsito,

pero por lo general son dos y el valor de la tensin de alimentacin depende de la tecnologa de fabricacin del circuito. En las siguientes secciones se indicaran algunos ejemplos de circuitos integrados de uso general disponibles en el mercado, dando un ejemplo de cada uno de los tipos de memorias vistas. MEMORIA SRAM - MCM6264C Esta memoria fabricada por Motorola y desarrollada con tecnologa CMOS tiene una capacidad de 8K x 8. Los tiempos de lectura y escritura del integrado son de aproximadamente 12 ns y tiene un consumo de potencia aproximado de 100 mW. En la Figura 10.5.2 se observa la disposicin de los pines del circuito integrado de esta memoria y sus las caractersticas tcnicas bsicas. Caractersticas Tcnicas Referencia MCM6264C Tipo SRAM Capacidad (bits) 8192 X 8 Tipo de salida 5V Tiempos de Acceso 12/15/20/25/35 ns Encapsulado DIL-28
Figura 10.5.2 SRAM MCM6264C

MEMORIA DRAM 4116 El CI 4116 es una memoria DRAM de 16K x 1. La estructura interna de este integrado se encuentra constituida por un arreglo de 128 filas y 128 columnas donde cada uno de los bits se ubican con una direccin de 14 bits. En la figura 10.5.3 se muestra la disposicin de los pines del circuito integrado. Observe que la entrada de direcciones es de 7 bits (A0...A6). La razn de poseer 7 pines y no 14, se debe a que estos tienen funcin doble, por ejemplo la entrada A0 se utiliza para establecer los valores de los bits A0/A7 de la direccin de memoria que se quiere acceder. Caractersticas Tcnicas Referencia 4116 Tipo DRAM

Capacidad (bits) 16384 X 1 Tipo de salida TRI-STATE Tiempos de Acceso 100/120/150/200 ns Encapsulado DIL-16
Figura 10.5.3. DRAM 4116

Para ingresar una direccin de memoria en este integrado se utilizan las seales de entrada RAS y CAS, las cuales deben estar inicialmente en "1" para recibir los 7 bits menos significativos de la direccin (A6...A0). Despus de ello la entrada RAS debe cambiar a "0" con lo cual los 7 bits se cargan en el registro de direcciones de memoria y el dispositivo queda disponible para recibir los 7 bits mas significativos (A7...A14) de la direccin. Una vez se aplican estos bits, la entrada CAS debe cambiar a "0", cargndolos de esta forma en el registro de direcciones en su respectiva posicin y permitiendo finalmente acceder a la posicin de memoria para efectuar la operacin de lectura o escritura. MEMORIAS PROM - 74S473 Esta memoria tiene una capacidad de 512 palabras de 8 bits y la descripcin de sus pines se muestra en la figura 10.5.4 Caractersticas Tcnicas Referencia 74S473 Tipo PROM Capacidad (bits) 512 X 8 Tipo de salida OPEN COLECTOR Tiempos de Acceso 60 ns Encapsulado

DIL-20
Figura 10.5.4. PROM 74S473

MEMORIA EPROM - 27C16B

Esta memoria de 24 pines tiene una capacidad de 2048 palabras de 8 bits, es decir 2KB. Las salidas de esta memoria son triestado, lo que permite escribir o leer los datos con el mismo bus de datos. Caractersticas Tcnicas Referencia 27C16B Tipo EPROM CMOS Capacidad (bits) 2048 X 8 Tipo de salida (5V) (Vp=12.75V) Tiempos de Acceso 150/250 ns Encapsulado DIL-24
Figura 10.5.5. EPROM 27C16B

Esta memoria tiene dos pines no indicados inicialmente:

VPP: Es utilizado durante la programacin. CE/P (Chip Enable/Program): Utilizado para seleccionar el chip (en caso de emplearse en forma conjunta con otros) y para programar la posicin de memoria seleccionada en el bus de direcciones.

Durante la programacin de la memoria, la entrada OE se debe encontrar en 1. En la entrada debe estar presente una tensin de 5V, as como en los datos y la direccin de memoria. Despus de ello, se aplica pulso de tensin durante 30 ms aproximadamente, para almacenar los datos. Como se vi anteriormente, el borrado de este tipo de memoria se efecta mediante la exposicin del integrado a luz ultravioleta. Una lmpara UV de 12mW, puede ser utilizada para efectuar este proceso, el cual tarda entre 20 y 25 minutos. MEMORIA EEPROM - 28C64A Esta memoria tiene una capacidad de 8K X 8 y tiene caractersticas diferentes a las dems. La informacin almacenada puede perdurar aproximadamente 100 aos y puede soportar hasta 100.000 ciclos de grabado y borrado.

Caractersticas Tcnicas Referencia 28C64A Tipo EEPROM CMOS Capacidad (bits) 8192 X 8 Tipo de salida 5V Tiempos de Acceso 120/150/200 ns Encapsulado DIL-28 y PLCC-32
Figura 10.5.6. EEPROM 28C64A

En la figura 10.5.6 se indica la disposicin de los pines de esta memoria la cual se encuentra disponible en dos tipos de encapsulados (DIL y PLCC). MEMORIA FLASH - 27F256 La capacidad de esta memoria es de 32K X 8 y como memoria Flash tiene la caracterstica particular de ser borrada en un tiempo muy corto (1 seg.). El tiempo de programacin por byte es de 100 ms y el tiempo de retencin de la informacin es de aproximadamente 10 aos. Caractersticas Tcnicas Referencia 28F256 Tipo FLASH EEPROM Capacidad (bits) 32768 X 8 Tipo de salida (5V) (Vp=12.5V) Tiempos de Acceso 90/100/120/150 ns Encapsulado DIL-28
Figura 10.5.7. Memoria Flash 27F256

En la figura 10.5.7 se indica la disposicin de los pines de esta memoria con sus caractersticas tcnicas bsicas.

PROCESADORES DIGITALES

Gran parte de los temas tratados en los captulos precedentes tienen aplicacin en los sistemas digitales actuales, en especial en los computadores, aunque tambin se emplean en otros equipos de uso cotidiano como: impresoras, equipos de sonido y televisores, entre otros. El microprocesador o llamado actualmente Procesador Digital se considera uno de los dispositivos ms importantes en los computadores, debido a la capacidad que tiene de manejar gran variedad de tareas y rutinas. Este dispositivo y en general la microcomputadora ser el tema a estudiar a lo largo del capitulo. Este capitulo pretende mostrar los aspectos bsicos sobre los Procesadores Digitales y su funcionamiento en forma conjunta con otros dispositivos como memorias y puertos. La profundizacin y/o ampliaciones sobre este capitulo se dejan al estudiante debido a que el tema podra tomar varios captulos o inclusive un curso completo

CONFIGURACIN
El procesador digital o microprocesador es el dispositivo que contiene las funciones de la Unidad Central de Proceso (CPU) en un computador. Este dispositivo se encarga de cumplir las funciones bsicas del computador y puede ser incorporado en otros sistemas digitales que realizan funciones especiales. El Procesador en trminos generales es el cerebro de un computador, cuyas partes bsicas son: el contador de programa, el decodificador de instrucciones, los registros y la unidad aritmtica y lgica. En la figura 11.1.1 se indica la disposicin de tales partes.

Figura 11.1.1. Componentes de un procesador

Todos los datos (las instrucciones y los datos) son ledos por la CPU a travs de los registros. Las instrucciones (el cdigo del programa) son ledas en un registro llamado "Instruction Register" y luego son decodificadas mediante un decodificador, que interpreta el tipo de instruccin. Dependiendo de la instruccin, se leen a continuacin los datos a procesar, los cuales se almacenan en un registro llamado "Acumulador" o "Registro de Trabajo" que se encuentra directamente relacionado con la Unidad Aritmtica y Lgica (ALU). La ALU es un modulo del procesador donde se realizan todos los procesos lgicos y aritmticos con los datos. Los resultados de la ALU son almacenados nuevamente en el Acumulador, donde pueden ser enviados a una posicin de memoria o a un dispositivo de E/S. Las seales mas importantes que maneja el procesador corresponden a las del bus del sistema. Este bus cumple un papel importante en el funcionamiento del microcomputador y sern estudiados en la siguiente leccin.

ARQUITECTURA DE UN MICROCOMPUTADOR
Un microcomputador es un sistema digital que contiene por lo menos tres componentes esenciales: un procesador (CPU), una Memoria y los Puertos Entrada/Salida. En la figura 11.2.1 se muestra un diagrama de bloques de estos

componentes y su conexin a travs de los buses de direcciones, datos y control, los cuales sern explicados mas adelante en esta leccin.

Figura 11.2.1. Componentes de un microcomputador

Un microcomputador en pocas palabras puede es una computadora de propsito general, como un PC en miniatura, o un sistema diseado para cumplir una tarea especial, como es el caso de los microcontroladores. En la figura 11.2.2 se muestra la apariencia interna de un microcomputador. Las lneas delgadas que van del centro hacia afuera son los alambres que conectan los bloques internos del microcomputador con los pines de la cpsula.

Figura 11.2.2. Apariencia fsica del interior de un microcomputador

El microcomputador para interactuar con los dems dispositivos como las memorias, puertos y otros utiliza el bus del sistema. A continuacin de dar una explicacin sobre la composicin de este bus y su funcionamiento. Bus del Sistema Los buses de direcciones, datos y control mostrados inicialmente en la figura 11.2.1 son el "bus del sistema". Este bus se encuentra separado en tres canales que manejan respectivamente direcciones, datos y seales de control, los cuales permiten el procesador comunicarse con los dems dispositivos del microcomputador, tales como las memorias y los dispositivos de E/S. Bus de Datos Este bus es bidireccional y es el canal por el cual se conducen los datos entre la CPU y los dems dispositivos (memorias, puertos y otros). Bus de Direcciones El bus de direcciones es un canal unidireccional por el cual la CPU enva las direcciones de memoria para ubicar informacin en los dispositivos de memoria, puertos u otros dispositivos del microcomputador.

Bus de Control El bus de control, al igual que el bus de direcciones es unidireccional y se utiliza para efectuar la lectura y escritura en las memorias y puertos de E/S. Este bus en general lo emplea la CPU para controlar el flujo de los datos y las direcciones de forma organizada. Funcionamiento del Bus del Sistema El bus de datos depende del tamao de los datos que maneja el procesador, este puede tener 8, 16 o 32 bits y el bus de direcciones generalmente tiene como mnimo 16 bits. El bus del sistema se utiliza para transferir informacin entre la CPU y la memoria o para extraer instrucciones almacenadas en memoria y datos presentes en los puertos de E/S. El intercambio de informacin por el bus del sistema se realiza con dos tipos de operaciones:

Ciclo de Lectura: Cuando los datos en Memoria o puertos de E/S se transfieren a la CPU. Ciclo de Escritura: Cuando los datos de la CPU se transfieren a la Memoria o a los puertos de E/S. Las lneas de control son aquellas con las que se controla el flujo de la informacin por los buses, y las ms importantes son:

CHIPSELECT (CS) LECTURA (RD) ESCRITURA (WR) Cada transferencia empieza con la carga de una direccin en el bus de direcciones. Las lneas correspondientes a la los bits menos significativos de la direccin se encuentran conectados directamente a las memorias. Las lneas de direccin de los bits ms significativos se utilizan para seleccionar el dispositivo del cual se desea extraer la informacin, ya sea una EPROM, RAM o un Puerto de E/S. Entonces, el decodificador de direcciones se encarga de seleccionar el dispositivo que se debe activar segn la direccin presente en el bus. Para ello, cada dispositivo en el microcomputador debe tener una nica direccin que lo identifique. En la figura 11.2.3 se muestra un diagrama de los tiempos de las seales presentes durante el flujo de los datos y direcciones en el bus del sistema.

Figura 11.2.3. Diagrama de tiempos de las seales del bus del sistema.

La seal CS selecciona el dispositivo que debe transmitir los datos por el bus de datos. Luego una de las seales RD o WR se activa desde la CPU, con lo cual se ordena al dispositivo seleccionado enviar los datos a la CPU (ciclo de lectura) o recibirlos de la CPU (ciclo de escritura). Todos los ciclos de lectura y escritura comienzan con una direccin vlida de la CPU. Luego el decodificador de direcciones genera una seal CS para seleccionar uno de los dispositivos. Entonces la CPU enva una seal RD o WR para efectuar la lectura o escritura de los datos. Para una operacin de lectura el dispositivo debe conducir a travs del bus de datos, lo cual toma un tiempo corto (el tiempo de acceso de los datos), y los datos deben estar disponibles en el bus durante el flanco de subida de la seal RD. Durante este flanco de subida la CPU toma los datos y los almacena internamente en sus registros.

Durante un ciclo de escritura la CPU por si misma maneja de los datos. En este caso, al igual que en el ciclo de lectura los datos deben estar disponibles en el bus antes de que ocurra el flanco de subida de la seal WR, para que el dispositivo seleccionado pueda recibir los datos correctamente. Arquitecturas de Microcomputadores Actualmente se conocen dos tipos de arquitecturas en los microcomputadores, conocidas como Von-Newman y Harvard. Arquitectura Von-Neuman Los microcomputadores basados en esta arquitectura se caracterizan por tener un solo bus para direcciones y datos, es decir, que el mismo bus se emplea para enviar y recibir instrucciones y datos. Ademas de ello, las instrucciones y los datos son almacenados en una memoria principal. Cuando la CPU se dirige a la memoria principal, extrae la instruccin y despus los datos con los que se efecta la instruccin. Arquitectura de Harvard Esta arquitectura se caracteriza por tener por separado el bus de datos y el bus de direcciones. Esto significa que las instrucciones y los datos son almacenados en memorias diferentes que son accedidas de forma separada por la CPU.

DECODIFICADORES
En los microcomputadores, la comunicacin entre la CPU y otros dispositivos como memorias y puertos se efecta a travs del bus del sistema. El bus de direcciones de un microcomputador se encuentra estrechamente relacionado con los decodificadores, ya que gracias a ellos es posible seleccionar los dispositivos internos del microcomputador y las posiciones de memoria para efectuar operaciones de lectura y escritura. En la figura 11.3.1 se indica como se los decodificadores se emplean dentro de un microcomputadro para seleccionar los dispositivos internos.

Figura 11.3.1 Empleo de los decodificadores en el microcomputador

Esta no es la nica aplicacin de los decodificadores en los microcomputadores. Internamante dentro del a CPU tambin existe un decodificador, llamado el Instruction Decoder (Decodificador de Instrucciones) el cual funciona de forma conjunta con el Instruction Register (Registro de Instrucciones) de la CPU. Segn lo visto en la Leccin 1: Configuracin, sobre la configuracin interna del Procesador Digital (CPU), el registro de instrucciones es el lugar donde se almacena temporalmente la instruccin que la CPU debe ejecutar. Una vez la instruccin se carga en este registro se pasa la informacin al decodificador de instrucciones, el cual se encarga de descifrar la instruccin y sus operandos; despus de ello el decodificador genera las seales correspondientes a los circuitos lgicos dentro de la CPU que se encargan a su vez de generar las seales de control requeridas para que se ejecute finalmente la instruccin.

PUERTOS
Los puertos en un microcomputador corresponden a las interfaces de entrada y salida entre el microcomputador y el mundo exterior. Existen puertos de entrada, salida y bidireccionales (Entrada y Salida). Una de las funciones bsicas del microcomputador es comunicarse con los dispositivos exteriores, es decir, el microcomputador debe ser capaz de enviar y recibir datos desde estos dispositivos. Sin esta funcin, el ordenador no sera operativo porque sus clculos no seran visibles desde el exterior. El funcionamiento de los puertos es similar al de una posicin de memoria. Al igual que los registros de una memoria, los puertos son identificados por la CPU con una direccin en la cual se pueden leer y/o escribir datos. Para trabajar con ellos solo es necesario apuntar a la direccin de memoria que tienen asignada, y el tratamiento es el mismo que el de una posicin de memoria. Los puertos y dispositivos de E/S, en general son todas las interfaces de entrada y salida de datos en un microcomputador. Los dispositivos de E/S ms comunes en aplicaciones son: Teclados, Displays, E/S paralelo, E/S seriales y E/S anlogas. Teclado Este es uno de los perifricos mas importantes en un microcomputador, debido a que gracias a ste, es posible ingresar informacin para procesar por la CPU. Un teclado tpico en las aplicaciones con microcomputadores es el teclado matricial 4X4, como el que se muestra en la figura 11.4.1.

Figura 11.4.1. Teclado Matricial de 4 X 4

La forma como detecta la pulsacin de una tecla, consiste en enviar una seal constantemente a cada una de las filas a travs de las salidas de un puerto del microcomputador y verificar cual de las columnas se activa a travs de un puerto de entrada. Este es el mtodo que generalmente se utiliza para detectar una tecla, y se pude implementar con una rutina de cdigo que funcione de forma cclica. Displays Los displays son perifricos muy importantes y su funcin es mostrar informacin proveniente de los puertos de salida,. Los Displays hacen las veces de monitor en el caso de los computadores de escritorio. Generalmente se emplean display de 7 segmento, aunque hoy en da se ha venido incrementando el uso de Display de Cristal Lquido (LCD), el cual tiene menos consumo de energa que el de 7 segmentos y adems permite mostrar una gran variedad de caracteres. E/S Paralelo El puerto paralelo es el tipo de puerto comnmente empleado en las aplicaciones del microcomputador, generalmente se utiliza para sealizar manejar teclados y habilitar otros dispositivos. E/S Seriales

Este puerto se emplea para establecer comunicacin con otros dispositivos. Algunos microcomputadores y microcontroladores tienen incluido uno de estos puertos en su arquitectura con el cual se puede establecer comunicacin en tres hilos (Trasmisin, Recepcin y Referencia). E/S Anlogas Muchas aplicaciones necesitan de una entrada anloga para medir magnitudes fsicas como temperatura o presin. Algunos microcomputadores tiene conversores A/D que permiten medir estas magnitudes y procesar la informacin en forma digital. Actualmente se consiguen en el mercado microcontroladores con resoluciones entre 8 y 22 bits.

MEMORIAS
En las lecciones precedentes del captulo, se mencion sobre la necesidad de por lo menos una memoria para el funcionamiento de los microcomputadores. Esta memoria puede ser interna o externa, ya sea con chips adicionales o internamente dentro del chip del microcomputador. Generalmente se habla de dos tipos de memoria dentro de un microcomputador: La memoria de Programa. La memoria de Datos. La memoria de programa se utiliza para almacenar las instrucciones de los programas que ejecuta el microcomputador. Generalmente el tipo de memoria que se emplea para almacenar el programa es una memoria ROM, para que la informacin no se pierda cuando se desenergiza el microcomputador. Esta memoria puede ser una EPROM o una EEPROM, aunque hay microcomputadores que almacenan las instrucciones en memorias RAM, pero su uso no es muy difundido. La memoria de datos se emplea para el almacenamiento y lectura de datos que se generan y cambian constantemente durante la ejecucin del programa y la pila. La pila es una porcin de memoria dnde la CPU almacena sus propios datos de uso interno para la ejecucin de subrutinas. Por sus caractersticas, la memoria de datos se encuentra constituida comnmente por una RAM. La cantidad de memoria de programa y datos en un en un microcomputador depende en gran parte de la de la aplicacin. Hay aplicaciones pequeas qu requieren solo 512 Bytes en ROM y 128 Bytes en RAM, as como aplicaciones de mayores prestaciones que requieren hasta de 1 Megabyte de EPROM y RAM. Generalmente el bus de direcciones de los microcomputadores se limita para direccionar 64 Kbytes de memoria, por lo tanto es comn encontrar varios de estos dispositivos con capacidades de 32 Kbytes en ROM y 32 Kbytes en RAM.

Figura 11.5.1. Disposicin interna de las partes de una memoria

Recordando lo visto en capitulo anterior, en la figura 11.5.1 se indica la disposicin interna de una memoria, donde se observan las entradas de datos, direcciones y control que se conectan a la CPU.

INSTRUCCIONES EN LENGUAJE ENSAMBLADOR


Los microcomputadores tienen un lenguaje nico que es capaz de reconocer y ejecutar las instrucciones. Este lenguaje es llamado "Lenguaje de Mquina" y pertenece al procesador del microcomputador. El lenguaje de mquina est compuesto por una serie de instrucciones, las cuales son reconocidas y ejecutadas nicamente por el procesador. Este lenguaje es un conjunto de nmeros que representan las operaciones realizadas por los componentes internos del procesador. Estas instrucciones se encuentran directamente ligadas a la estructura fsica del procesador y no pueden ser modificadas o cambiadas. El lenguaje Ensamblador Es necesario comprender la arquitectura interna del procesador as como sus instrucciones para programar un procesador. Cada procesador tiene un conjunto de registros internos que puede emplearse de maneras distintas para manipular nmeros binario. Las instrucciones ejecutadas por el procesador generalmente manipulan los datos almacenados en la memoria y los registros de trabajo. Las instrucciones de programa de un procesador se guardan como nmeros binarios en la memoria y se conocen como cdigos de operacin (op). Los cdigos de operacin son ledos por la CPU y decodificados para determinar cul es la instruccin que debe ejecutarse. Cada cdigo de operacin se aplica o afecta a otro nmero, tal como el que est guardado en el "registro de trabajo" o "Acumulador". El nmero binario al que se aplica la instruccin se conoce como operando. El operando puede ser otro registro o un nmero binario almacenado en la memoria. Para facilitar la escritura de programas, cada uno de los tipos principales de instrucciones tiene asociado un cdigo alfanumrico corto que ayuda al programador a recordarlos, y estos cdigos alfanumricos se conocen como mnemnicos. Este lenguaje es llamado lenguaje ensamblador y su uso es muy frecuente debido a la facilidad para recordar las instrucciones. A manera de ejemplo en la tabla 11.6.1 se muestra una instruccin en lenguaje ensamblador, la cual efecta una la trasferencia de datos entre dos registros del procesador:

hMnemnicoh Operando MOV A, B

Comentario Carga el registro A con los datos del registro B


Tabla 11.6.1. Instruccin en Lenguaje Ensamblador

La palabra "MOV" es una abreviatura que significa "mover" y corresponde a la instruccin que se da al procesador, el operando "A, B" agrupa los argumentos de la instruccin y en este caso corresponde a dos registros del procesador. Como regla general en el lenguaje ensamblador de varios procesadores, cuando un operando tiene esta sintaxis, indica que el registro a la derecha de la coma es la fuente y el registro a la izquierda es el destino. Existe una correspondencia uno a uno entre las instrucciones en lenguaje de mquina y lenguaje ensamblador y cada uno de los valores numricos del lenguaje de mquina tiene una representacin simblica de 3 a 5 caracteres como instruccin en lenguaje ensamblador, como es el caso de la instruccin de ejemplo anterior. De esta forma los programas pueden ser escritos utilizando nicamente los mnemnicos de las instrucciones y ser procesados posteriormente con un programa denominado ensamblador, el cual genera los cdigos de operacin. Esta es una manera mucho prctica de generar un programa en vez de consultar los cdigos de operacin y cargarlos en memoria manualmente. Tipos de Instrucciones Las instrucciones de un procesador se pueden agrupar en tres tipos: Instrucciones de Transferencia, Instrucciones de Operacin e Instrucciones de Control. A continuacin se describirn las caractersticas bsicas de cada uno de estos grupos: Instrucciones de Transferencia

Como su nombre lo indica, este grupo de instrucciones se utiliza para efectuar transferencia de datos entre los registros de la CPU, la memoria y los puertos de E/S. En la tabla 11.6.2 se indica un ejemplo este tipo de instrucciones.

Mnemnico Operando

Comentario

LDA

Carga el registro A con los datos del registro en la posicin de memoria M.

Tabla 11.6.2. Instruccin de Transferencia en Lenguaje Ensamblador

Instrucciones de Operacin Estas instrucciones se emplean para realizar operaciones aritmticas y lgicas entre los registros del procesador y la memoria. Estas operaciones incluyen suma, resta, incremento decremento, complemento, comparacin y corrimiento. En la tabla 11.6.3 se muestra un ejemplo de una instruccin de operacin.

Mnemnico

Operando

Comentario Suma el registro B con el registro A y el resultado se almacena en el registro A.


Tabla 11.6.3. Instruccin de Operacin en Lenguaje Ensamblador

ADD

Instrucciones de Control En el lenguaje Ensamblador y en general en cualquier lenguaje de programacin las instrucciones de control juegan un papel muy importante en el flujo de un programa. Su funcin consiste en alterar el flujo normal del programa, segn el estado de ciertos registros del sistema que indican alguna condicin despus de ejecutar una instruccin. Con este tipo de instrucciones es posible tomar el control del flujo del programa. En la tabla 11.6.4 se indica un ejemplo de una instruccin de control.

Mnemnico

Operando

Comentario Pasa por alto la siguiente instruccin en el cdigo del programa si el bit del sistema Z=1.
Tabla 11.6.4. Instruccin de Control en Lenguaje Ensamblador

JZ

No existe

La abreviatura JZ corresponde a la frase en ingls Jump If Zero (Saltar si Cero) y la funcin es evaluar el bit del sistema Z del registro de estado. En caso de estar en 0 se ejecuta normalmente la siguiente instruccin, y en caso de estar en 1 se salta la siguiente instruccin. Este bit del sistema se pone en 1 si una operacin anterior di como resultado 0. Hay mucho ms que decir sobre la programacin de un procesador que lo mencionado en esta leccin; sin embargo, si el estudiante desea comprender ms a fondo la forma en que funciona el microcomputador y c mo se programa, es conveniente estudiar un poco sobre diagramas de flujo y programacin.

MICROCONTROLADORES
Qu es un Microcontrolador Muchos de los sistemas digitales pueden disearse empleando procesadores o microcontroladores, la seleccin del dispositivo depende del tipo de aplicacin y la diferencia bsica que existe entre estos dos dispositivos se explica a continuacin:

Los procesadores son empleados para procesar informacin. A manera de ejemplo, con un procesador se podra hallar todas las personas en Bogot entre edades de 15 y 30 aos, de sexo femenino, y ordenados por el Apellido. Los procesadores usan un conjunto de instrucciones tiles para procesar datos, lo cual los hace muy verstiles para manejar informacin. Los microcontroladores son utilizados como su nombre lo indica para controlar. Son muy utilizados para implementar controles automticos. Como ejemplo, un microcontrolador puede sensar la temperatura de un proceso, compararla con un valor almacenado en memoria y tomar la decisin de encender un equipo de calefaccin si la temperatura baja de cierto valor, y adems de ello mostrar el valor en un display.

Los microcontroladores generalmente tienen instrucciones especiales que permiten controlar procesos como el indicado anteriormente y otros ms complejos; todo depende de la habilidad del programador para generar el cdigo para manejar el proceso. Un microcontrolador es simplemente un procesador con memoria ROM y RAM, puertos de E/S y otros dispositivos de propsito especial como conversores A/D, contadores, temporizadores y puertos de comunicacin, o en otras palabras es un microcomputador con funciones especiales. En la figura 11.7.1 se indica la estructura interna tpica de un microcontrolador.

Figura 11.7.1. Estructura tpica de un microcontrolador

Estos dispositivos generalmente incluyen variedad de funciones especiales que se pueden utilizar gracias a los dispositivos internos incluidos dentro de ellos. Entre las caractersticas mas relevantes de un microcontrolador, se pueden enunciar las siguientes: La memoria de programa generalmente es una Flash EEPROM. Tiene puertos de Entrada y Salida (Configurables por software).

Poseen contadores de propsito especial. Tiene incluido un reloj del sistema que permite contabilizar tiempo. Algunos modelos incluyen conversores A/D. Tiene Memoria EEPROM para almacenar datos. Tiene puerto de comunicaciones. Manejan velocidades de operacin hasta 20 MHz. Algunos de estos dispositivos tienen puerto de comunicaciones serial. Tienen entradas para interrupcin. La programacin es rpida. Las herramientas de desarrollo son econmicas y se encuentran disponibles en a red, las cuales incluyen el ensamblador y simulador.

Los microcontroladores se pueden encontrar en varias aplicaciones que se relacionen con medida, almacenamiento, control, clculo entre otras. Tambin se pueden encontrar dentro de los teclados, mdems, impresoras y otros perifricos. Como se puede notar los microcontroladores son dispositivos muy verstiles que pueden ser utilizados en muchas aplicaciones, donde todo el potencial se encuentra en la programacin. Como seleccionar un microcontrolador Dentro de cada familia de dispositivos, usted encontrar normalmente una seleccin de varios microcontroladores dependiendo de los dispositivos internos que tenga disponibles, y la capacidad de memoria de programa y datos. Los microcontroladores tambin se especifican por la cantidad de bits que pueden procesar por unidad de tiempo. Un nmero alto de bits indica que se trata de un dispositivo rpido y de altas prestaciones. Los microcontroladores de 8 bits son muy populares y se emplean en proyectos simples, sin embargo se encuentran arquitecturas que manejan hasta 32 bits, para aplicaciones ms complejas. El consumo de potencia es otra especificacin que se debe tener en cuenta, sobre todo para sistemas alimentados por bateras. Los Chips normalmente son fabricados con tecnologa CMOS debido al consumo bajo que ofrece. Algunos de estos dispositivos CMOS tienen disponible un estado de espera o modo "sleep", como el de los compuatdores cuando se suspenden, el cual limita el consumo de corriente en unos cuantos microamperios cuando los circuitos se encuentran inactivos. Usando este modo de funcionamiento, el consumo de potencia puede ser reducido cuando se da espera a la entrada de datos durante la ejecucin de un programa. Microcontroladores disponibles en el mercado En esta seccin se describen algunos microcontroladores populares que pueden ser empleados para infinidad de aplicaciones. Lo ms recomendable en la seleccin de un microcontrolador es tener disponible un buen juego de herramientas de desarrollo y que su costo no sea tan elevado, adems de ello tambin es importante tener acceso a la documentacin del dispositivo para conocer su arquitectura y funciones. Para iniciarse en la programacin de estos dispositivos generalmente son recomendables los microcontroladores de INTEL, MOTOROLA y MICROCHIP entre otros, de los cuales se consiguen con facilidad sus herramientas de desarrollo y documentacin. A continuacin de dar una breve descripcin de los dispositivos de cada una de estas Marcas. FAMILIA 805X, 80186 - INTEL Los microcontroladores de la serie 8051, son la segunda generacin despus del 8048. Este dispositivo es muy poderoso y fcil para programar. Tiene arquitectura Harvard, es decir, que los la memoria de datos y programa se encuentran por separado en su estructura. La memoria del programa es de 64K y la memoria de datos es de 128 bytes y 256 bytes para los 8052. Hay disponible gran cantidad de software de desarrollo para los microcontroladores de esta familia que puede ser encontrado en Internet. La tercera generacin de estos microcontroladores son los de la familia 80C196, los cuales manejan palabras de 16 bits. Entre las principales caractersticas de estos dispositivos se pueden enumerar las siguientes: efectan operaciones de multiplicacin y divisin el hardware multiplica y divide, 6 modos de direccionamiento, Sistema de E/S de alta velocidad, Conversor A/D, mdulo de comunicacin serial, 8 fuentes de interrupcin, generador de PWM, Watchdog Timer. Existe tambin el microcontrolador 80386 EX, el cual tiene toda la potencialidad de un procesador 80386 pero con dispositivos adicionales que lo convierten en un microcontrolador muy potente y verstil. Este dispositivo tiene puerto serial, modos de ahorro de energa, contadores y temporizadores, memoria DRAM y fuentes de interrupcin. FAMILIA 68HC11 - MOTOROLA El 68HC11 es un microcontrolador de 8 bits. Este microcontrolador tiene bus de direcciones interno de 16 bits con un juego de instrucciones similar al de sus predecesores de las familias 6801, 6805 y 6809. La arquitectura de estos microcontroladores es Von-Newman, es decir, que las direcciones y los datos comparten el mismo espacio en memoria. Dependiendo de la variedad, los 68HC11 tienen EEPROM incorporada, RAM, entradas y salidas digitales, temporizadores, conversor A/D, generador de PWM, contadores de pulsos, puerto de comunicaciones seriales sincrnicas y asincrnicas, entre otras funciones. PIC16C - MICROCHIP Los microcontroladores de Microchip fueron los primeros dispositivos RISC. RISC significa que el dispositivo tiene un nmero reducido de instrucciones, lo cual implica simplicidad en su arquitectura y bajo costo. Aunque estos microcontroladores tienen pocas instrucciones (33 para el PIC16CXX) en la actualidad son muy utilizados por su facilidad de programacin y costo reducido.

Estos dispositivos son de arquitectura Harvard, por lo cual teien buses de datos y direcciones separados. Los beneficios que tiene este dispositivo frente a los dems es su sencillez, lo cual permite fabricarlo en chips muy pequeos, con la ventaja adicional de consumir muy poca energa. Estos dispositivos son muy populares y generalmente se encuentran en aplicaciones en revistas de electrnica e Internet. Actualmente existen varias familias de este microcontrolador entre las cuales se pueden destacar la PIC16C5X, PIC16CXX, y la PIC17CXX, que tambin se pueden conseguir con memoria Flash en las familias PIC16FXXX