Electrónica Tema 6 Tema 1 Circuitos Secuenciales Fundamentos de semiconductores 1 Lógica secuencial Un circuito secuencial es aquel cuyas salidas dependen no sólo de las entradas actuales, sino también de las secuencias de entradas anteriores. El histórico de las secuencias de entradas anteriores se representa por el concepto de “estado”. 2 Lógica secuencial El estado de un circuito secuencial es un conjunto de variables que contienen toda la información acerca del comportamiento pasado del circuito, para determinar el comportamiento futuro del mismo. Un circuito con n variables de estado, tiene 2n estados posibles. 3 Lógica secuencial Los cambios de estado ocurren normalmente en ciertos instantes sincronizados por una señal de reloj. state changes occur here (a) CLK tH tL tper period = tper frequency = 1 / tper duty cycle = tH / tper state changes occur here (b) CLK_L tL tH tper Copyright © 2000 by Prentice Hall, Inc. Digital Design Principles and Practices, 3/e duty cycle = tL / tper 4 Lógica secuencial • Circuitos secuenciales con realimentación – Usan bucles para conseguir un efecto de “memoria”. – Bloques secuenciales: latches y biestables (flipflops). 5 Latches y Flip-Flops Los Latches y los Flip-Flops son los bloque básicos de los circuitos sencuenciales. Flip-Flop: Dispositivo secuencial que muestrea las entradas y cambia las salidad en ciertos instantes de tiempo determinados por una señal de reloj. Latch: Dispositivo secuencial que muestrea la entradas continuamente y cambia las salidas en cualquier momento. 6 Latches Latch S-R (Set-Reset) R (a) Q QN S S R 0 0 0 1 1 0 1 1 Q QN last Q last QN 0 1 0 1 0 0 (b) Copyright © 2000 by Prentice Hall, Inc. Digital Design Principles and Practices, 3/e (a) S Q S Q S Q R QN R Q R QN (b) Copyright © 2000 by Prentice Hall, Inc. Digital Design Principles and Practices, 3/e (c) 7 Latches Latch S-R con lógica inversa Copyright © 2000 by Prentice Hall, Inc. Digital Design Principles and Practices, 3/e (a) S_L or S R_L (b) Q QN S_L R_L Q QN 0 0 1 1 0 1 1 0 1 1 0 1 (c) S Q R Q 0 1 last Q last QN or R 8 Latches Latch S-R con Enable Copyright © 2000 by Prentice Hall, Inc. Digital Design Principles and Practices, 3/e (a) (b) S S R C Q QN Q 0 0 1 0 1 1 1 0 1 C QN R 1 1 1 x x 0 last Q last QN 1 0 0 1 1 (c) S Q C Q R 1 last Q last QN 9 Latches Latch J-K Es igual que un latch S-R, pero ahora la combinación de entrada “11” es válida, produciendo un cambio en el estado. “00”: Q last Q “01” : Q ‘0’ “10” : Q ‘1’ “11” : Q last QN 10 Latches Latch D D Q C QN (a) (b) C D Q QN 1 0 0 1 D Q 1 1 1 0 C Q 0 x last Q last QN (c) Copyright © 2000 by Prentice Hall, Inc. Digital Design Principles and Practices, 3/e 11 Flip-Flops Flip-Flop D disparado por flanco Se construye con dos latches D Master-Slave Copyright © 2000 by Prentice Hall, Inc. Digital Design Principles and Practices, 3/e (a) (b) D D C CLK Q QM D Q Q C Q QN (c) Q QN 0 0 1 1 1 0 D CLK x 0 last Q last QN x 1 last Q last QN D Q CLK 12 Q Flip-Flops Flip-Flop D disparado por flanco con Enable (a) (b) D EN CLK D EN D CLK CLK (c) Q Q Q QN Q QN 0 1 0 1 1 1 1 0 x 0 x x 0 last Q last QN x x 1 last Q last QN D Q EN CLK last Q last QN 13 Q Flip-Flops Flip-Flop T (Toggle) : Cambia su estado mediante una entrada T. Si T=1 cambia de estado, si T=0 no cambia de estado. Ejercicio. Usando un Flip-Flop D, diseñar: 1. Un Flip-Flop T 2. Un Flip-Flop T con Enable 14 Flip-Flops Flip-Flop T (b) (a) D 1 Q Q J T CLK QN Q Q Q Q QN CLK T K Copyright © 2000 by Prentice Hall, Inc. Digital Design Principles and Practices, 3/e EN T D CLK (a) Copyright © 2000 by Prentice Hall, Inc. Digital Design Principles and Practices, 3/e Q Q EN T Q QN J Q Q Q QN CLK K (b) 15 Análisis de máquinas de estado síncronas • Máquina de estados: Nombre genérico para un circuito secuencial con realimentación. • Síncrona: Todos los elementos de almacenamiento responden a la misma señal de reloj. Los cambios de estado sólo ocurren en los flancos de reloj. 16 Estructura de una máquina de estados Máquina Mealey Next State = F(Current State, Input) Output = G(Current State, Input) inputs Next-state Logic excitation State Memory F current state Output Logic outputs G clock input clock signal Copyright © 2000 by Prentice Hall, Inc. Digital Design Principles and Practices, 3/e 17 Estructura de una máquina de estados Máquina Moore Next State = F(Current State, Input) Output = G(Current State) inputs Next-state Logic excitation State Memory F current state Output Logic outputs G clock input clock signal Copyright © 2000 by Prentice Hall, Inc. Digital Design Principles and Practices, 3/e 18 Ecuaciones características • Usadas para describir formalmente el comportamiento de los circuitos secuenciales. • Q* denota el próximo valor de Q. Por ejemplo, para un Flip-Flop D: Q* = D Ejercicios: a) Flip-Flop D con Enable, b) Latch S-R (asumiendo que S⋅R = 0) 19 Ecuaciones características 1. Flip-Flop D con Enable: Q* = EN⋅D+ EN´⋅Q 2. Latch S-R: Q* = S+R´⋅Q 20 Análisis de máquinas de estados con biestables D 1. Determinar las funciones F (Próximo Estado) y G (Salida). 2. Construir una tabla de Estado/Salida. 3. Dibujar un Diagrama de Estado que muestre gráficamente la información de la tabla. 21 Tabla de transición Ecuaciones de excitación: Expresan el valor de Di como una función del estado y entradas actuales. Qi* = Di Ecuaciones de transición: Expresan el valor del próximo estado como una función del estado y entradas actuales 22 Ejemplo Next-state Logic F State Memory Output Logic G output input MAX excitation EN EN D0 EN′ D CLK Q Q0 Q Q0 Q0′ D1 Q1 D CLK Q Q1 Q Q1′ clock signal CLK Copyright © 2000 by Prentice Hall, Inc. Digital Design Principles and Practices, 3/e current state 23 Ejemplo Ecuaciones de excitación: D0 = Q0⋅EN´+ Q0´⋅EN D1 = Q1⋅EN´+Q1´⋅Q0 ⋅EN+Q1⋅Q0´⋅EN Ecuaciones de transición: Q0* = Q0⋅EN´+ Q0´⋅EN Q1* = Q1⋅EN´+Q1´⋅Q0 ⋅EN+Q1⋅Q0´⋅EN 24 Ejemplo Tabla de transición (a) (b) EN (c) EN EN Q1 Q0 0 1 S 0 1 S 0 1 00 00 01 A A B A A, 0 B, 0 01 01 10 B B C B B, 0 C, 0 10 10 11 C C D C C, 0 D, 0 11 11 00 D D A D D, 0 A, 1 Q1∗ Q0∗ S∗ Table 7-2 Transition, state, and state/output tables for the state machine in Figure 7-38. S∗, MAX 25 Ejemplo Diagrama de Estado EN = 0 EN = 0 (MAX = 0) A EN = 1 (MAX = 0) B (MAX = 0) EN = 1 EN = 1 (MAX = 1) (MAX = 0) D EN = 0 (MAX = 0) EN = 1 (MAX = 0) C EN = 0 (MAX = 0) Copyright © 2000 by Prentice Hall, Inc. Digital Design Principles and Practices, 3/e 26 Ejemplo Diagrama de Estado para una Máquina Moore EN = 0 EN = 0 A EN = 1 MAXS=0 B MAXS=0 EN = 1 EN = 1 D MAXS=1 EN = 0 EN = 1 C MAXS=0 EN = 0 Copyright © 2000 by Prentice Hall, Inc. Digital Design Principles and Practices, 3/e 27 Análisis de máquinas de estados 1. Determinar las ecuaciones de excitación para los flipflops. 2. A partir de las ecuaciones de excitación, obtener las ecuaciones de transición. 3. Construir la tabla de transición. 4. Determinar las ecuaciones de salida. 5. Determinar la tabla de Estado/Salida. 6. Dibujar el diagrama de estados. 28 Diseño de máquinas de estados 1. 2. 3. 4. 5. 6. 7. 8. Construir la tabla de Estado/Salida. Minimizar el número de estados. Escoger un conjunto de variables y asignar combinaciones a los estados. Crear la tabla de Transición/Salida. Escoger un tipo de flip-flop. Construir la tabla de excitación y derivar las ecuaciones. Obtener las ecuaciones de salida. Dibujar el diagrama lógico. 29 Diseño de máquinas de estados Ejemplo • Diseñar una máquina de estados síncrona con dos entradas A y B, y una única salida Z. La salida Z es 1 si y sólo si: 1. A ha tenido el mismo valor en los dos ciclos de reloj anteriores. 2. B es 1 desde la última vez que se cumplió la primera condición. 30 Diseño de máquinas de estados Ejemplo AB (a) Meaning Initial state S 00 01 AB (b) 11 10 INIT Meaning Z Initial state 0 S 00 01 11 10 Z INIT A0 A0 A1 A1 0 0 0 11 10 Z 0 0 0 1 ... Got a 0 on A A0 ... Got a 1 on A A1 ... S∗ S∗ AB (c) Meaning Initial state Got a 0 on A Got a 1 on A Got two equal A inputs S 00 01 11 10 Z 0 0 0 1 INIT A0 A0 A1 A1 A0 OK OK A1 A1 A1 OK S∗ AB (d) Meaning Initial state Got a 0 on A Got a 1 on A Got two equal A inputs S 00 01 INIT A0 A0 A1 A1 A0 OK OK A1 A1 A1 OK A0 A0 OK OK S∗ 31Hall, Inc. Copyright © 2000 by Prentice Digital Design Principles and Practices, 3/e Diseño de máquinas de estados Ejemplo (a) AB Meaning Initial state Got a 0 on A Got a 1 on A Got two equal A inputs S 00 01 11 10 Z 0 0 0 1 INIT A0 A0 A1 A1 A0 A1 OK A0 OK A0 A1 OK A1 OK OK ? OK OK ? (b) AB Meaning Initial state S 00 INIT A0 A1 A0 A0 OK0 A0 OK0 A0 Got a 0 on A Got a 1 on A Two equal, A=0 last OK0 Two equal, A=1 last OK1 01 11 S∗ (c) Initial state Got a 0 on A Got a 1 on A Two equal, A=0 last Two equal, A=1 last S 00 01 11 10 Z INIT A0 A0 A1 A1 A0 A1 OK0 A0 OK0 OK0 A0 OK0 A1 OK1 OK1 A1 OK1 A1 0 0 0 1 1 OK0 OK1 S∗ Z A1 A1 A1 OK1 A1 OK1 0 0 0 1 1 S∗ AB Meaning 10 (d) AB Meaning S 00 01 11 10 Z INIT A0 A0 A1 A1 A0 A1 OK0 A0 OK0 A0 A1 OK1 A1 OK1 Two equal, A=0 last OK0 OK0 OK0 OK1 A1 Two equal, A=1 last OK1 A0 OK0 OK1 OK1 0 0 0 1 1 Initial state Got a 0 on A Got a 1 on A S∗ Copyright © 2000 by Prentice Hall, Inc. 32 Digital Design Principles and Practices, 3/e Diseño de máquinas de estados Minimización de estados • • Eliminar estados equivalentes. Dos estados S1 y S2 son equivalentes si, para todas y cada una de las combinaciones de entradas: – – Producen las mismas salidas Transitan a los mismos estados 33 Diseño de máquinas de estados Asignación de estados • Determinar el número de variables binarias. – • Si tenemos s estados, necesitamos log2(s) variables. Codificar cada estado con combinaciones de estas variables binarias. 34 Diseño de máquinas de estados Asignación de estados: Distintas posibilidades Assignment State Name Simplest Q1–Q3 Decomposed Q1–Q3 One-hot Q1–Q5 Almost One-hot Q1–Q4 INIT 000 000 00001 0000 A0 001 100 00010 0001 A1 010 101 00100 0010 OK0 011 110 01000 0100 OK1 100 111 10000 1000 Table 7Possible st assignmen state mach Table 7-6. 35 Diseño de máquinas de estados Tabla de Excitación / Transición • Una vez codificados los estados, construir la tabla de transición a partir de la tabla de estados. • Si se usan flip-flops D, como Q* = D, entonces la tabla de transición coincide con la de excitación. 36 Diseño de máquinas de estados Ejemplos AB Q1 Q2 Q3 00 01 11 10 Z 000 100 100 101 101 0 100 110 110 101 101 0 101 100 100 111 111 0 110 110 110 111 101 1 111 100 110 111 111 1 Ta bl e 7 - 8 Transition and output table for example problem. Tabla de transición / salida Q1∗ Q2∗ Q3∗ Ta bl e 7 - 9 Excitation and output table for Table 7-8 using D flip-flops. Tabla de excitación / salida AB Q1 Q2 Q3 00 01 11 10 Z 000 100 100 101 101 0 100 110 110 101 101 0 101 100 100 111 111 0 110 110 110 111 101 1 111 100 110 111 111 1 D1 D2 D3 37 Diseño de máquinas de estados Ejemplo D1 A AB 00 01 11 10 00 1 1 1 1 01 d d d d Q2 Q3 A AB 00 01 11 10 00 1 1 1 1 01 1 1 1 1 11 1 1 1 1 10 1 1 1 1 Q2 Q3 1 Q3 11 d d d d 10 d d d d Q3 Q2 Q2 Q1=0 D2 A AB 00 01 11 10 00 0 0 0 0 01 d d d d Q2 Q3 A AB D3 00 01 11 10 00 1 1 0 0 01 0 0 1 1 Q2 Q3 Q3 11 d d d d 10 d d d d Q1=1 A AB 00 01 11 10 00 0 0 1 1 01 d d d d Q2 Q3 11 0 1 1 1 10 1 1 1 0 B A AB 00 01 11 10 00 0 0 1 1 01 0 0 1 1 11 0 0 1 1 10 0 0 1 1 Q2 Q3 A Q3 Q3 Q2 Q2 Q1 • Q3′ • A′ B Q3 • A 11 d d d d 10 d d d d Q3 Q2 Q2 Q2 B • Q1=0 B Copyright © 2000 by Prentice Hall, Inc. Digital Design Principles and Practices, 3/e Q1=1 B Q1=0 B Q1=1 B 38 Diseño de máquinas de estados Ejemplo Copyright © 2000 by Prentice Hall, Inc. Digital Design Principles and Practices, 3/e 1 D1 D Q Q1 CLK Q CLR Q1 Q3′ A′ D2 Q3 A D Q Q2 Z CLK Q CLR A Q2 B B D3 D Q Q3 CLK Q CLR RESET_L CLK 39