Sistemas secuenciales básicos Registros de Desplazamiento R i d D l i Registro básico Modificaciones M difi i Aplicaciones Contadores Contador creciente y decreciente Contador reversible Contadores de módulo cualquiera Contadores asíncronos Elemento central: el biestable D (Delay) A cada flanco de reloj, el biestable Qi toma como valor el del biestable l ld lb bl anterior, Qi‐1 : Di=Qi‐1 U1 D U2 Q CLK D CLK Q DTFF Q Q DTFF Encadenando n celdas como la anterior: U1 IN D U2 Q CLK D CLK Q DTFF U3 Q D CLK Q DTFF U4 Q D CLK Q DTFF U5 Q D CLK Q DTFF Q Q DTFF La salida copiará a la entrada n ciclos de reloj más tarde á d OUT Con marcha / paro: Reversible bl Con precarga paralela: Con todas las modificaciones: Multiplicación por 2: ó División entre 2: ó an-1 an-2 an-3 a0 an-1 an-1 an-2 a1 Conversión Serie‐Paralelo ó Precarga serie (desplazamiento) Lectura paralelo (Q) n-1 Conversión Paralelo‐Serie Precarga paralelo Desplazamiento serie p n-2 n-3 0 Generador de Secuencia: Se repite cada n pasos Generador de números pseudo‐aleatorios: Se repite cada 2n‐1 Contador: sistema secuencial que recorre de forma lineal sus estados Elemento central: el biestable l l lb bl T Es muy fácil saber cuándo debe cambiar un bit, pero muy complicado saber cuál debe ser su valor El bit i de un contador cambia cuando todos los menos significativos valen 1: Ti=Q0∙Q1∙…∙Qi‐1 Para hacerlo de forma iterativa: Si conecto n celdas como la anterior: Problema: el retraso se acumula. Sustituyo las puertas AND por puertas de i entradas para cada bit: Problema: crece el tamaño de las puertas. Para que cambie un bit, los de menor rango deben estar a cero (haber decrecido): Ti=/Q0∙/Q1∙…/Qi‐1 De forma análoga a lo anterior: f á Basta tomar las salidas negadas en vez de las l ld d d l naturales. Usar las dos posibilidades, y elegir con un Multiplexor: Un contador de n bits tiene 2n estados: Módulo: número de estados diferentes Contador de módulo M: aquél que tras el d d ód l él l estado M‐1 va al estado inicial Se puede hacer: d h Usando un Reset (Síncrono) Usando un Clear (asíncrono) Ejemplo: contador de 4 bits y módulo 12: ó Síncronamente: generar reset en el estado 11 para que se active y vaya al 0: l Q3 Q2 Q1 Q0 /RES Asíncronamente: generar un Clear en el estado 12, para que inmediatamente pase a 0 d d Peligro: glitch. Q3 Q2 Q1 Q0 /CLR Recordando el cronograma: Podría usar los flancos de bajada de cada bit dí l fl d b d d d b como reloj del siguiente Usando biestables activos por flanco de bajada: f Para contador descendente, usar flanco contrario. Usando biestables activos por flanco de bajada: f No se deben usar, salvo que se pida expresamente.