INTRODUCCIÓN REGISTROS Los registros son circuitos secuenciales conectados por una serie de biestables conectados en cascada. Tienen diversas aplicaciones prácticas como: • Transmitir y recibir datos en serie y en paralelo. • Conversión de datos en formato serie y paralelo y viceversa. • Almacenamiento de información (memoria) Tipos de registros: ♦ Registros de desplazamiento ENTRADA SERIE − SALIDA SERIE. Es el registro más sencillo, en el que recibimos la información en serie e y en la salida obtenemos también en serie, pero retardad tantos ciclos de reloj como número de biestables compongan el registro. Funcionan de la siguiente forma, partiendo de que en el inicio todos los biestables están reseteados Q=0, en el primer flanco de subida de la señal de reloj (o bajada, dependiendo del biestable), el contenido de la entrada del primer biestable pasa a la su salida que es a su vez la entrada del segundo biestable. Este tipo de registro se suele usar como unidad de retardo. ♦ Registros de desplazamiento ENTRADA SERIE − SALIDA PARALELO. En este tipo de registros, la información se recibe en serie y la salida la obtenemos en paralelo, una vez transcurridos tantos ciclos de reloj como biestables compongan el registro. Las salidas Q están conectadas a las entradas del biestable y a su vez a la salida en paralelo, el funcionamiento es igual que el anterior pero dependiendo del número de biestables y al terminar el ciclo de reloj, tememos una salida de tantos bits en paralelo como número de biestables. ♦ Registros de desplazamiento ENTRADA PARALELO − SALIDA SERIE. En este tipo de registro, la información es introducen en el registro en paralelo simultáneamente en todos los biestables, por el contrario, la salida de los bits se obtienen en serie, una vez transcurridos tantos ciclos de reloj como número de biestables compongan el registro. Se realizan conjugando con un circuito combinacional y otra entrada que llamamos Shift/Load con una entrada directa y otra invertida, cuando se producen un flanco activo de reloj, se produce un paso de las entradas al registro de datos a través del c. Combinacional, cuando está a nivel alto, las puertas permiten el desplazamiento en serie hacia la derecha de los bits almacenados., Produciéndose la salida de todos los datos una vez transcurridos los ciclos de reloj, es útil a la hora de convertir datos paralelos a serie para poderlos enviar por un cable. ♦ Registros de desplazamiento ENTRADA PARALELO − SALIDA PARALELO. En este tipo de registros la información si introducida simultáneamente en los biestables paralelo y cuando se producen un flanco activo de la señal de reloj, los datos se obtienen también a la salida en paralelo. ***Registro UNIVERSAL. Es el que vamos a estudiar al final de la introducción; existe un circuito en el mercado que se denomina Registro Universal XX194, ya que permite todos los tipos de registros de desplazamiento que hemos estudiado. Para seleccionar el modo de funcionamiento, dispone de dos líneas de control que van conectadas a un multiplexor, estas líneas de control seleccionan la forma de conectar los biestables y así funcionar de una forma u otra. 1 CONTADORES Los contadores son circuitos secuenciales cuya salida representa el número de impulsos que se la aplica a la entrada de reloj. Está formado básicamente por biestables interconectados. Pueden contar de forma ascendente si su contenido se incrementa con cada impulso o si decrementa, aunque por lo general los contadores pueden realizar esta función de ambas maneras según el estado de una entrada. Las aplicaciones de los contadores son las siguientes: • Relojes y temporizadores • Divisores de frecuencia. • Frecuencímetros. Según la forma de conectar la señal de reloj, los contadores pueden clasificarse en asíncronos y síncronos. Contadores Asíncronos: En este tipo, la señal de reloj se conecta sólo al primer biestable, mientras que las otras entradas se conectan a la salida del biestable anterior. El conectarse de esta forma la señal de reloj provoca que todos los biestables no cambien de estado al mismo tiempo, por ello reciben el nombre de asíncronos. Las salidas pueden atacar a un display visualizador de siete segmentos, por ejemplo. Su funcionamiento es el siguiente, se parte de que todos los flip−flops están reseteados, cuando se produce un flanco activo de la señal de reloj, las salidas del primer biestable cambian Q=0 y Q'=1, Q' conectada a la señal de reloj del segundo biestable, produce un flaco activo, cambiando el segundo biestable el estado de sus salidas, este proceso se produce de forma indefinida a lo largo de los biestables. Podemos realizar un contador descendente si lo que conectamos a la señal de reloj es la salida Q y no Q'. El asíncrono además de indicar el número de impulsos de señal recibidos puede dividir la frecuencia de la señal de reloj. Como ejemplo la salida de la señal del primer flip−flop tiene la mitad de frecuencia que la salida de señal de reloj original, la salida del segundo flip−flop, una frecuencia 4 veces menor, así sucesivamente obteniendo divisiones en cada salida múltiplos de 2. El inconveniente de este divisor de frecuencias viene dado por el tiempo de propagación de la señal, que hace que si cambiamos el estado del primer biestable deben cambiar de estado éste y el siguiente, provocando que la señal de reloj tenga un retardo al bascular. Si se conectan más, el tiempo de espera que corresponde con el tiempo de propagación, aumenta, lo que limita la frecuencia de funcionamiento del contador. Esta frecuencia máxima viene determinada por la siguiente fórmula F< 1/n.tp (tp= tiempo de propagación y n= número de biestables). Ampliación de contadores asíncronos: El método para conseguir contadores asíncronos de más bits consiste en conectar en cascada tantos biestables como número de bits que queramos que tenga el contador., llevando la señal de reloj externa al primero de3 ellos y la salida de cada biestable a la entrada del reloj siguiente. El número máximo de estados por los que pasa un contador se denomina módulo del contador. Este número viene determinado por la expresión 2^n donde n indica el número de bis del contador. Ejemplo, un contador de módulo 4 pasa por 4 estados, y contaría del 0 al 3. Si necesitamos un contador con un módulo distinto de 2^n, lo que haremos es añadir un circuito combinacional (puerta NAND) cuyas entradas sean las salidas a 1 del contador, y añadir la salida del circuito a todas las entradas CLEAR de los biestables. Contadores síncronos: En este tipo de biestables, la señas de reloj externa se conecta a todos los biestables. Con ello se consigue que todos los biestables evolucionen a la vez, y por lo tanto no se produzcan tiempos de retardo ni transitorios. Para conseguirlo hay que añadir una lógica combinacional para implementarla en el contador, mientras que los biestables hacen de memoria para saber en qué estado se encuentra, la lógica combinacional se encargará de calcular cual será el siguiente estado al que debe pasar el contador. 2 Diseño de un contador síncrono: El diseño de un contador síncrono debe pasar por varias fases de diseño: • Dibujar el diagrama de estados. Se representa en él la forma simbólica del funcionamiento del sistema, representando los estados que deseamos y las transiciones precisas. • Realizar la tabla simbólica de transiciones. Es otra forma de representar el anterior diagrama de estados, y está compuesta por dos columnas, la de estado actual (estado en el que se encuentra el sistema) y estado futuro (el estado que pretendemos que evolucione el sistema). • Realizar la tabla de codificación de estados. Se trata de codificarlo en binario, el número de biestables del sistema depende del número de estados del mismo. Por ejemplo, si queremos un contador de 8 estados (módulo 8) siguiendo la relación N=2^n; n=log(2)N, serían necesarios 3 biestables para codificar los estados del contador. 7(10)=111(2) son tres bits, por lo tanto necesitamos 3 biestables. Pasamos a binario tanto el estado actual como el estado futuro y cada bit de salida es una salida de un biestable. • Crear una tabla de transiciones codificada. Tiene dos columnas al igual que la tabla simbólica de transiciones, pero ya codificada en binario. El estado actual representa el valor de la salida de los biestables (salida Q) y el estado futuro representa el valor de la salida que deben tomar Q en el siguiente flanco activo, denominándose Q+. • Realización de las tablas de excitación. Para conseguir que un biestable pase de un estado actual a un estado futuro, es preciso aplicarle la excitación conveniente a sus entradas. Para ello se aplican tablas de excitación, que son las tablas de verdad de los biestables pero vistas a la inversa, es decir, la entrada en función de la salida. Como ejemplo ponemos la tabla de excitación de los biestables J−K y D. FLIP−FLOP J−K FLIP−FLOP D Q Q+ J K Q Q+ D 0 0 0 X 0 0 0 0 1 1 X 0 1 1 1 0 X 1 1 0 0 1 1 X 0 1 1 1 • Obtención del circuito combinacional necesario, simplificación e implementación. Una vez obtenida la tabla de excitación del contador síncrono, el problema se reduce al obtener las funciones de las excitaciones, utilizando para ello Karnaugh. Una vez obtenidas las funciones, se puede implementar el circuito, conectado las salidas Q a las entradas de los siguientes biestables a través del combinacional. PRÁCTICAS 3.1 Ensayo y experimentación del registro de desplazamiento universal xx194. Como hemos apuntado anteriormente, este circuito permite todas las posibilidades de aplicación explicadas. Para ello dispone de dos entradas (S0 y S1) que seleccionan el modo de funcionamiento, con cuatro salidas, Q1, Q2, Q3, Q4 y las siguientes señales: • CLK: Entrada de señal de reloj activa en el flanco de subida • CLR: Entrada a puesta a cero activa a nivel bajo. • Dsr: Entrada de datos, desplazamiento a hacia la derecha, para carga serie. • Dsl: Entrada de datos, desplazamiento hacia la izquierda, para carga serie. • A, B, C, D: Entrada de datos para carga en paralelo. • S0: En carga paralelo, hace el desplazamiento hacia la derecha. • S1: En carga paralelo, hace el desplazamiento hacia la izquierda. 3 Lo que vamos a hacer es montar el circuito en la placa entrenadora según la figura 3.44 del libro (Pág. 58) y completar el cronograma de la figura 3.45, una vez completados todos los cronogramas, tenemos que señalar en una tabla según la combinación de las entradas S0 y S1. Registro universal MM74HC194 Este registro bidireccional está diseñado para incorporar virtualmente todas las características que se pueden realizar en un registro de desplazamiento. Contiene entradas y salidas tanto en serie como en paralelo, entradas en serie tanto desde la derecha como de la izquierda a través de entradas de control, y entrada de reset. La carga en paralelo se realiza aplicando a las cuatro entrada de datos el control de las entradas s0 y s1, cuyas transiciones de estado se realizan a través del flanco activo de la señal de reloj, en este caso, a nivel alto. El desplazamiento hacia la derecha se realiza cuando s0 está a nivel alto y s1 a nivel bajo. Los datos en serie para este modo se ejecutan el desplazamiento derecho de entrada de datos. Cuando s0 está a nivel bajo y s1 está a nivel alto, el desplazamiento de los datos se realiza desde la izquierda. Tabla de verdad: ENTRADAS SALIDAS QA Qb Qc Qd L L L L QAo QBo Qco Qdo C A B H QAn QBn L QAn QBn D CLEAR' MODO RELOJ SERIE PARALELO QCn QCn QBn QCn QDn H QBn QCn QDn L QAo QBo Qco 4