TEMA 4. Registro de la Información 1. Introducción. (2) 1.1 Sistemas síncronos y asíncronos(3) ( ) 1.2 Relojes. Características (4 – 10) 2. Almacenamiento estático de la información: Latches y Biestables (11 – 18) 2.1 Entradas Asíncronas Preset y Clear (19) . Latch L tipo p D (20 ( – 24)) 2.2 2.3 Biestables tipos D y T (25 – 47) 3. Especificaciones de los biestables. (48 - 52) 31R 3.1 Retardos. d Tiempos de d set-up y de d hold. h ld Frecuencia F máxima fmax 3 2 Hojas de características de la familia 74HCxx 3.2 4. Registros de desplazamiento uni y bidireccionales. (53–65) 5. Pilas FIFO y LIFO. (66 – 70) 6. Contadores. (71 - 77) 1 1. INTRODUCCIÓN L Sistemas Los Si t S Secuenciales i l son aquellos ll sistemas i t di it l en los digitales l que la l salida en un instante dado, depende de las entradas en ese instante y de la HISTORIA del sistema, determinada por el ESTADO; es decir, serán sistemas con MEMORIA. MEMORIA Para diseñar Sistemas Secuenciales es necesario utilizar elementos que memoricen el estado del sistema, sistema que almacenen información. información Los sistemas secuenciales disponen de 4 tipos de señales: entrada, salida, variables de excitación y variables de estado; las dos últimas serán, serán las entradas y salidas de los elementos de memoria, respectivamente. Los circuitos secuenciales están constituidos por circuitos combinacio combinacionales y elementos de memoria. Sistemas de Almacenamiento de información: • CÉLULAS ESTÁTICAS: están basadas en realimentación. BIESTABLES • CÉLULAS DINÁMICAS: basadas en al almacenamiento de carga g en la capacidad p de puerta de los dispositivos MOS. PUERTA DE TRANSMISIÓN Ó -INVERSOR 2 1.1 SISTEMAS SÍNCRONOS Y ASÍNCRONOS Los sistemas L i secuenciales i l se pueden d clasificar l ifi d de acuerdo con la respuesta respecto a una señal de reloj en Síncronos y Asíncronos. Asíncronos Síncronos son aquellos en los que existe al menos una señal de reloj que va marcando en que momento se pueden producir los cambios en el circuito: sincroniza el funcionamiento del circuito. circuito Son sistemas en los que los cambios en los estados se producen controlados por una señal de activación a través de una entrada especial del sistema,, denominada “entrada de reloj” j Asíncronos son aquellos q que responden q p autónomamente a los cambios de las entradas 3 1.2 RELOJES: CARACTERÍSTICAS (I) Una señal Un s ñ l de d reloj l j se s genera n c n lo con l que qu se s conoce c n c como c m OSCILADOR A CRISTAL. Se construye con material piezoeléctrico Æ bajo una corriente alterna de produce cierta frecuencia,, el cristal oscila y viceversa: si el cristal oscila p una corriente alterna (AC). Frecuencia = k/L k= cte dependiente del corte del cristal y L = anchura La frecuencia de estos osciladores varía con el tiempo debido a: – Envejecimiento – Efectos Ef t de d la l temperatura t t – Otras causas. (en los cristales utilizados para la fabricación de relojes y computadores se tiene una variación de 1 ppm al día (1/106 o sea 0,0001 %)). Los materiales mas utilizados son son: – Turmalina (silicato de Na, Li, Mg, Fe...): mas resistente – Cuarzo: mas abundante y barato. Funciona bien hasta Para frecuencias mayores (del orden de 100MHz) hay t cristales tar i t l de d otros t ti tipos. – Sales de Rochelle (tartrato doble de Na y K) KNaC4H4O6 y cara. 10 MHz. que mon*4H2O.4 1.2 RELOJES: CARACTERÍSTICAS (II) Las señales de reloj son un conjunto (tren) de pulsos j de valores normalmente simétricos; es decir,, un conjunto altos (1) y bajos (0), continuo en el tiempo. Cuando C d los l intervalos i t l de d tiempo ti son fijos fij entre t ellos ll se forma f un tren periódico, que queda definido mediante el valor de su periodo (T) o el de su inversa, inversa la frecuencia (f) Si no tiene repetición de pulsos en forma periódica, se pulsos no p periódico. obtiene un tren de p W T1 T2 T3 Tren de pulsos periódico Tren de pulsos no periódico 5 1.2 RELOJES: CARACTERÍSTICAS (III) CRONOGRAMA o DIAGRAMA DE TIEMPOS: es una ilustración o gráfica de ondas digitales g g que q muestra la relación temporal p entre varias señales. 1 Reloj 0 T 1 A 0 Secuencia de bits que representa la señal A 1 0 1 0 0 0 1 0 Cronograma con señal de reloj y señal A 6 1.2 RELOJES: CARACTERÍSTICAS (IV) CARACTERÍSTICAS DEL PULSO DE RELOJ : - Anchura del pulso (W) - Periodo (T) (F) - Frecuencia (F), F = 1/ T * ciclo de trabajo j = W/T Ciclo de trabajo Atendiendo a la “forma de trabajo” de los circuitos con respecto al reloj: - activación por flanco - activación ó por nivell 7 1.2 RELOJES: CARACTERÍSTICAS (V) • ACTIVACIÓN o FUNCIONAMIENTO por: NIVEL La señal de reloj debe alcanzar el nivel de tensión Ventajas: La información se transmite durante un tiempo considerable. I Inconvenientes: i t P ibl fl Posibles fluctuaciones t i en los l valores l de d la l tensión t ió ("guiños"). CLK CLK ALTO φ =1 BAJO φ =0 8 1.2 RELOJES: CARACTERÍSTICAS (VI) • ACTIVACIÓN Ó o FUNCIONAMIENTO por: FLANCO Solamente actúa en las transiciones POSITIVO O DE SUBIDA CLK NEGATIVO E O DE E BAJADA CLK Ventajas: V t j F Funciona i en llas transiciones t i i y se evitan it ""guiños". iñ " Inconvenientes: Que la pendiente de la señal sea elevada y no de tiempo suficiente para que pase la información. 9 1.1 RELOJES: CARACTERÍSTICAS (VII) TEMPORIZACIÓN: señales de reloj • ESTRATEGIAS DE TEMPORIZACIÓN: – Una fase de reloj Ф – Doble fase de reloj Ф Ф – Pseudo doble fase o dos fases sin solapamiento Ф1 y Ф2 – Cuatro fases Ф1 Ф2 Ф1 Ф2 – Pseudo cuatro fases Ф1 Ф2 Ф3 Ф4 10 2.ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: ( ) LATCHES Y BIESTABLES (I) BIESTABLE: Unidad elemental de almacenamiento, que permite almacenar 1 bit; p p puede almacenar dos estados estables ”0” y “1”: La información almacenada puede ser recuperada (leida) y la lectura no es destructiva. • LATCHES (CERROJOS) – Asíncronos • Implementación con inversores • RS NOR, RS NAND – Síncronos (por nivel) • RS NOR, RS NAND • JK, JK D y T • Con entradas asíncronas: PRESET (PR) y CLEAR (CLR) • FLIP-FLOPS FLIP FLOPS (Síncronos (Sí por fl flanco)) – Master-Slave (Amo-Esclavo) • D, SR, JK, T Unidad de varios bits: REGISTRO 11 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES ((II)) LATCH CON INVERSORES ASÍNCRONO (histórico) La idea básica de la célula estática se puede mostrar en un circuito formado por dos inversores: realimentación Si Q = 0 Q=1 Si Q = 1 Q=0 Realimentación la señal de salida se realimenta a la entrada, Realimentación: conservando el valor Dos estados estables Q y Q No podemos elegir en cual de los estados posibles se va a encontrar el biestable No podemos modificar el estado: hemos de añadir 2 señales externas 12 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (III) Para resolver las limitaciones de la implementación p anterior, se plantea la utilización de otras puertas lógicas con mayor número de entradas Puertas NOR Puertas NAND 13 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (IV) LATCH SR (set-reset) (activar-desactivar). Construido con 2 puertas NOR con ACOPLAMIENTO CRUZADO Asíncronos: Las entradas actúan continuamente y las salidas están disponibles inmediatamente (tras retardos del circuito). 14 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (V) LATCH SR. Construido con 2 puertas NAND con ACOPLAMIENTO CRUZADO S R Q Qnext Qnext S Q R Q Qn+1 = S.Qn 00 01 10 11 11 x x x 0 1 1 1 0 0 1 1 0 1 1 0 Si R=1 Qnext = 1 Si R=0 Qnext = 0 Qn+1 = R. Qn Asíncronos. Las entradas actúan continuamente y las salidas están tá disponibles di ibl iinmediatamente di t t (t (tras retardos t d d dell circuito). i it ) 15 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (VI) LATCH SR: RESUMEN S S R R Q Q 16 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES ((VII)) LATCH SR NAND “SÍNCRONO” POR NIVEL ALTO (I) E (S+Qn) R = Qn+1 S/R Reloj salida CLK 0 0 1 0 1 1 1 0 1 1 1 ж Si Reloj = CLK= 0 Salida de las puertas NAND es “1” se mantiene el estado Si Reloj = CLK= 1 Salida de las puertas NOR es S y R, R respectivamente COMPORTAMIENTO IDÉNTICO AL MODELO ANTERIOR 17 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES ((VIII)) LATCH SR NAND “SÍNCRONO” POR NIVEL ALTO (II) Qn+1 = S.Qn Qn+1 = R. Qn S S R R 2,0 Q Q Si S=0 y R=1 Q=1 Si S=1 y R=0 Q=1 Q 1 2 ciclos 2 ciclos 18 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES ((IX)) LATCH SR NAND SÍNCRONO POR NIVEL ALTO CON ENTRADAS ASÍNCRONAS PRESET Y CLEAR (III) ENTRADAS ASÍNCRONAS ASÍNCRONAS: tienen prioridad sobre las entradas síncronas de los biestables PRESET: puesta a uno (si PR = 1 Q =0) CLEAR: puesta p st a cero (si CL = 1 Q =0) 0) 19 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES LA HES Y BIESTABLES BIES ABLES (X) 2.2 LATCH D NAND SÍNCRONO POR NIVEL ALTO CON ENTRADAS ASÍNCRONAS PRESET Y CLEAR (I) S R D Qn+1 Qn+1 0 1 0 0 1 1 0 1 1 0 CLR L = 1 Q = 0 PRS = 1 Q = 0 20 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (XI) 2.2 LATCH D (síncrono por nivel) (II) Con reloj reloj: • LATCH disparados por NIVEL CLK D 1 1 0 0 1 x Q Qnext Qnext Modo P t a0 x 0 1 Puesta x 1 0 Puesta a 1 x No cambia Inactivo MODELADO CON VHDL --Entidad LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.all; ENTITY latch_D IS GENERIC (retardo:TIME:= 0 NS); PORT (clock,d: (clock d: IN STD_LOGIC; STD LOGIC; q: OUT STD_LOGIC); STD LOGIC); END latch_D; 21 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (XII) 2.2 LATCH D (síncrono por nivel) (III) MODELADO CON VHDL CLK D 1 1 0 0 1 x Q Qnext Qnext Modo x 0 1 Puesta a 0 x 1 0 Puesta a 1 x No cambia Inactivo Activo ct o por nivel n alto de clock -- Arquitectura en estilo de comportamiento -----------------------------------------------------------------ARCHITECTURE comporta_latch OF latch_D IS BEGIN PROCESS (clock,d) ( l k d) BEGIN IF clock = '1' THEN -- activo a nivel alto -- IF clock = ‘0' 0' THEN -- activo a nivel bajo q<= d AFTER retardo; END IF; END PROCESS; END comporta_latch; 22 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (XIII) 2.2 LATCH D (síncrono por nivel) (IV) Activo por el nivel alto de clock MODELADO CON VHDL -- Arquitectura en estilo de flujo de datos -- Activo a nivel alto -------------------------------------------------------ARCHITECTURE flujo OF latch_D IS BEGIN q <= d AFTER retardo WHEN clock = '1'; -- activo a nivel alto --q <= d AFTER retardo WHEN clock = ‘0'; -- activo a nivel bajo END flujo; 23 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (XIV) 2.2 LATCH D (síncrono por nivel) (V) CLK D 1 1 0 0 1 x RESULTADOS DE SIMULACIÓN Q Qnext Qnext Modo x 0 1 Puesta a 0 x 1 0 Puesta a 1 x No cambia Inactivo Activo a nivel alto Activo a nivel bajo NOTA: Los NOTA L valores l que se presentan t a la l entrada t d se reflejan fl j en la l salida lid durante el tiempo que la señal de reloj está activa 24 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (XV) ( ) 2.3 FLIP FLOP D (biestable síncrono por flanco) (I) D CLK Q(t) Q(t) Comentario 0 0 1 RESET (almacena un 0) 1 1 0 SET (almacena un 1) 25 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (XVI) 2.3 FLIP FLOP D (biestable D síncrono por flanco MASTER SLAVE) (II) DOS LATCHES SR CONCATENADOS Q 26 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES ((XVII)) 2.3 FLIP FLOP D (biestable D síncrono por flanco) (III) FLANCO DE BAJADA Si Reloj = CLK= 0 mantiene estado en 1º D 27 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES ((XVIII)) 2.3 FLIP FLOP D (biestable D síncrono por flanco) (IV) FLANCO DE BAJADA 28 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES ((XIX)) 2.3 FLIP FLOP D (biestable D síncrono por flanco) (V) FLANCO DE SUBIDA 29 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES ((XX)) 2.3 FLIP FLOP D (biestable D síncrono por flanco) (VI) FLANCO DE SUBIDA 30 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (XXI) 2.3 FLIP FLOP D (biestable D síncrono por flanco de subida) (VII) D Qm Qs Tiempo T t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 31 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (XXII) 2.3 FLIP F P FLOP F P D (VIII) ( ) MODELADO CON VHDL --Entidad LIBRARY IEEE; USE ieee.STD_LOGIC_1164.all; ENTITY biestable_D IS GENERIC (retardo:TIME:=0 ns); PORT (clock, d: IN STD_LOGIC; q: OUT STD_LOGIC); END biestable_D; 32 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (XXIII) ( ) 2.3 FLIP FLOP D (IX) MODELADO CON VHDL -- Arquitectura en estilo de COMPORTAMIENTO -- Reloj R l j Activo A i por fl flanco d de subida bid [rising_edge [ i i d ((clock)] l k)] -- Reloj Activo por flanco de bajada [falling_edge (clock)] ------------------------------------------------------------ARCHITECTURE comporta_biestable OF biestable_D IS BEGIN PROCESS (clock) BEGIN -- IF rising_edge (clock) THEN --Flanco de subida IF falling falling_edge edge (clock) THEN --Flanco de bajada q<=d AFTER retardo; END IF; END PROCESS; END comporta_biestable; 33 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (XXIV) ( ) 2.3 FLIP FLOP D (X) MODELADO CON VHDL -- Arquitectura en estilo de FLUJO DE DATOS ------------------------------------------------------------ARCHITECTURE flujo OF biestable_D IS BEGIN q <= d AFTER retardo WHEN falling_edge (clock); --Flanco de bajada END flujo; 34 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (XXV) 2.3 FLIP F P FLOP F P D (XI) ( ) RESULTADOS DE SIMULACIÓN Activo por flanco de subida Activo por flanco de bajada NOTA: los valores que se presentan a la entrada durante el flanco del reloj son los que se reflejan a la salida. 35 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (XXVI) 2.3 FLIP F P FLOP F P D con entradas d asíncronas í ( E ) (XII) (CLEAR) ( ) MODELADO CON VHDL 36 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (XXVII) 2.3 FLIP F P FLOP F P D con entradas d asíncronas í ( E ) (XIII) (CLEAR) ( ) MODELADO CON VHDL rising_edge (clock) falling_edge (clock) --Entidad LIBRARY IEEE; USE ieee.STD_LOGIC_1164.all; ieee STD LOGIC 1164 all; ENTITY biestable_D_con_clr IS PORT (clock,clear, (clock clear d: IN STD_LOGIC; STD LOGIC; q: OUT STD_LOGIC); STD LOGIC); END biestable_D_con_clr; 37 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (XXVIII) ( ) 2.3 FLIP FLOP D con entradas asíncronas (CLEAR) (XIV) MODELADO CON VHDL -- Arquitectura en estilo de COMPORTAMIENTO -- Clear asíncrono y activo con valor bajo. -- Se S evalúa lú antes nt s -- Reloj Activo por flanco de subida [rising_edge (clock)] ------------------------------------------------------------ARCHITECTURE comporta_asin comporta asin OF biestable biestable_D_con_clr D con clr IS BEGIN PROCESS (clock, clear) BEGIN IF (clear=‘0') THEN q<= '0'; ELSIF rising_edge (clock) THEN q<=d; END IF; END PROCESS; END comporta_asin; 38 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (XXIX) ( ) 2.3 FLIP FLOP D con entradas asíncronas (CLEAR) (XV) MODELADO CON VHDL -- Arquitectura en estilo de FLUJO DE DATOS. DATOS -- Clear asíncrono. -- Reloj Activo por flanco de bajada -----------------------------------------------ARCHITECTURE flujo_asin OF biestable_D_con_clr IS BEGIN q<= '0' WHEN clear = ‘o' ELSE d WHEN falling_edge (clock); END flujo_asin; 39 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (XXX) 2.3 FLIP FLOP D con entradas asíncronas (CLEAR) (XVI) RESULTADOS DE SIMULACIÓN Activo por flanco de subida y Clear asíncrono rising_edge(clock) WHEN clear = '1' NOTA: Las líneas están ligeramente desplazadas para una visualización mejor 40 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: ( ) LATCHES Y BIESTABLES (XXXI) 2.3 FLIP FLOP T (biestable T síncrono por flanco) (I) FLANCO DE BAJADA FLANCO DE SUBIDA 41 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (XXXII) 2.3 FLIP F P FLOP F P T (II) ( ) MODELADO CON VHDL T T --Entidad LIBRARY IEEE; USE ieee.STD_LOGIC_1164.all; ENTITY biestable_T IS GENERIC (retardo: TIME:= 0 ns); PORT (clock, t: IN STD_LOGIC; q: OUT STD_LOGIC); END biestable_T; bi t bl T 42 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (XXXIII) ( ) 2.3 FLIP FLOP T (III) T MODELADO CON VHDL -- Arquitectura en estilo de COMPORTAMIENTO -- Reloj Activo por flanco de subida ------------------------------------------------------------ARCHITECTURE comporta_biestable p _ OF biestable_T _ IS SIGNAL valor_actual_q:STD_LOGIC:= ´0`; BEGIN PROCESS (clock) BEGIN IF rising_edge (clock) THEN -- Flanco de subida IF (T=1) THEN valor_actual_q <= NOT valor_actual_q AFTER retardo E E NULL; ELSE END IF; END IF; END PROCESS PROCESS; END comporta_biestable; 43 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (XXIV) ( ) 2.3 FLIP FLOP T (IV) T MODELADO CON VHDL -- Arquitectura en estilo de FLUJO DE DATOS -- Reloj Activo por flanco de subida ------------------------------------------------------------ARCHITECTURE flujo OF biestable_T IS SIGNAL valor_actual_q:STD_LOGIC:= ´0`; BEGIN -- Activo por flanco de subida q<= valor_actual_q; Valor_actual_q <= NOT valor_actual_q AFTER retardo WHEN risig_edge ( l k) AND T (clock) T= ´1` ELSE UNAFFECTED; UNAFFECTED END flujo; 44 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (XXXV) 2.3 FLIP FLOP T (V) RESULTADOS DE SIMULACIÓN Activo por flanco de subida Activo por flanco de bajada NOTA: si ell valor N l d de T es 1 durante d lla transición ó del d l reloj, l lla salida l d cambia; b en caso contrario, permanece igual. 45 2. ALMACENAMIENTO ESTÁTICO DE LA INFORMACIÓN: LATCHES Y BIESTABLES (XXXVI) ( ) CARACTERÍSTICAS GENERALES PARA EL MODELADO CON VHDL - Los elementos de memoria o almacenamiento se modelan d l con sentencias PROCESS PR CE ( (estilo l d de comportamiento) o con sentencias de asignación concurrente de señal (estilo de flujo de datos) - Si se utilizan señales asíncronas ((CLEAR), ), estas hay que incluirlas en la lista de sensibilidad del PROCESS 46 S R Qn+1 0 0 Qn 0 1 0 1 0 1 1 1 ж S R D Qn+1 Qn+1 0 1 0 0 1 1 0 1 1 0 RESUMEN: tipos de biestables y su tabla de funcionamiento 47 3. ESPECIFICACIONES DE LOS BIESTABLES (I). RETARDO DE PROPAGACIÓN Ó TR: intervalo de tiempo requerido para que se produzca un cambio en la salida, una vez que se ha aplicado q p una señal de entrada. Tiempo p q que tarda la salida de un circuito en responder a las modificaciones de la entrada RETARDOS DE PROPAGACIÓN de baja a alta TPLH y de alta a baja TPHL: Tiempos en que tarda la salida de un circuito en pasarr de baja p j a alta y de alta a baja j rrespectivamente. p m n . Se m mide desde el flanco del reloj hasta la transición, baja a alta, o alta a baja respectivamente. 48 3. ESPECIFICACIONES DE LOS BIESTABLES (II) TIEMPO DE SETUP TS: tiempo que precede a la activación del reloj durante el cual las señales de entrada tienen que mantenerse estables en el nivel adecuado 49 3. ESPECIFICACIONES DE LOS BIESTABLES (III) TIEMPO DE HOLD TH: tiempo que sigue a la transición activa del reloj durante el cual la señal de entrada tiene que mantenerse estable 50 3. ESPECIFICACIONES DE LOS BIESTABLES (IV) MAXIMA FRECUENCIA DE RELOJ Fmax: es la máxima que p puede tener el relojj p para g garantizar un frecuencia q funcionamiento fiable del circuito. Es la mayor velocidad a la que se puede disparar el biestable de manera fiable TIEMPOS DE SUBIDA TR y CAÍDA ((BAJADA)) TF: son los tiempos que tardan las señales aplicadas a los circuitos en pasar del 10 al 90% y del 90 al 10% de su valor total, respectivamente. ti t Tiempo de subida CRLA CRLB DA Tiempo de bajada 51 CLK PRA QA QA DB CLK PRB QB QB 74HC74 4H 4 2 Biestables D 52 4. REGISTROS DE DESPLAZAMIENTO UNI/BIDIRECCIONALES (I) Registro: bloque funcional destinado a almacenar o registrar información ó binaria durante un cierto tiempo. • Circuito temporal de memoria con capacidad limitada • Consta d de una cadena d d biestables de l conectados d en cascada de forma que la salida de uno es la entrada del siguiente (implementación lógica estática) Desplazamiento p m de la información: f m derecha izquierda bidireccional Entrada/salida de la información: serie/paralelo 53 4. REGISTROS DE DESPLAZAMIENTO UNI/BIDIRECCIONALES (II) Tipos de registro atendiendo a la entrada/salida de la información: • • • • ENTRADA SERIE/SALIDA SERIE ENTRADA SERIE/SALIDA PARALELO ENTRADA PARALELO/SALIDA SERIE ENTRADA PARALELO/SALIDA PARALELO • BIDIRECCIONALES 54 4. REGISTROS DE DESPLAZAMIENTO UNI/BIDIRECCIONALES (III) SISO: Series-In SeriesOut SIPO: Series-In Parallel-Out PIPO: Parallel -In Parallel-Out 55 EJEMPLO de registro serie/serie, de 4 bits, síncrono, con biestables tipo D, disparados por flanco de subida. Entrada: Secuencia de bits 1010 El registro está inicializado a 0000 56 EJEMPLO de registro serie/serie, de 4 bits, síncrono, con biestables tipo D, disparados por flanco de subida. E Salida: Secuencia de bits 1010 0 D Q 1 D Q 0 D Q 1 D Q 0 D Q 1 D Q D Q 0 D Q D Q 0 D Q 0 D Q D Q 0 D Q 0 D Q 0 D Q 0 D Q 0 CLK E 0 1 CLK E 0 0 D Q 1 0 D Q D Q D Q 0 CLK E 0 0 1 CLK E 0 CLK Después del 8º pulso de reloj el registro queda a a 0000 57 EJEMPLO: Obténgase el estado de un registro de desplazamiento de 5 bits para las señales de entrada de datos y señal de reloj representadas en la figura. figura Supóngase que inicialmente el contenido del registro es cero. cero Datos de entrada: 11010 ← Tiempo 58 EJEMPLO de registro paralelo/paralelo EJEMPLO de registro paralelo/paralelo de 4 bits, síncrono, con biestables tipo D, disparados por flanco de subida. -- Librerías y paquetes -- Entidad ENTITY NOMBRE_en NOMBRE en IS GENERIC (num_bits:natural); PORT (CLK,CLR : IN STD_LOGIC; ent : --------------------------; sal : --------------------------; END NOMBRE_en; NOMBRE en; -- Arquitectura ARCHITECTURE NOMBRE_arq OF NOMBRE_en IS COMPONENT NOMBRE _componente IS GENERIC (retardo:TIME:=0ns); (retardo TIME 0ns); PORT Puertos_del_componente(BIESTABLE); END COMPONENT; BEGIN U1:FOR i IN 0 TO (num_bits - 1) GENERATE _componente p PORT MAP(CLK ( => , CLR => B1: NOMBRE _ END GENERATE; END NOMBRE_arq; En la librería deberíamos disponer de : Biestable tipo D con señal CLEAR asíncrono , D => ent(i), ( ), Q => sal(i)); ( )); 59 EJEMPLO de registro paralelo/paralelo. Arquitectura estructural ------------------------------------------------------------------------------ © Universidad Politécnica de Madrid -- Se permite copia para fines de estudio ------------------------------------------------------------------------------ Proyecto : Práctica 2: Biestables y registros -- Diseño : Registro g paralelo p paralelo p -- Nombre del fichero : R_paralelo_paralelo_gene.vhd -- Autor : MPC -- Fecha : 10/03/2014 -- Resumen : Este fichero contiene la entidad y -arquitectura de un registro paralelo paralelo construido con biestables tipo D -activados por flanco de subida de reloj -y clear asincrono activo a nivel alto, utilizando la sentencia generate. -El tipo de datos utilizado es STD_LOGIC ---------------------------------------------------------------------- Librerias y paquetes LIBRARY IEEE; U E ieee.STD_LOGIC_1164.all; USE i TD LOG C 1164 ll ENTITY registro_PP IS GENERIC (num_bits:natural); PORT (CLK,CLR : IN STD_LOGIC; ent : IN STD_LOGIC_VECTOR ((num_bits - 1) DOWNTO 0); sal : OUT OU STD S D_LOG LOGIC_VE VECTOR O ((num ((num_b bits ts - 1)) DOWN DOWNTO O 0)); END registro_PP; ARCHITECTURE con_generate OF registro_PP IS COMPONENT biestable_d_con_clr IS GENERIC (retardo:TIME:=0ns); PORT (CLK (CLK,CLR, CLR D: IN STD STD_LOGIC; LOGIC; Q : OUT STD_LOGIC); END COMPONENT; BEGIN U1:FOR i IN 0 TO (num_bits - 1) GENERATE B1: biestable_D_con_clr PORT MAP(CLK => CLK, CLR => CLR, D => ent(i), Q => sal(i)); END GENERATE; END con_generate; 60 EJEMPLO de registro paralelo/paralelo. Simulación C Captura d pantalla de ll del d l registro i con las l señales ñ l ubicadas bi d en ell orden d siguiente: entradas_datos, salidas_datos, señal CLR y señal de reloj Captura de pantalla del registro con los resultados de una simulación 61 Ejemplo de “mal” uso de reloj por nivel: (resultado erróneo) D Q 4,0/3,0 Retardo: Subida 4,0 u. t. Bajada 3,0 u. t. CLK 62 15 CLK 15 15 X Q1 3.0 4.0 3.0 4.0 Q 2 3.0 4.0 Q 3 t0 t1 t2 t3 t4 t5 t6 t7 → Tiempo 63 REGISTRO EG DE DE DESPLAZAMIENTO L M EN UNIVERSAL UN VE L (serie/paralelo) (4 bits) L E Oper Oper. 0 0 EP/SS 0 1 EP/SP 1 0 ES/SS 1 1 ES/SP 64 REGISTRO DE DESPLAZAMIENTO UNIVERSAL Funcionamiento 65 5. PILAS FIFO Y LIFO (I) Las pilas son memorias de acceso secuencial y se suelen construir utilizando n registros de desplazamiento de longitud m; es decir están constituidas por biestables que permiten la carga y descarga de información. FIFO: First Input First Output Es una memoria de acceso secuencial con dos puntos de acceso, uno para la lectura y otro para la escritura. Un apila FIFO, se construye con n registros i t d desplazamiento de d l i t de d longitud l it d m, con desplazamientos d l i t hacia la derecha, mas la lógica de control necesaria. LIFO: Last Input First Output Es una memoria de acceso secuencial con un solo punto de acceso tanto para la lectura como p m p para la escritura.. Una p pila L LIFO F q que almacene m m palabras de n bits, se construye utilizando n registros de desplazamiento de longitud m, con desplazamientos hacia la derecha y hacia q mas lo lógica g de control necesaria. la izquierda, 66 5. PILAS FIFO Y LIFO (II) CARGA DESCARGA PILA FIFO 67 5. PILAS FIFO Y LIFO (III) LIFO 68 5. PILAS FIFO Y LIFO (IV) FIFO y LIFO RIGHT/LEFT bidireccional 69 5. PILAS FIFO Y LIFO (V) Funcionamiento Esta pila es igual a un registro de desplazamiento bidireccional cuando solamente se compone de un bit (ver pg. pg 65) 70 6. CONTADORES (I) • Los biestables pueden también conectarse entre si p para hacer operaciones p “de contar” • El número de biestables que se utilizan y la forma en que se conectan determina el número de estados ((módulo)) y la secuencia específica p por la que atraviesa el contador durante un ciclo completo. • EJEMPLO: Un contador módulo 3 ((hasta 7): ) tiene 8 estados p para codificar 8 estados necesitamos 2n ≥ 8 → n = 3 biestables 71 6. CONTADORES (II) • Dependiendo del modo de la señal de reloj, los contadores se clasifican en : ASÍNCRONOS Í Y SÍNCRONOS. – ASÍNCRONOS: en estos se aplica una señal de reloj en la entrada de reloj del primer biestable y al resto de los biestables se conecta la salida Q de la etapa anterior. anterior Los biestables no cambian de estado simultáneamente – SÍNCRONOS: la señal de reloj se aplica a todos los biestables; trabajan simultáneamente 72 6. CONTADORES ((III)) CONTADOR ASÍNCRONO Valor actual Valor siguiente Q2 Q1 Q0 Q2 Q1 Q0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 73 6. CONTADORES ((IV)) CONTADOR SÍNCRONO Valor actual Valor siguiente Q2 Q1 Q0 Q2 Q1 Q0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 74 CONTADORES EN ANILLO (V) Un contador en anillo, cíclico y síncrono se construye concatenando biestables de forma similar a la construcción de un registro de desplazamiento, pero en el caso de los contadores, la salida del último elemento de la cadena de biestables se conecta con la entrada del primero. primero Contador cíclico de 4 bits. Modulo 4 4 estados 75 CONTADORES EN ANILLO (VI) 76 CONTADORES EN ANILLO: Contador Johnson (VII): La salida negada del último elemento se conecta con la entrada Estado 0 1 2 3 4 5 6 7 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 Q0 0 1 1 1 1 0 0 0 Q1 0 0 1 1 1 1 0 0 Q2 0 0 0 1 1 1 1 0 77 Q3 0 0 0 0 1 1 1 1