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 g 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 0 1 1 0 0 0 0 2 0 0 1 0 1 1 0 1 1 0 1 3 0 0 1 1 1 1 1 1 0 0 1 4 0 1 0 0 0 1 1 0 0 1 1 5 0 1 0 1 1 0 1 1 0 1 1 6 0 1 1 0 1 0 1 1 1 1 1 7 0 1 1 1 1 1 1 0 0 0 0 8 1 0 0 0 1 1 1 1 1 1 1 9 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 Y 1
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 2 n 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 2 n 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 (I 0 a I 7 ), una para cada uno de los ocho dgitos y 3 salidas que conforman el nmero binario equivalente (A 0 a A 2 ). 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 I 0 I 1 I 2 I 3 I 4 I 5 I 6 I 7 A 2 A 1 A 0
1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 Tabla 3.5.1. Tabla de verdad de codificador de 8 a 3. En la tabla de verdad, A 0 tiene un 1 lgico para la columnas de entrada con subndice impar. La salida A 1 es 1 en la columnas I 2 , I 3 , I 6 e I 7 y la salida A 2 es 1 en la columnas I 4 , I 5 , I 6 e I 7 . Las expresiones lgicas son las siguientes: A 0 = I 1 + I 3 + I 5 + I 7
A 1 = I 2 + I 3 + I 6 + I 7
A 2 = I 4 + I 5 + I 6 + I 7
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 I 0 I 1 I 2 I 3 I 4 I 5 I 6 I 7 A 2 A 1 A 0
X X X X X X X 0 0 0 0 X X X X X X 0 1 0 0 1 X X X X X 0 1 1 0 1 0 X X X X 0 1 1 1 0 1 1 X X X 0 1 1 1 1 1 0 0 X X 0 1 1 1 1 1 1 0 1 X 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 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. Dgito Decimal BCD A 3 A 2 A 1 A 0
0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 1 0 0 1 Tabla 3.5.3. Cdigo Decimal BCD. El bit A 3 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: A 3 = 8+9 Por tanto las funciones siguientes corresponden a: A 2 = 4+5+6+7 A 1 = 2+3+6+7 A 0 = 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. Animacin Teclado
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 2 n , donde n corresponde al nmero de lneas de seleccin y 2 n 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 I 0 e I 1 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 I 0 , I 1 y S. Por ejemplo, s I 0 =0, I 1 =1 y S=0, entonces Y=I 0 =0. La tabla de verdad se muestra en la tabla 3.6.1. S Y 0 I 0
1 I 1
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 I 0 , I 1 , I 2 e I 3 y la seleccin viene dada por las entradas S 0 y S 1 . 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 I 0 =1, I 1 =1, I 2 =0, I 3 =1 y S 1 =1, S 0 =0 entonces Y=I 2 =0. Entrada de Seleccin de datos Entrada Seleccionada S 1 S 0 Y 0 0 I 0
0 1 I 1
1 0 I 2
1 1 I 3
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= I 0 , s S 1 =0 y S 0 =0. Entonces Y = I 0 S 1 S 0 . La salida es Y= I 1 , s S 1 =0 y S 0 =1. Entonces Y = I 1 S 1 S 0 . La salida es Y= I 2 , s S 1 =1 y S 0 =0. Entonces Y = I 2 S 1 S 0 . La salida es Y= I 3 , s S 1 =1 y S 0 =1. Entonces Y = I 3 S 1 S 0 . Sumando lgicamente las ecuaciones anteriores: Y = I 0 S 1 S 0 + I 1 S 1 S 0 + I 2 S 1 S 0 + I 3 S 1 S 0
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 2 n 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 I 0 e I 1 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 I 0 e I 1 . Por ejemplo si la seleccin de las lneas I 0 I 1 = 10 la salida Y 2 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 I 0 I 1 Y 0 Y 1 Y 2 Y 3
1 X X 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 1 0 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 A B C P 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 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, 2 n /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 = E (m 1 , m 2 , m 4 , m 7 ) Asumiendo P = E (m 1 , m 2 , m 4 , m 7 ) = (A B) X = (A-B + A-B) X = (A-B + A-B)-X+ (A-B + A-B)-X = A-B-X + A-B-X + |(A-B)-(A-B)|-X = A-B-X + A-B-X + |(A+B)-(A+B)|-X = A-B-X + A-B-X + (A-A+A-B+B-A+B-B)-X = A-B-X + A-B-X+A-B-X+A-B-X Llegamos a la igualdad, P = E (m 1 , m 2 , m 4 , m 7 ) = ABC + ABC+ ABC + ABC Entonces, P = A B C 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 A B C P C 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 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 = E (m 1 , m 2 , m 4 , m 7 , m 8 , m 11 , m 13 , m 14 ). 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 = A 1 A 0
B = B 1 B 0
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 = A 3 A 2 A 1 A 0 = A i+3 A i+2 A i+1 A i
B = B 3 B 2 B 1 B 0 = B i+3 B i+2 B i+1 B i
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 A 3 =B 3 , A 2 =B 2, A 1 =B 1 y A 0 =B 0 . La igualdad de los nmeros A i y B i se determina comparando los coeficientes segn el valor 0 1 para los dos bits. En la comparacin se emplea la variable y i . 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: y i (A i =B i ) = A i B i + A i B i = (A i B i )' Por ejemplo, s A 3 = 1 y B 3 = 1; y 3 ser igual a y 3 = A 3 B 3 + A 3 B 3 = 11 + 11 = 1 pero s A 3 = 1 y B 3 = 0 ; y 3 = A 3 B 3 + A 3 B 3 = 10 + 01 = 0. La comparacin se realiza para el resto de los ceficientes A i y B i . El nmero A ser igual a B s se cumple la condicin y i =1 para todos los coeficientes, es decir una operacin AND: (A=B) = y 3 y 2 y 1 y 0
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) = A 3 B 3 + y 3 A 2 B 2 + y 3 y 2 A 1 B 1 + y 3 y 2 y 1 A 0 B 0
(A<B) = A 3 B 3 + y 3 A 2 B 2 + y 3 y 2 A 1 B 1 + y 3 y 2 y 1 A 0 B 0
Ejemplo Comparar los nmeros binarios A = A 3 A 2 A 1 A 0 = 1001 y B = B 3 B 2 B 1 B 0 = 1011. El valor de las variables y i : y 3 (A 3 =B 3 ) = (1)(1) + (0)(0) = 1 ; y 2 (A 2 =B 2 ) = (0)(0) + (1)(1) = 1 ; y 1 (A 1 =B 1 ) = (0)(1) + (1)(0) = 0 ; y 0 (A 0 =B 0 ) = (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 C out 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 C out S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 Tabla 3.9.1. Tabla de verdad del sumador medio La salida obtenida a partir de la tabla de verdad es: X + Y = C out S El bit de acarreo C out es 1, slo cuando A y B tienen el valor de 1; por tanto entre A y B se puede establecer una operacin AND: C out = 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 C in denotan al primer sumando, el segundo sumando y el acarreo de entrada. Las salidas S y C out representan a la suma y el acarreo de salida. A B C in C out S 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 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 = ABC in + ABC in + ABC in + ABC in
S = C in (AB + AB) + C in (AB + AB) S = C in (AB + AB) + C in (AA + AB + AB + BB) S = C in (AB + AB) + C in ((A + B)(A + B)) S = C in (AB + AB) + C in ((AB)(AB)) S = C in (AB + AB) + C in (AB + AB) S = (A B) C in
El mapa de karnaugh de la salida C out se muestra en la figura 3.9.3.
Figura 3.9.3. Mapa para la salida C out de un Sumador Completo. La salida C out est dada por: C out = AB + AC in + BC in
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) C in
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 C inx ). 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 C in1 . 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 S I Y 0 0 0 Pasa a Y 0 1 1 Pasa a Y 1 0 1 Complemento a Y 1 1 0 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 I i 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. C 1 es el acarreo de la suma de los nmeros A y B de entrada (ver figura 3.11.4) y los dgitos S 1 a S 4
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 S 5 a S 8 representan la suma BCD. C 2 es el acarreo de salida de la suma BCD. Decimal Suma Binaria Suma BCD C 1 S 4 S 3 S 2 S 1 C 2 S 8 S 7 S 6 S 5
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 2 0 0 0 1 0 0 0 0 1 0 3 0 0 0 1 1 0 0 0 1 1 4 0 0 1 0 0 0 0 1 0 0 5 0 0 1 0 1 0 0 1 0 1 6 0 0 1 1 0 0 0 1 1 0 7 0 0 1 1 1 0 0 1 1 1 8 0 1 0 0 0 0 1 0 0 0 9 0 1 0 0 1 0 1 0 0 1 10 0 1 0 1 0 1 0 0 0 0 11 0 1 0 1 1 1 0 0 0 1 12 0 1 1 0 0 1 0 0 1 0 13 0 1 1 0 1 1 0 0 1 1 14 0 1 1 1 0 1 0 1 0 0 15 0 1 1 1 1 1 0 1 0 1 16 1 0 0 0 0 1 0 1 1 0 17 1 0 0 0 1 1 0 1 1 1 18 1 0 0 1 0 1 1 0 0 0 19 1 0 0 1 1 1 1 0 0 1 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 C 1 es 1 se necesita sumar 0110 o una correcin. Lo mismo entre las combinaciones 1010 y 1111, se tiene una correccin cuando S 2 =S 4 =1 S 3 =S 4 =1. La expresin lgica de la correccin es: C 2 = C 1 + S 3 S 4 + S 4 S 2
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 S 2 distingue entre las operaciones aritmticas y lgicas. Las entradas de seleccin S 0 y S 1 determinan la operacin aritmtica o lgica. Con las entradas S 0 y S 1 se pueden elegir cuatro operaciones aritmticas (con S 2 en un estado) y cuatro logicas (con S 2 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 (S 1 , S 0 ) permiten seleccionar una de las compuertas de entrada, correspondientes a la funcin F i . S 1 S 0 Salida Funcin F i
0 0 F=A i +B i OR 0 1 F=A i B i XOR 1 0 F=A i B i 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 C in en un valor lgico 0. El resto de las funciones se enuncian en la columna descripcin. Seleccin de Funcin Salida N Funcin Descripcin S 1 S 0 C in N F 0 0 0 0 A Transferir A 0 0 1 0 A+1 Incrementar A 0 1 0 B A+B Suma agregar B a A 0 1 1 B A+B+1 Suma con accarreo agregar B a A ms 1 1 0 0 B A+B Agregar el complemento de 1 de B a A 1 0 1 B A+B+1 Agregar el complemento de 2 de B a A 1 1 0 Todos unos A-1 Decrementar A 1 1 1 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 B i
para obtener las siguientes funciones: S 1 S 0 N i
0 0 0 0 1 B i
1 0 B i ' 1 1 1 Tabla 3.12.3. Tabla del circuito para la entrada B i
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 C in . El circuito combinacional aritmtico se muestra en la figura 3.12.4. En la figura, la entrada A se denomina M i 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. Disear la seccin aritmtica independientemente de la seccin lgica. 2. Determinar las operaciones lgicas del circuito aritmtico, asumiendo que los acarreos de salida de todas las etapas son 0. 3. 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 (S 2 ), con el fin de seleccionar entre las operaciones lgicas y aritmticas. En este diseo, un valor S 2 = 1 hace que el circuito efecte operaciones lgicas. Recordando la salida de un sumador completo: F = (A i B i ) C in
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. S 2 S 1 S 0 A i B i C in
Operacin Sumador Completo Funcin requerida F i
Manipulacin Salida 1 0 0 A i 0 0 A i OR Aplicar una funcin OR A i + B i
A i +B i
1 0 1 A i B i 0 A i B i XOR Ninguna A i B i
1 1 0 A i B i ' 0 A i B i AND Aplicar una funcin OR A i + B i ' A i B i
1 1 1 A i 1 0 A' i NOT Ninguna A' i
Tabla 3.12.4. Tabla de obtencin de las funciones lgicas con un sumador completo Partiendo de la tabla 3.12.4., las entradas M i , N i y C ini en un sumador completo, son equivalentes a las siguientes expresiones: M i = A i + S 2 S 1 'S 0 'B i + S 2 S 1 S 0 'B i ' N i = S 0 B i + S 1 B i ' C ini = S 2 'C i
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 S 2 , S1, S0 y Cin. Las operaciones aritmticas son las mismas del circuito aritmtico. Seleccin Salida F hDescripcin hS 2 hS 1 hS 0 C in F 0 0 0 0 A Trasferir A 0 0 0 1 A+1 Incrementar A 0 0 1 0 A+B Suma 0 0 1 1 A+B+1 Suma con accarreo 0 1 0 0 A-B-1 Resta con prstamo 0 1 0 1 A-B Sustraccin 0 1 1 0 A-1 Decrementar A 0 1 1 1 A Transferir A 1 0 0 X A+B OR 1 0 1 X A B OR-Exclusiva 1 1 0 X A B AND 1 1 1 X A 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 A 0 B 0 , A 1 B 0 , A 2 B 0 y A 3 B 0 . En el segundo nivel de compuertas, las operaciones A 0 B 1 , A 1 B 1 , A 2 B 1 y A 3 B 1 . En el tercero, las operaciones A 0 B 2 , A 1 B 2 , A 2 B 2 y A 3 B 2 y en el cuarto A 0 B 3 , A 1 B 3 , A 2 B 3 y A 3 B 3 . Por ejemplo, A 0 B 0 es directamente el resultado P 0 . El dgito P 3 , se obtiene de la suma de los bits de entrada a los sumadores S3, S6, S9 y el bit A 3 B 0 . 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: - 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. Tipos de PLD Los PLD se dividen en dos clases: 1. 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. Planteamiento de las especificaciones. 2. Entrada del diseo:En esta etapa se realiza una descripcin del circuito, para la cual existen varias alernativas, a. Captura Esquemtica: Dibujo del circuito mediante interfaz grfica, puede ser un diagrama de bloques. b. Mediante lenguajes de descripcin HDL como VHDL, Verilog, Abel y CUPL. c. Diagramas de transicin de estados. d. Formas de onda Tablas de verdad. 3. Simulacin HDL (Opcional): Simula el comportamiento del circuito que se acaba de describir antes de la sntesis. 4. Sntesis lgica: Consiste en tomar la descripcin HDL y a partir de ella, generar y simplificar las ecuaciones lgicas correspondientes al circuito descrito. 5. Simulacin funcional: Simula las ecuaciones lgicas, sin tener en cuenta los retardos. 6. 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. 7. 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. 8. Programacin: La implementacin genera un archivo JEDEC que indica el estado de las conexiones. Este archivo se usa para programar (o quemar el chip). 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. Sintetiza y simplifica las ecuaciones lgicas. 2. Simula las ecuaciones. 3. Sintetiza el circuito lgico. 4. Simula el circuito lgico. 5. 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. Facilita el uso de las partes de un diseo en otros (Reutilizacin). 4. Es posible verificar el funcionamiento del sistema dentro del proceso de diseo sin necesidad de implementar el circuito. 5. 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. 6. 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. 7. Las descripciones en un HDL proporcionan documentacin de la funcionalidad de un diseo independientemente de la tecnologa utilizada. 8. Una descripcin realizada en un HDL es ms fcil de leer y comprender que los nestlist o circuitos esquemticos. 9. 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.
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. Verifica si existen errores en la sintaxis del programa fuente. 2. Simplifica o sintetiza las ecuaciones segn sea el caso. 3. Simula las ecuaciones. 4. Puede escoger el dispositivo que mejor se adapte, o verificar si el dispositivo especificado s se adapta a la aplicacin. 5. Genera el archivo JEDEC para la programacin del PLD. VHDL 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.
erramientas 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. Lenguajes de Descripcin de Circuitos. 2. Diagramas Esquemticos. 3. Grafos y Diagramas de Flujo. 4. Simulacin de Eventos. 5. Simulacin Funcional. 6. Simulacin Digital. 7. Simulacin Elctrica. 8. Diseo de PCBs. 9. 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 L Combinatoria con nivel bajo activo. H Combinatoria con nivel alto activo. R Registro. RA Registro asncrono. X Registro O exclusivo. V Vestil. M 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 (E 2 CMOS) 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 V DD (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 t PD
I CC
(mA) Caractersticas GAL16V8A 20 10, 15, 25 55, 115 E 2 CMOS PLD Genrica GAL18V10 20 15, 20 115 E 2 CMOS PLD Universal GAL22V8A 24 10, 15, 25 55, 115 E 2 CMOS PLD Genrica GAL22RA10 24 15, 20 115 E 2 CMOS PLD Universal GAL22V10 24 10, 15, 25 130 E 2 CMOS PLD Universal GAL26CV12 28 15, 20 130 E 2 CMOS PLD Universal GAL6001 24 30, 35 150 E 2 CMOS FPLA ispGAL16Z8 24 30, 35 190 E 2 CMOS PLD Programable en Circuito Tabla 4.2.2. Familias GAL del fabricante Lattice
incipios 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
/***************************************************************/ /* 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 Sintaxis Abreviada Pin 1 = Nombre; Pin [2,3] = [Nombre, Nombre2]; Pin 2 = !Nombre; Pin [2,3] = ![Nombre, Nombre2]; Pin 3 = !SET; 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 A B # OR A#B A+B ! NOT !A A' $ XOR A$B AB 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 12 = inva; Pin 13 = invb; Pin 14 = and; Pin 15 = nand; Pin 16 = or; Pin 17 = nor; Pin 18 = xor; Pin 19 = xnor; /* Definicin de Ecuaciones Lgicas*/ inva = !a; /* Inversin de las entradas a y b*/ invb = !b; and = a & b; /* Funcin AND */ nand = !(a & b); /* Funcin NAND */ or = a # b; /* Funcin OR*/ nor = !(a # b); /* Funcin NOR */ xor = a $ b; /* Funcin XOR */ xnor = !(a $ b); /* 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. S i R i Q i+1
0 0 Q i
0 1 0 1 0 1 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 Q i indica el i-simo instante y Q i+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). S i R i Q i+1
0 0 -
0 1 0 1 0 1 1 1 Q i
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. S i R i E Q i+1
0 0 1 Q i
0 1 1 0 1 0 1 1 1 1 1 - X X 0 Q i
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 Q i+1
0 0 Q i
0 1 0 1 0 Q i
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 S-R. 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.
lip-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 Q i+1
0 0 1 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 flip-flop cambie a su estado complementario. J K CLK Q i+1
0 0 Q i
1 0 1 0 1 0 1 1 Q i ' 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 Q i+1
0 Q i
1 Q i ' Tabla 5.5.3. Estados del flip-flop T
lip-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 inversores NMOS y PMOS. I nversor 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 (V ENT ) 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 (V SAL ) 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. I nversor 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 Q 3 Q 2 Q 1 Q 0
0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 ... ... ... ... ... 15 1 1 1 1 16 0 0 0 0 17 0 0 0 1 ... ... ... ... ... 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 (2 4 =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 Q 3 tiene una frecuencia dada por la siguiente expresin:
donde f CLK 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 MOD2 n , y para lograrlo es necesario utilizar la entrada asincrnica de borrado CLR de los flip-flops, como veremos a continuacin. Contadores con nmeros MOD < 2 n
Los contadores bsicos pueden ser modificados para producir nmeros MOD < 2 n , 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 Q 3 y Q 1 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 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 ... ... ... ... ... 9 1 0 0 1 10 0 0 0 0 11 0 0 0 1 ... ... ... ... ... 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 Q 0.
Nmero de pulsos Q3 Q2 Q1 Q0 0 1 1 1 1 1 1 1 1 0 2 1 1 0 1 ... ... ... ... ... 15 0 0 0 0 16 1 1 1 1 17 1 1 1 0 ... ... ... ... ... 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 Q 0 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 Q 2 Q 1 Q 0
0 0 0 0 1 0 0 1 2 0 1 0 3 0 1 1 4 1 0 0 5 1 0 1 6 1 1 0 7 1 1 1 8 0 0 0 Tabla 6.2.1. Estados del contador sincrnico ascendente de 3 bits Ahora note que la salida Q 1 cambia a su estado complementario cada vez que Q 0 =1 (ver tabla 6.2.1), as que las entradas J y K del flip-flop F1 deben estar contadas a la salida Q 0 . 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 Q 2 , para lo cual se debe obsevar nuevamente la tabla 6.2.1. Note que Q 2 cambia a su estado complementario cada vez que Q 1 y Q 0 son 1, as que la forma de implementarlo en el contador es conectado Q 1 y Q 0 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 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 ... ... ... ... ... 15 1 1 1 1 16 0 0 0 0 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 Q 2 , Q 1 y Q 0 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 Contador Binario (14 bits)
Q1 ... Q13 (Quits): Salidas Binarias RES (Reset): Entrada de Borrado INP (Input): Entrada Asincrnica para incremento del contador Vdd, Gnd Alimentacin Contador Binario (12 bits)
Q0 ... Q11 (Quits): Salidas binarias CLK (Clock): Entrada de reloj RES (Reset): Entrada de Borrado Vdd, Gnd (Voltaje, Ground): Alimentacin Contador Decadal (4 bits)
CLR' (Clear): Entrada de borrado, en cero inicializa todas las salidas a cero CLK (Clock): Entrada de Reloj A, B, C, D Entradas de Datos Paralelo ENP, ENT Entradas de Sostenimiento LD' (Load'): Entrada de habilitacin de carga de datos. Se usa de forma conjunta con las entradas A, B, C, D QA, QB, QC, QD (Quits): Salidas RCO Salida de Rebasamiento. Cuando el contador llega al ltimo dgito se genera un acarreo (1) Contador Binario (4 bits)
CLR' (Clear): Entrada de borrado, en cero inicializa todas las salidas a cero CLK (Clock): Entrada de Reloj A, B, C, D Entradas de Datos Paralelo ENP, ENT Entradas de Sostenimiento LD' (load): Entrada de habilitacin de carga de datos. Se usa de forma conjunta con las entradas A, B, C, D QA, QB, (Quits): Salidas QC, QD RCO Salida de Rebasamiento. Cuando el contador llega al ltimo dgito se genera un acarreo (1) Contador Decadal Up/Down (4 bits)
D0, D1, D2, D3 Entradas Paralelo CTEN' (Count Enable'): Entrada de habilitacin para el contador D/U' (Down/Up'): entrada de seleccin de la secuencia, ascendente o descendente Q0, Q1, Q2, Q3 (Quits): salidas binarias LD' (load): entrada de carga de los datos presentes en D0...D3 M/m (Max/\): salida de sealizacin de rebasamiento del contador. En 1 indica que hay carry al rebasar el nmero 1001 en modo ascendente o cuando alcanza el 0000 en modo descendente. RCO Salida de propagacin para conexin en cascada con 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.
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 s 500O 74LS14 0.8/RC R s 2O 74HC14 1.2/RC R s 10MO 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 R A , R B 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 t 1 y t 2 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.
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 (Q i+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 = D A = AX + BX B = D B = 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 A B X A B Y 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 0 0 1 1 1 1 0 1 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 2 m+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 Actual Estado Siguiente Salida X=0 X=1 X=0 X=1 AB AB AB Y Y 00 00 01 0 0 01 00 11 1 0 10 00 10 1 0 11 00 10 1 0 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 Q i Q i+1 J K 0 0 0 X 0 1 1 X 1 0 X 1 1 1 X 0 Tabla 7.1.3. Tabla de transicin del flip-flop JK En la tabla, Q i corresponde al estado actual y Q i+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 flip-flop 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 Q i cambia estando presentes las entradas J i y K i
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 0 0 0 0 0 1 0 X 0 X 1 X 0 0 1 0 1 0 0 X 1 X X 1 0 1 0 0 1 1 0 X X 0 1 X 0 1 1 1 0 0 1 X X 1 X 1 1 0 0 1 0 1 X 0 0 X 1 X 1 0 1 1 1 0 X 0 1 X X 1 1 1 0 1 1 1 X 0 X 0 1 X 1 1 1 0 0 0 X 1 X 1 X 1 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 J 1 . de la tabla de estado 7.1.4.
Figura 7.1.5. Mapa de Karnaugh para el estado J 1
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 J 1 es: J 1 = Q 0
Esta expresin indica que en el circuito lgico la salida Q 0 debe ir conectada a la entrada J 1 . 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. Asignacin de estados 2. Construccin del diagrama de transicin 3. Elaboracin de la tabla de estados 4. Obtencin de ecuaciones o funciones lgicas 5. 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 X A B A B J A K A J B K B
0 0 0 0 0 0 X 0 X 1 0 0 0 1 0 X 1 X 0 0 1 1 0 1 X X 1 1 0 1 0 1 0 X X 0 0 1 0 1 0 X 0 0 X 1 1 0 1 1 X 0 1 X 0 1 1 1 1 X 0 X 0 1 1 1 0 0 X 1 X 1 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 (J A , K A , J B
y K B ) 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 J A , J B , K A y K B
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 X A B A(D A ) B(D B ) Y 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 0 0 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 D A , D B , 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 A B C X A B C JA KA JB KB JC KC Y 0 0 1 0 0 0 1 0 X 0 X X 0 0 0 0 1 1 0 1 0 0 X 1 X X 1 0 0 1 0 0 0 1 1 0 X X 0 1 X 0 0 1 0 1 1 0 0 1 X X 1 0 X 0 0 1 1 0 0 0 1 0 X X 1 X 0 0 0 1 1 1 1 0 0 1 X X 1 X 1 0 1 0 0 0 1 0 1 X 0 0 X 1 X 0 1 0 0 1 1 0 0 X 0 0 X 0 X 1 1 0 1 0 0 0 1 X 1 0 X X 0 0 1 0 1 1 1 0 0 X 0 0 X X 1 1 , 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 (J A , K A , J B, K B, J C y K C ) 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 (y n ) corresponden a las variables secundarias en el instante t (Y t ), y las variables en mayscula corresponden a las variables secundarias en el instante t+1 (Y t+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. Hallar las ecuaciones lgicas para las variables de excitacin y salida del circuito. 2. 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. 3. 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. 4. Asignar un nombre (pueder ser un caracter) a cada fila de la tabla. 5. 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. 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 (x 1 , x 2 ), 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 x 1 y x 2
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 = x 1 y' R = x 2 y z = x 1 y 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 x 1 x 2 =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. Color Salidas de los flip-flops Salidas al Semforo Q 2 Q 1 Q 0 V A R Verde> 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 Amarillo 0 1 1 0 1 0 Rojo 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 Rojo-Amarillo 1 1 1 0 1 1 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 , Q 1 y Q 0 ) 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. Numero de paso Estado de los interruptores S 1 S 2 S 3 S 4
1 ON OFF OFF ON 2 ON OFF ON OFF 3 OFF ON ON OFF 4 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 S 2 y S 4 no se tuvieron en cuenta, debido a que sus estados son el complemento de S 1 y S 3 respectivamante. Estado Actual Entrada Estado Siguiente Estadas de los flip-flops S1 S3 D S1 S3 J1 K1 J3 K3 1 0 0 0 0 X 1 0 X 1 1 0 1 0 X 0 X 1 0 1 0 1 1 1 X X 0 0 0 0 0 1 0 X 1 X 1 0 1 1 1 X 0 1 X 1 1 1 0 1 X 1 X 0 0 1 1 0 0 0 X X 1 0 0 1 1 0 1 X 0 X Tabla 7.4.3. Tabla de estado El siguiente paso consiste en construir los mapas de Karnaugh para los estados de los flip- flops (J 1 , K 1 , J 3 , 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 pines Entradas por compuerta AND Entradas principales Salidas combinacionales bidireccionales Salidas tipo registro Salidas combinacionales PAL16R4 20 16 8 4 4 0 PAL16R6 20 16 8 2 6 0 PAL16R8 20 16 8 0 8 0 PAL20R4 24 20 12 4 4 0 PAL20R6 24 20 12 2 6 0 PAL20R8 24 20 12 0 8 0 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
Captulo 8: 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 19 = qa0; Pin 18 = qa1; Pin 17 = qb0; Pin 16 = qb1; Pin 15 = qc0; Pin 14 = qc1; Pin 13 = 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 1 = clock ; /* Register Clock */ PIN [2,11] = [instr0..1] ; /* Instruction Type Inputs */ PIN [3..10] = [D0..7] ; /* Data Inputs */ PIN 13 = !out_enable ; /* Register Output Enable */ PIN 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..7]:& ; !Q0.d = clear # (count # hold) & !Q0 $ load & !D0 # count & carry_in ; !Q1.d = clear # (count # hold) & !Q1 $ load & !D1 # count & carry_in & Q0 ; !Q2.d = clear # (count # hold) & !Q2 $ load & !D2 # count & carry_in & [Q0..1]:& ; !Q3.d = clear # (count # hold) & !Q3 $ load & !D3 # count & carry_in & [Q0..2]:& ; !Q4.d = clear # (count # hold) & !Q4 $ load & !D4 # count & carry_in & [Q0..3]:& ; !Q5.d = clear # (count # hold) & !Q5 $ load & !D5 # count & carry_in & [Q0..4]:& ; !Q6.d = clear # (count # hold) & !Q6 $ load & !D6 # count & carry_in & [Q0..5]:& ; !Q7.d = clear # (count # hold) & !Q7 $ load & !D7 # count & carry_in & [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 28 = CNT0; /* Also used for Upper limit loading */ PIN 15 = CNT1; /* Also used for Upper limit loading */ PIN 26 = CNT2; /* Also used for Upper limit loading */ PIN 17 = CNT3; /* Also used for Upper limit loading */ PIN 19 = CNT4; /* Also used for Upper limit loading */ PIN 24 = CNT5; /* Also used for Upper limit loading */ PIN 20 = CNT6; PIN 23 = CNT7; PIN 18 = UL6; /* Used for Upper limit loading */ PIN 25 = UL7; /* Used for Upper limit loading */ PIN 27 = UPL; PINNODE 29 = UEQUAL; /* Upper limit has been reached */ PINNODE 30 = PLDONE; /* Preloading has finished */ PINNODE 31 = LEQUAL; /* Lower limit has been reached */ PINNODE 32 = UP; /* Count direction */ PIN 16 = !RESET; /* Reset signal clears all registers */ PIN 14 = !CNTOE; /* I/O pin OE used for loading upper limit */ PINNODE 45 = UL0; /* Shared input MUX definition */ PINNODE 46 = UL2; /* Shared input MUX definition */ PINNODE 47 = UL5; /* Shared input MUX definition */ PINNODE 48 = UL4; /* Shared input MUX definition */ PINNODE 49 = UL3; /* Shared input MUX definition */ PINNODE 50 = UL1; /* Shared input MUX definition */ UL0.IMUX = CNT0.IOD; /* These definitions are used to */ UL2.IMUX = CNT2.IOD; /* indicate which pin will be fed */ UL5.IMUX = CNT5.IOD; /* through the share feedback MUX.*/ UL4.IMUX = CNT4.IOD; UL3.IMUX = CNT3.IOD; UL1.IMUX = CNT1.IOD; UL0 = CNT0.IOD; UL2 = CNT2.IOD; UL5 = CNT5.IOD; UL4 = CNT4.IOD; UL3 = CNT3.IOD; UL1 = 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 1 = clock1; /* Counter Clock 1 */ Pin 13 = clock2; /* Counter Clock 2 */ Pin 2 = data_in; /* Serial Shift Data Input */ Pin 11 = cntup; /* Count Up/Down Mode Control */ Pin 14 = shift; /* Shift/Count Mode Control */ Pin 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 (V u, 0 ) y la segunda para el estado lgico uno (V u, 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 V sal, 0 mx = Mxima tensin en la salida de una compuerta cuando su estado lgico es cero y con cargabilidad de salida mxima. V sal, 1 mn = Mnima tensin a la salida de una compuerta cuando su estado lgico es uno y con cargabilidad mxima posible. V u, 0 = Tensin de umbral del estado lgico de entrada cero. V u, 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 V E,0 mx , es equivalente a la mxima tensin de salida en estado cero V s,0 mx . De igual forma, la tensin mnima de entrada en estado uno V E,1 mn es igual a la tensin mnima de salida en estado uno V s,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 V u, 0 y V E,0 mx.
M 0 = V u, 0 - V E,0 mx = V u, 0 - V s,0 mx
Margen de ruido en estado uno a la entrada: Es la diferencia entre V E,1 mn y Vu, 1.
M 1 = V E,1 mn - V u, 1 = V s,1 mn - V u, 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: V IL , V IH , V OL y V OH.
En los circuitos TTL, V IL 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 V IH 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 V OL , V OH 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 V IL , V IH , V OL , V OH 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. Salida de Colector Abierto. 2. Salida de Poste Totmico. 3. 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 R L debe conectarse para que la salida hale hacia el nivel alto, cuando el transistor Q 3 est en corte. Si cualquiera de los niveles lgicos de entrada es cero, la juntura base-emisor en Q 1 se polariza directamente. Por consiguiente, la tensin en la base Q 1 es igual a: 0.2 V(Tensin de entrada) + 0.7(Vbe Q1 ) = Vb Q1 = 0.9 V El transistor Q 3 comienza a conducir cuando la suma de las cadas de tensin de Vbc Q1 , Vbe Q2 y Vbe Q3 sean superiores a 1.8 V. Como la tensin en Vb Q1 es 0.9.V, el transistor Q 3
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 Q 2 y Q 3 se saturan debido a que la tensin en la base de Q 1 es superior a la suma de las cadas de tensin Vbc Q1 , Vbe Q2 y Vbe Q3 . 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 Q 4 y el diodo D 1.
Figura 9.2.2. Compuerta TTL de salida tipo totmico La salida es baja cuando Q 2 y Q 3 se encuentran en saturacin como en la compuerta de colector abierto. La ecuacin siguiente expresa el valor de la tensin en el colector de Q 2 : 0.7(Vbe Q3 ) + 0.2 V(Vce Q2 ) = Vc Q2 = 0.9 V Como F = Vce Q3 = 0.2 V, el transistor Q 4 est en corte por: 0.6 V(Vbe Q4 ) + 0.6 V(V D1 ) < 0.11 V(Vc Q2 Vb Q4 ) ya que Vc Q2 = Vb Q4 . Por lo tanto Q 4 est en corte. El diodo se coloca para provocar una cada en el lazo y asegurar el corte de Q 4 con Q 3 saturado. En una transicin de estado lgico 1 en la salida por causa de cambio en la entrada a 0, los transistores Q 2 y Q 3 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 Q 2 entra en corte, Q 4 conduce por el voltaje conectado a su base a travs de la resistencia de 1.6 KW. El transistor Q 4 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 Q 4 disminuye, por lo que ste pasa a la regin activa. Entonces, el voltaje de salida es: F = 5 - 0.6 V(Vbe Q4) - 0.6 V(V D1 ) = 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. Un estado de bajo nivel (0). 2. Un estado de alto nivel (1). 3. 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 B 1 en alto. La compuerta inversora de tres estados se activa en su funcionamiento con la entrada B 2 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 A 1 (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. A 1 B 1 C 1 A 2 B 2 C 2
0 0 Z 0 0 0 1 0 Z 1 0 1 0 1 0 0 1 Z 1 1 1 1 1 Z 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 B 2 en alto, hace que el transistor T 5 se corte; por lo tanto la corriente base colector de T 5 satura los transistores T 6 y T 7 . El diodo D 6 conduce y esto produce que los transistores de salida del circuito se corten, debido al potencial bajo en el emisor de T 1 y el colector de T 2 . La conduccin de T 1 , bloquea a T 2 y T 4 no recibe corriente en la base, por lo que entra a estado de corte. De otro lado, el colector del transistor T 2 queda a un potencial muy prximo a masa, llevando a T 3 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 B 1 est en nivel alto (1). Cuando la entrada B 1 est en nivel bajo (0), la salida se encuentra en nivel de impedancia alta (Z) y es independiente del nivel de entrada A 1. En el funcionamiento del circuito interno de la figura 9.2.5., en el estado de entrada B 1 =0 conduce el transistor Q P1 (canal P) y la activacin de este elemento hace conducir a Q N3
(canal N); por lo tanto el drenador Q N3 queda a un potencial de 0 V y esto sita al transistor Q N5 en estado de corte. El potencial de 0 V en la puerta del transistor Q P3 hace conducir a ste, colocando al transistor Q P5 en estado de corte. En este estado de la entrada de control, los transistores de salida Q P5 y Q N5 estn en corte y el terminal de salida queda en estado de alta impedancia o tercer estado. Cuando la entrada B 1 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 A 1 =1, conduce el transistor Q P5 y Q N5 entra en corte, lo cual hace la salida C 1 igual a 1. Cuando A 1 =0, conduce el transistor Q N5 y Q P5 entra en corte, lo cual hace la salida C 1 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 I nversor 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. El transistor MOS de canal p conduce cuando el voltaje de puerta a fuente es negativo. 2. El transistor MOS de canal n conduce cuando el voltaje de puerta a fuente es positivo. 3. 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(Q P1 ) y otro de canal tipo N(Q N1 ). Cuando la entrada A 1 est en nivel bajo (0), Q P1 y Q N1 estn a potencial cero. La entrada est a 0 V con respecto a la fuente de Q N1 y a -V SS con respecto a la fuente de Q P1 . Como resultado el transistor Q P1 se activa y el transistor Q N1 se pone en estado de corte. El resultado es un camino de baja impedancia de V SS a la salida F y uno de alta impedancia de tierra a la salida. Cuando la entrada A 1 est en nivel alto (1), Q P1 y Q N1 estn a potencial V SS . Como resultado el transistor Q P1 se pone en estado de corte y el transistor Q N1 se activa. El resultado es un camino de baja impedancia de tierra a la salida y uno de alta impedancia de V SS a la salida F. La tabla 9.3.1. ilustra los estados en el circuito lgico. A 1 Q 1 Q2 F 0 ON OFF 1 1 OFF ON 0 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 Q P1 y Q P2 entren en corte y ambos transistores Q N1 y Q N2 en conduccin (Ver Tabla 9.3.2). La salida pasa a bajo (0) a travs de Q N1 y Q N2 . Cuando ambas entradas estn en bajo, Q P1 y Q P2 entran a conduccin y Q N1 y Q N2 entran a corte. La salida pasa a alto a travs de Q P1 y Q P2.
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 V SS . El circuito mostrado en la figura 9.3.3. representa una compuerta NAND CMOS. A 1 B 1 Q P1 Q P2 Q N1 Q N2 F 0 0 ON ON OFF OFF 1 0 1 ON OFF OFF ON 1 1 0 OFF ON ON OFF 1 1 1 OFF OFF ON ON 0
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 Q P1 y Q P2 entren en corte y ambos transistores Q N1 y Q N2 en conduccin (Ver Tabla 9.3.3). La salida pasa a bajo (0) a travs de Q N1 y Q N2 . Cuando ambas entradas estn en bajo, Q P1 y Q P2 entran a conduccin y Q N1 y Q N2 entran a corte. La salida pasa a alto (1)a travs de Q P1 y Q P2.
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. A 1 B 1 Q P1 Q P2 Q N1 Q N2 F 0 0 ON ON OFF OFF 1 0 1 ON OFF OFF ON 0 1 0 OFF ON ON OFF 0 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 I NVERSOR 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 Q 1 se polariza inversamente y la unin base colector se polariza directamente. La circulacin de corriente por esta juntura provoca la saturacin del transistor Q 2 . El transistor Q 2 excita a Q 3 , acercndose el potencial de colector de ste a tierra. La tensin de colector de Q 3 , bloquea el transistor Q 4 . Cuando la entrada est en nivel bajo (0), la unin base-emisor de Q 1 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 Q 2 est en nivel alto y hace entrar en conduccin a Q 4 . La saturacin de Q 4 permite un nivel lgico 1 en la salida. El potencial de tierra en el emisor de Q 2 impide la conduccin de Q 3 . Dispositivo Descripcin Q 1 < Transistor de acoplamiento D 1 Diodo de fijacin de nivel de entrada Q 2 Transistor divisor de fase Q 3 y Q 4 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. - Caractersticas de entrada. - Caractersticas de salida. - Cargabilidad de salida (Fan-Out). - Disipacin de potencia. Funcin de Transferencia 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 V ILmx lo ms elevado posible y un valor V IHmn 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 V ss , 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 (V OL = 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 (t PD ) 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 TTL
CMOS 3,3 V CMOS 5 V F LS ALS LV LVC ALVC HC AC AHC Retardo de Propagacin de puerta, tp (ns) 3,3 10 7 9 4,3 3 7 5 3,7 Frecuencia mxima de reloj (MHz) 145 33 45 90 100 150 50 160 170 Excitacin de salida IOL(mA) 20 8 8 12 24 24 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 (V G ) 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 (V G ) 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 V C 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 t acc 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 A 9 ), 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 SRAM - La velocidad de acceso es alta. - 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 SiO 2 (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: - A 0 ...A n (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 2 n , donde n es el nmero de pines. - D 0 ...D i (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 - V CC 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 Comentario MOV A, B 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 M 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 ADD B 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 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 JZ No existe 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 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