Disciplina Electrónica Digital Departamento Docente del Centro de Investigaciones en Microelectrónica (CIME) Universidad Tecnológica de la Habana (UTH) José Antonio Echeverría Asignatura: Electrónica Digital I Curso 2024 Tema 2. Circuitos Secuenciales Sincrónicos Método de las Máquinas de Estados Sincrónicas • Definiciones básicas sobre las máquinas de estados sincrónicas* (MES) • Método de diseño de MES • Ejemplos de diseño de CSS aplicando el método de las MES • • • • Ejemplo 1: Divisor de fCLK • Ejemplo 2: Detector de frentes positivos salida Moore • Ejemplo 3: Detector de frentes positivos salida Mealy * En la literatura en Inglés, se define como Finite State Machine (FSM) Bibliografía: Wakerly, J.F., “Digital Design, Principles and Practices”, 2006. (Cap. 7, epíg. 7.4) Chu, P. “RTL Hardware Design. Coding for Efficiency, Portability and Scalability” John Wiley & Sons, Inc, 2006, Cap. 8. Disciplina Electrónica Digital Departamento Docente del Centro de Investigaciones en Microelectrónica (CIME) Universidad Tecnológica de la Habana (UTH) José Antonio Echeverría Asignatura: Electrónica Digital I Curso 2024 Objetivo: Diseñar circuitos secuenciales sincrónicos aplicando el método de las Máquinas de Estados Sincrónicas. Los circuitos secuenciales sincrónicos se pueden clasificar en tres tipos (Pong, epíg. 8.2.3): ✓ Regulares: CSS donde el CLC del próximo estado tienen un patrón regular (se conoce de antemano como es el comportamiento de este circuito). ✓ No regulares: CSS donde del CLC del próximo estado no tienen un patrón regular o no se conoce de antemano. A este tipo de circuito se le conoce como máquina de estados sincrónica con estados finitos. ✓ Combinados: formados por CSS regulares y no regulares. La máquina de estados sincrónica con estados finitos se utiliza para controlar la operación del circuito secuencial regular. Disciplina Electrónica Digital CIME - UTH Máquina de estados sincrónica Se le denomina máquina de estados sincrónica (MES) a un circuito secuencial sincrónico con una lógica del próximo estado irregular y desconocida de antemano. Disciplina Electrónica Digital CIME - UTH Método de diseño de las MÁQUINAS DE ESTADOS SINCRÓNICAS El procedimiento de diseño de máquinas de estados sincrónicas es una de las metodologías más importante para desarrollar circuitos secuenciales sincrónicos. Consiste en una serie de pasos que permiten determinar: • Las expresiones lógicas o la tabla funcional del CLC del próximo estado. • Las expresiones lógicas o las tablas funcionales de los CLC de salida. • La capacidad de almacenamiento que necesita la memoria de estados (cantidad de flip-flops). • Las condiciones iniciales del circuito. Modelo básico de los circuitos secuenciales sincrónicos Entradas atendidas asincrónicamente Disciplina Electrónica Digital CIME - UTH Método de diseño de las MÁQUINAS DE ESTADOS SINCRÓNICAS Antes de comenzar con el método, puntualicemos algunas definiciones básicas: ✓ Variables de estado: salidas del bloque memoria de estados (Q de los flip-flops). ✓ Estados: Combinaciones lógicas de las variables de estado ✓ Diagramas de estados Con n variables de estado (n flip-flops) puede tenerse hasta 2n estados posibles. Herramientas para describir el comportamiento del circuito que se diseña. ✓ Tabla de estados/salidas ✓ Tabla de transición y de excitación ✓ Ecuaciones de excitación: expresiones lógicas del CLC del próximo estado ✓ Ecuaciones de salida: expresiones lógicas del CLC de salida Disciplina Electrónica Digital CIME - UTH Pasos del método de las MES para el diseño de CSS 1. Entender el problema: • Definir las entradas y salidas. • Definir las acciones que realizará el circuito. • Definir tipo de salidas (Moore o Mealy). • Modelar el comportamiento esperado a través de diagramas de tiempo. 2. a) Construir el diagrama de estados. b) Comprobar el diagrama de estados en los diagramas de tiempo. 3. Construir la tabla de estados/salidas. 4. Minimizar el número de estados en la tabla de estados/salidas. 5. Determinar el número de flip-flops. 6. Para cada estado, asignar combinaciones lógicas (códigos) a las variables de estado. 7. Construir la tabla de transición/salidas. 8. Seleccionar el tipo de flip-flop y construir tabla de excitación/ salidas. 9. Obtener las tablas de la verdad, tablas funcionales o expresiones lógicas de los CLC del próximo estado y de salida. 10. Dibujar el esquema eléctrico del circuito. 11. Verificar el funcionamiento del circuito mediante un programa de simulación. Disciplina Electrónica Digital CIME - UTH Ejemplos de ejercicios de diseño de CSS aplicando el método de las MES Ejemplo 1: Divisor de fCLK Ejemplo 2: Detector de frentes positivos salidas Moore Ejemplo 3: Detector de frentes positivos salidas Mealy Disciplina Electrónica Digital CIME - UTH Ejercicio 1: Diseñe un circuito secuencial sincrónico que conmute el valor de su salida (S) cada vez que ocurra un frente positivo del reloj. Utilice el método de las máquinas de estados sincrónicas. Paso 1: Entender el problema Definir las acciones que realizará el circuito Definir las entradas y salidas CSS S • Entrada de reloj (CLK) ya que es un CSS • Entrada para establecer condiciones de inicio (RST) activa en CERO, ya que es un CSS. • una salida S. RST CLK Definir tipo de salidas (Moore o Mealy) Modelar el comportamiento esperado a través de diagramas de tiempo Salida Moore ya que el circuito no tiene entradas externas, por lo tanto la salida S solo puede depender del estado presente. Observe que la frecuencia de S es la mitad de la frecuencia de CLK. Se diseñará un divisor de frecuencia de base 2. Disciplina Electrónica Digital CIME - UTH S cambiará de valor en cada frente de subida de CLK. Ejercicio 1: Diseñe un circuito secuencial sincrónico que conmute el valor de su salida (S) cada vez que ocurra un frente positivo del reloj. Utilice el método de las máquinas de estados sincrónicas. Paso 2a: Construir el diagrama de estados RST=0 1. Inicio S=0 Se parte de un estado inicial llamado Inicio. • Si el RST está activo, el circuito siempre se irá asincrónicamente a ese estado. • El valor de la salida S del tipo Moore se representa dentro del estado y tomará el valor 0. 2. Una vez que RST esté inactiva, ¿qué sucede cuando ocurra un frente de CLK? RST=0 Inicio S=0 S1 S=1 • El circuito transitará a un nuevo estado que denominado S1. • En S1 la salida S conmuta a 1. 3. Si el circuito se encuentra en el estado S1, ¿a qué estado pasará cuando llegue el frente positivo de CLK? ¿Cuál será el estado siguiente? RST=0 • El circuito transitará a un nuevo estado que denominado S0. Inicio S=0 S1 S=1 S0 S=0 • En S0 la salida S conmuta a 0. 4. Luego… • Como la salida S debe conmutar entre 0 y 1, del estado S0 se puede regresar al estado S1. RST=0 Inicio S=0 S1 S=1 Disciplina Electrónica Digital CIME - UTH S0 S=0 • Luego se transitará de forma alternada entre S0 y S1. Ejercicio 1: Diseñe un circuito secuencial sincrónico que conmute el valor de su salida (S) cada vez que ocurra un frente positivo del reloj. Utilice el método de las máquinas de estados sincrónicas. Paso 2b: Comprobar el diagrama de estados ▪ Es necesario comprobar el diagrama de estados utilizando la forma de onda de la que se partió. Pasa al estado S0 Lleva al Pasa al circuito al estado S1 estado Inicio ▪ Se analiza cada estado presente (EP) por los que va transitando el circuito en función de los estímulos. EP Inicio S1 S0 S1 S 0 1 0 1 Comparar estos resultados ▪ Se determinan los valores de la salida teniendo en cuenta el diagrama de estados y EP. Se compara con la forma de onda esperada, planteada en el paso 1. ▪ Si S y S no coinciden, el diagrama está incorrecto. Disciplina Electrónica Digital CIME - UTH Ejercicio 1 Paso 3: Construir la tabla de estados/salidas Esta tabla es otra forma de modelar el comportamiento del circuito con mucho más detalle que el diagrama de estados. Tabla de estados/salidas EP ES Salida (S) Inicio S1 0 S0 S1 0 S1 S0 1 Ej. Esta fila significa que si el circuito está en el estado S0, la salida S (Moore) es 0 y el estado siguiente será S1. • En la primera columna (EP - estado presente) se van escribir todos los estados por los que transita el circuito. • En la segunda columna (ES) se representa el estado siguiente. • En la última columna se escriben los valores que toma la salida para el correspondiente EP. Disciplina Electrónica Digital CIME - UTH Ejercicio 1 Paso 4: Minimizar el número de estados en la tabla de estados/salidas Tabla de estados/salidas (inicial) EP ES Salida (S) Inicio S1 0 S0 S1 0 S1 S0 1 Observar que los estados Inicio y S0 son equivalentes porque ambos generan el mismo valor de salida (S=0) y transitan hacia el mismo estado siguiente (S1). Nos quedamos con uno de los estados equivalentes y eliminamos el otro. En este caso eliminaremos Inicio y la tabla queda con dos estados: S0 y S1. EP ES Salida (S) Tabla de estados/salidas minimizada EP ES Salida (S) Inicio S0 S1 S1 0 0 S0 S1 0 S1 S0 1 S1 S0 1 Ahora S0 es el estado inicial. Disciplina Electrónica Digital CIME - UTH Ejercicio 1 Paso 5: Seleccionar el número de flip-flops • El sistema ha quedado modelado con 2 estados. • Recordar que con n variables de estado (n flip-flops) puede tenerse hasta 2n estados posibles. • Por lo tanto, para resolver 2 estados se necesita como mínimo 1 flip flop. Paso 6: Para cada estado, asignar combinaciones lógicas (códigos) a las variables de estado (Q) ✓ Un flip-flop significa una variable de estado (Q). ✓Asignación de códigos: Disciplina Electrónica Digital CIME - UTH Estado Q S0 0 S1 1 La asignación de códigos puede realizarse de forma arbitraria o a partir de la experiencias de los diseñadores . Ejercicio 1 Paso 7: Construir la tabla de transición/salidas Tabla de transición/salidas • Para construir la tabla de transición/salidas se parte de la tabla de estados/salidas y cada estado se sustituye por el código asignado. • En la columna correspondiente al estado presente debe reflejarse claramente el valor de las Q de cada uno de los flipflops utilizados. En la columna correspondiente al estado siguiente, se pone el valor esperado para la próxima Q (se identifica como Q*) del flip-flop que conformará el circuito. • Paso 8: Seleccionar el tipo de flip-flop y construir tabla de excitación/ salidas Q Q* Salida (S) 0 1 0 1 0 1 Ej.: Significa que si la Q del flip-flop es 0 (correspondiente al estado S0), entonces la salida S del circuito es 0 y en el próximo estado la Q tomará valor 1. Tabla de excitación/salidas Q D Salida (S) • En la actualidad se utilizan flip-flop tipo D. 0 1 0 • Para construir la tabla de excitación/salida se utiliza la ecuación característica de los flip-flops D, que está dada por Q*=D. Esta ecuación significa que el próximo valor de Q, o sea Q* será igual al valor de D. 1 0 1 Disciplina Electrónica Digital CIME - UTH Esta columna indica para cada estado presente, qué valor debe tener D para lograr la próxima Q, o sea, el valor de ES. Ejercicio 1 Paso 9a: Obtener las tablas de la verdad, tablas funcionales o expresiones lógicas del CLC del próximo estado Tabla de excitación/salidas • Q D Salida (S) 0 1 0 1 0 1 Toda la información que se necesita para diseñar el circuito está resumida en la tabla de excitación/salidas. Para determinar la tabla de la verdad del CLC del próximo estado, observemos el modelo básico de CSS. ¿Cuáles son las entradas CLC del próximo estado? R/ En este ejercicio, como no hay entradas sincrónicas, la única entrada es el EP, que en este caso es Q. ¿Cuáles son las salidas del CLC del próximo estado? R/ En este ejercicio el CLC de PE tiene una sola salida y es la que se conecta a la entrada D del flip-flop. Disciplina Electrónica Digital CIME - UTH Entradas atendidas asincrónicamente La tabla de la verdad del CLC del PE puede extraerse de la tabla de excitación/salidas: Q D 0 1 1 0 D=/Q Ejercicio 1 Paso 9b: Obtener las tablas de la verdad, tablas funcionales o expresiones lógicas del CLC de salida Tabla de excitación/salidas • Q D Salida (S) 0 1 0 1 0 1 Toda la información que se necesita para diseñar el circuito está resumida en la tabla de excitación/salidas. Para determinar la tabla de la verdad del CLC de Salida, observemos el modelo básico de CSS. ¿Cuál es la entrada del CLC de Salida? R/ Como la salida S es Moore, la entrada de este CLC es el EP, que concretamente en este caso es Q. ¿Cuáles son las salidas del CLC de salida? R/ En este caso es una sola y es la salida S del circuito. Entradas atendidas asincrónicamente La tabla de la verdad del CLC de salida puede extraerse de la tabla de excitación/salidas: Q S 0 0 1 1 S=Q Disciplina Electrónica Digital CIME - UTH Ejercicio 1 Paso 10. Dibujar el esquema eléctrico del circuito De la aplicación del método conocemos que el circuito: • Tiene un flip-flop tipo D en la memoria de estados (utilizaremos el modelo DTFF de Proteus). • El estado inicial lleva a Q=0. • La ecuación que describe al CLC del próximo estado es D=/Q. • La ecuación que describe al CLC de salida es S=Q. Disciplina Electrónica Digital CIME - UTH Ejercicio 1 Paso 11: Verificar el funcionamiento del circuito mediante un programa de simulación Establecimiento del estado inicial Se activa RST asincrónico TCLK TS S0 S1 S0 S1 S0 S1 S0 • Este diagrama de tiempo se obtuvo al simular en Proteus el circuito diseñado. • Se configuró la señal CLK con una frecuencia de 1 kHz. • Como S=Q, los estados se han representado sobre la señal S. • Inicialmente la señal RST se fijó en 0 durante 1 ms para establecer las condiciones iniciales. Consecuentemente el circuito comienza en el estado S0 y S comienza en ‘0’. • Una vez que RST se inactivó, puede observarse que el circuito conmuta cíclicamente entre los estados S0 y S1. Como consecuencia, la salida S cambia su valor en cada frente positivo de CLK, como se pedía en el ejercicio. • La señal RST se configuró para que tomara valor ‘0’ a los 6 ms. Al activarse el RST, el circuito pasó asincrónicamente al estado S0 y la salida S tomó el valor ‘0’. En el séptimo frente de CLK, el circuito se mantiene en el estado S0 porque está bajo la influencia del RST asincrónico. • Este circuito se comporta como un contador de base 2. Observar que en corrida libre (RST inactivo) la frecuencia de S es igual a la fCLK/2. * La figura puede obtenerse en Proteus dando click derecho sobre el gráfico (en la ventana Schematic Capture) y luego Copy To Clipboard. Disciplina Electrónica Digital CIME - UTH Ejercicio 2 Diseñe un circuito secuencial sincrónico que detecte cada cambio de ‘0’ a ‘1’ de una señal de entrada (L) y lo indique mediante la generación de un pulso (P) positivo de duración igual a un período de reloj (TCLK). La señal de entrada (L) siempre estará en ‘0’ o en ‘1’ por más de un TCLK. Los cambios en L no coincidirán con los frentes activos de CLK. La salida debe ser tipo Moore. Utilice el método de diseño de las MES. Paso 1: Entender el problema a resolver Determinar la entradas y salidas del circuito: • Entrada de reloj (CLK) ya que es un CSS • Entrada para establecer condiciones de inicio (RST) activa en CERO, ya que es un CSS. • Entrada L (por enunciado). • Salida P (por enunciado). Modelar el problema mediante un diagrama de tiempo donde se represente el comportamiento esperado ante los cambios en la entrada. Se ha dibujado un cambio de ‘0’ a ‘1’ en la entrada L, y la respuesta esperada en la salida P. La salida P es tipo Moore, por lo que el pulso ocurre en el próximo frente positivo de CLK después de presentarse el cambio en L. Disciplina Electrónica Digital CIME - UTH Ejercicio 2 Paso 2: Construir y comprobar el diagrama de estados ✓ Se partió de un estado que se nombró Inicio. A este estado se llega y en él se mantiene el circuito mientras la señal RST está activada. La salida P es Moore por lo que su valor se representa dentro del estado. En el estado Inicio, P es igual a ‘0’, esto se representa como /P o se puede poner explícitamente P=0. ✓ Si el CSS está en el estado Inicio y RST=1, cuando llega el frente positivo de CLK y la señal L=0, el circuito va al estado S0. En esa situación no se ha detectado cambio de ‘0’ a ‘1’ en L, por lo tanto en el estado S0 la salida P continúa en ‘0’. ✓ De manera análoga, si el CSS está en el estado Inicio y RST=1, cuando llega el frente positivo de CLK y la señal L=1, el circuito va al estado S1. En esa situación tampoco se ha detectado cambio de ‘0’ a ‘1’ en L, por lo tanto en el estado S1 la salida P continúa en ‘0’. ✓ El circuito se mantiene en S1 mientras la señal de entrada L sea ‘1’ y va a S0 sincrónicamente cuando L=0. ✓ En el estado S0 se mantiene mientras la señal de entrada L sea ‘0’. Estando en S0 cuando L=1 y ocurra un frente positivo de CLK, entonces el circuito transitará al estado SP porque se ha detectado un cambio de ‘0’ a ‘1’ en L. ✓ En el estado SP la salida P es ‘1’, lo que indica que ocurrió un cambio en L. ✓ En dependencia del valor que tenga L en el próximo frente positivo de CLK, el circuito transitará a S0 o S1 para esperar el siguiente cambio en la entrada. Para comprobar el diagrama de estados se utiliza el diagrama de tiempo de que se partió. ✓ En la figura se muestra cómo el circuito transita por los diferentes estados (EP) según el diagrama diseñado. ✓ Antes del primer frente del reloj, RST estuvo activa (‘0’) por lo que el circuito fue al estado Inicio. ✓ En el primer frente de CLK, L=1 por lo que el circuito pasa al estado S1. ✓ En el quinto frente de CLK se detecta que L=0 y el circuito pasa al estado S0. ✓ En el octavo frente de CLK se detecta que L=1 y el circuito pasa al estado SP que lleva la salida P a 1. ✓ En el siguiente frente del CLK se pasa al estado S1, se observa que la salida es ‘1’ solamente en el estado SP. ✓ El diagrama de estado diseñado modela correctamente el comportamiento del circuito., cumple con el diagrama de tiempo. Disciplina Electrónica Digital CIME - UTH Ejercicio 2 Paso 3: Construir la tabla de estados/salidas ✓ Se representa el tránsito del circuito por todos los estados según todas las combinaciones de las entradas. Paso 4: Minimizar el número de estados en la tabla de estados/salidas ✓ Se identifican dos estados equivalentes (Inicio y S1) ya que tienen, para las mismas combinaciones de entrada iguales estados siguientes (ES) e igual salida. ✓ Se eliminó el estado Inicio por ser equivalente con S1. Estado inicial ✓ S1 queda como estado inicial. En este estado cae el circuito asincrónicamente cuando RST se activa. ✓ El diseñador debe garantizar el estado inicial mediante la correcta conexión de las entradas Set y Reset de los flip-flops. Disciplina Electrónica Digital CIME - UTH Ejercicio 2 Paso 5: Seleccionar el número de flip-flops • El sistema ha quedado modelado con 3 estados. • Recordar que con n variables de estado (n flip-flops) puede tenerse hasta 2n estados posibles. • Por lo tanto, para resolver 3 estados se necesitan como mínimo 2 flip flops. Paso 6: Para cada estado, asignar combinaciones lógicas (códigos) a las variables de estado (Q) ✓ Dos flip-flops implican dos variables de estado (Q1 y Q0). ✓ Asignación de códigos: Disciplina Electrónica Digital CIME - UTH La asignación de códigos es libre a no ser que existan restricciones u orientaciones al respecto. Un diseñador con experiencia puede seguir criterios de optimización de parámetros como el área de circuito, cantidad de componentes, velocidad, etc. Ejercicio 2 Paso 7: Construir la tabla de transición/salidas • Para construir la tabla de transición/salidas se parte de la tabla de estados/salidas y cada estado se sustituye por el código asignado. • En la columna correspondiente al estado presente debe reflejarse claramente el valor de las Q de cada uno de los flipflops utilizados. • En la columna correspondiente al estado siguiente, se pone el valor esperado para las próximas Q (se identifican como Q*) de los flip-flops que conformarán el circuito. Paso 8: Seleccionar el tipo de flip-flop y construir tabla de excitación/ salidas • En la actualidad se utilizan flip-flops tipo D. • Para construir la tabla de excitación/salida se utiliza la ecuación característica de los flip-flops D, que está dada por Q*=D. Esta ecuación significa que el próximo valor de Q, o sea Q* será igual al valor de D. Tabla de transición/salidas Ej.: Significa que si Q1Q0=01 (correspondiente al estado S1), entonces la salida P del circuito es 0. Además, en el próximo estado (al que se transitará con la subida de CLK) Q1Q0 tomarán valor 00 si L=0, pero si L=1, Q1Q0 siguientes serán 01. Tabla de excitación/salidas Estas columnas indican para cada estado presente, qué valor deben tener D1 y D0 de los flip-flops para lograr los próximos Q1 y Q0 en función del valor de la entrada L. Disciplina Electrónica Digital CIME - UTH Paso 9a: Obtener las tablas de la verdad, tablas funcionales o expresiones lógicas del CLC del próximo estado Entradas Ejercicio 2 Salidas Ecuaciones del próximo estado: CLC del D0 = L D1 = /Q0 · L Se resuelven aplicando el método de los mapas de Karnaugh. La información para obtener las tablas de la verdad se resume en la tabla de excitación/salidas. Valores de D1 y D0 ✓ Las combinaciones Q1Q0=10 no corresponden a ningún estado y no se espera que ocurran. ✓ Si se hace un diseño de mínimo costo, se pone X en D1 y D0 para obtener CLC más económico. ✓ Si se hace un diseño de mínimo riesgo, para esas combinaciones se pone en D1D0 el valor de un estado seguro, por ejemplo 01, que corresponde al estado inicial (S1). Disciplina Electrónica Digital CIME - UTH Ejercicio 2 Paso 9b: Obtener las tablas de la verdad, tablas funcionales o expresiones lógicas del CLC de salida Ecuación del CLC de salida: P = Q1 La información para obtener las tablas de la verdad se resume en la tabla de excitación/salidas. ✓ Las combinaciones Q1Q0=10 no corresponden a ningún estado y no se espera que ocurran. ✓ Si se hace un diseño de mínimo costo, se pone X en P para obtener CLC más económico. Valores de P para cada estado ✓ Si se hace un diseño de mínimo riesgo, para esta combinación se pone en P el valor de la salida correspondiente al estado seleccionado en el paso anterior. Disciplina Electrónica Digital CIME - UTH Ejercicio 2 Paso 10. Dibujar el esquema eléctrico del circuito De la aplicación del método conocemos que el circuito: • • • • Tiene dos flip-flop tipo D en la memoria de estados El estado inicial es Q1=0 y Q0=0. Las ecuaciones del CLC del próximo stado son D0 = L y D1 = /Q0 · L La ecuación del CLC de salida es P = Q1 ✓ Si las entradas asincrónicas de los flip-flops son activas en ‘0’, la señal RST debe activarse en ‘0’ al energizar el circuito (t=0) para garantizar las condiciones iniciales. ✓ Las condiciones iniciales son imprescindibles para el correcto funcionamiento del circuito. Disciplina Electrónica Digital CIME - UTH Ejercicio 3 Paso 11: Verificar el funcionamiento del circuito mediante un programa de simulación L=0 S1 L=1 S0 SP S0 SP S1 S0 S0 SP S0 Tabla E/S Códigos de los estados Estado inicial • Este diagrama de tiempo se obtuvo al simular en Proteus el circuito obtenido en el paso 10. • Se configuró la señal CLK con una frecuencia de 1 kHz. • La señal de entrada L se generó con un patrón, de modo que se obtuvieran tres cambios de 0 a 1 que no coincidieran con los frentes positivos de CLK. • Se grafican las señales Q1 y Q0 para analizar el Estado Presente, según la asignación de código realizada en el paso 6 del diseño. Las señales D1 y D0 permiten analizar el Estado Siguiente. • La transición entre estados se comprueba analizando la secuencia que siguen Q1 y Q0. Los cambios de estado ocurren en los frentes positivos de CLK. • La secuencia de estados que sigue el circuito se ha identificado en el diagrama de tiempo. • Inicialmente la señal RST se fijó en 0 durante 700 µs para establecer las condiciones iniciales. Consecuentemente Q1Q0 comienzan en “01”, combinación que corresponde al estado inicial S1. En el primer frente de CLK, RST sigue activado, por lo que el CSS se mantiene en S1. • • La transición entre estados observada en esta simulación es coherente con la tabla de estados/salidas que se obtuvo a partir del diagrama de estados que se diseñó. Aunque D1 y D0 (ES) cambien entre frentes de subida de CLK, los valores que pasan a Q1 y Q0 (EP) son los que existen en el instante del frente positivo de CLK. • La salida P es ‘1’ solo cuando el CSS está en el estado SP. Al estado SP se llega desde el estado S0, cuando se detecta que L=1. • Cada pulso en P tiene una duración de un TCLK e indica que ocurrió un cambio de 0 a 1 (frente positivo) en la señal de entrada L. Los circuitos que tienen este comportamiento se conocen como “detectores de frentes positivos” • El comportamiento del circuito coincide con lo que se esperaba según el diseño. Disciplina Electrónica Digital CIME - UTH Ejercicio 3: Diseñe un circuito secuencial sincrónico que cada vez que detecte un frente positivo (cambio de 0 a 1) en una señal de entrada L, genere inmediatamente (sin esperar por el frente de subida de CLK) un pulso positivo por una salida P. Este pulso durará hasta el próximo frente positivo de CLK. La señal de entrada (L) siempre estará en ‘0’ o en ‘1’ por más de un TCLK. Los cambios en L no coincidirán con los frentes activos de CLK. Utilice el método de diseño de las MES. Paso 1: Entender el problema Definir las acciones que realizará el circuito Definir las entradas y salidas CSS L P • Entrada de reloj (CLK) ya que es un CSS • Entrada para establecer condiciones de inicio (RST) activa en CERO, ya que es un CSS. • Entradas L, por enunciado. • Salida P por enunciado. RST CLK Definir tipo de salidas (Moore o Mealy) La salida P es tipo Mealy porque los pulsos que indican que hubo cambio de 0 a 1 en L se darán sin esperar el siguiente frente positivo de CLK. Disciplina Electrónica Digital CIME - UTH • • • Tomar muestras de la señal L. Analizar si hay cambios de 0 a 1 en L. Generar un pulso positivo en P por cada frente positivo en L. Modelar el comportamiento esperado a través de diagramas de tiempo Ejercicio 3 Paso 2a: Construir el diagrama de estados ✓ Se parte de un estado Inicio al que va el CSS mientras la señal RST está activa (RST=0). ✓ Como la salida es de tipo Mealy, el valor de P no se representa dentro del círculo que define al estado, sino que se refleja sobre la flecha que indica la transición, junto con el valor de la entrada. ✓ El valor de P, además del estado presente, depende de la entrada L (observe el CLC de salidas Mealy en el modelo básico). /RST Valor de P en el estado Inicio cuando L=1. Valor de P en el estado Inicio cuando L=1. Inicio L=0/P=0 L=1/P=0 En este dibujo aun no se han precisado cuáles serán los estados siguientes a Inicio. ✓ Como en este estado Inicio el CSS está bajo los efectos de la señal RST, la salida P será 0 independientemente del valor de L. Disciplina Electrónica Digital CIME - UTH Ejercicio 3 /RST Paso 2a: Construir el diagrama de estados Inicio ✓ Cuando RST=1 (inactiva) y ocurre un frente positivo de CLK, el CSS puede pasar a un nuevo estado. ✓ Una vez fuera del estado Inicio, el CSS podrá detectar los cambios de 0 a 1 en la entrada L. ✓ Si se tiene en cuenta que al estado S0 se llegó porque L=0, entonces mientras el CSS se encuentre en S0: • • Si la entrada L=0, significa que no ha ocurrido cambio en L. Consecuentemente P=0. Si se detecta que L=1 significa que ocurrió un cambio de 0 a 1 en L. Consecuentemente P=1 sin esperar el próximo frente de subida de CLK, o sea, sin cambiar de estado. L=1/P=0 L=0/P=0 S0 L=1/P=1 L=0/P=0 Esto es lo que modela el diagrama de estados hasta ahora… CLK RST L EP Inicio S0 P En estado Inicio, P=0 independientemente del valor de L. Disciplina Electrónica Digital CIME - UTH En S0: P=0 si L=0. P=1 si L=1. Ejercicio 3 Paso 2a: Construir el diagrama de estados /RST ✓ Si el CSS se encuentra en el estado S0 y ocurre un frente de CLK, en dependencia del valor de L se determinará el estado siguiente al que transita: • • ✓ ✓ ✓ Si la entrada L=0, el circuito se queda en el mismo estado S0, esperando a que L cambie a 1. Inicio L=1/P=0 Si la entrada L=1, el circuito transitará a un nuevo estado (S1). En el estado S1 la salida P será 0 independientemente del valor de L porque, si hubo pulso positivo en P, este solo duró hasta que ocurrió el frente de CLK que provocó la transición desde S0 hacia S1. L=1/P=0 L=0/P=0 L=1/P=1 S0 L=0/P=0 S1 L=0/P=0 Si el CSS se encuentra en el estado S1 y ocurre un frente de CLK: • Si la entrada L=0, el circuito se regresa al estado S0, que es donde se espera a que L cambie a 1. • Si la entrada L=1, se queda en S1 hasta que se detecte que L se hizo 0. Desde Inicio se transita a S1 si L=1 en el frente positivo de CLK y RST = 1. Disciplina Electrónica Digital CIME - UTH Ejercicio 3 Paso 2b: Comprobar el diagrama de estados Para comprobar el diagrama de estados se puede utilizar el diagrama de tiempo propuesto en el paso 1 (modelar el problema). EP Inicio S0 S1 S1 S1 S0 S0 S0 S1 S1 S1 S1 S1 En muchos casos es recomendable comprobar otras variantes de estímulos no previstas en el paso 1, ej. ¿qué sucede si L comienza en 1? La correcta selección de los estímulos es fundamental para que la comprobación sea exitosa. Para realizar la comprobación se recomienda seguir los pasos siguientes: ✓ ✓ ✓ Representar, siguiendo el diagrama de estados diseñado, la secuencia de estados (EP) por la que transita el circuito para los estímulos que se modelaron. Según el diagrama de estados, representar los valores de las salidas. Comparar los valores de salida con los esperados. ✓ Observe que en este caso cuando el circuito está en el estado S0, el valor de la salida P (Mealy) lo define la entrada L. ✓ En el estado S0, si L sube a 1, P también toma valor 1. En el próximo frente positivo del CLK, el CSS cambia al estado S1 al que le corresponde que la salida P sea 0. Termina así el pulso que indicó la ocurrencia de un frente positivo en la entrada L. Disciplina Electrónica Digital CIME - UTH Ejercicio 3 Paso 3: Construir la tabla de estados/salidas ES P EP L=0 L=1 L=0 L=1 Inicio S0 S1 0 0 S0 S0 S1 0 1 S1 S0 S1 0 0 ✓ Se representa el tránsito del circuito por todos los estados en dependencia del estado presente (EP) y de las combinaciones de la entrada L. ✓ Observe que, a diferencia de los ejercicios anteiores, la salida P por ser Mealy, no solo depende de EP, sino también de L. Paso 4: Minimizar el número de estados en la tabla de estados/salidas ✓ En la tabla de estados salidas obtenida en el paso 3 se puede identificar que Inicio y S1 son estados equivalents (transitan a los mismos estados y generan los mismos valores de salida). EP ✓ Se elimina uno de ellos, en este caso Inicio. ✓ Queda S1 como estado inicial. ES P L=0 L=1 L=0 L=1 S0 S0 S1 0 1 S1 S0 S1 0 0 Estado inicial Disciplina Electrónica Digital CIME - UTH Ejercicio 3 Paso 5: Seleccionar el número de flip-flops ✓ El sistema ha quedado modelado con 2 estados. ✓ Recordar que con n variables de estado (n flip-flops) puede tenerse hasta 2n estados posibles. ✓ Por lo tanto, para resolver 2 estados se necesita como mínimo 1 flip flop. Paso 6: Para cada estado, asignar combinaciones lógicas (códigos) a las variables de estado (Q) ✓ Un flip-flop implica una variable de estado (Q). ✓Asignación de códigos: EP S0 S1 Q 0 1 La asignación de códigos es libre a no ser que existan restricciones u orientaciones al respecto. Un diseñador con experiencia puede seguir criterios de optimización de parámetros como el área de circuito, cantidad de componentes, velocidad, etc. Disciplina Electrónica Digital CIME - UTH Ejercicio 3 Paso 7: Construir la tabla de transición/salidas • • • Tabla de transición/salidas Para construir la tabla de transición/salidas se parte de la tabla de estados/salidas y cada estado se sustituye por el código asignado. En la columna correspondiente al estado presente debe reflejarse claramente el valor de las Q de cada uno de los flip-flops utilizados. En la columna correspondiente al estado siguiente, se pone el valor esperado para las próximas Q (se identifican como Q*) de los flip-flops que conformarán el circuito. Paso 8: Seleccionar el tipo de flip-flop y construir tabla de excitación/ salidas • En la actualidad se utilizan flip-flops tipo D. • Para construir la tabla de excitación/salida se utiliza la ecuación característica de los flip-flops D, que está dada por Q*=D. Esta ecuación significa que el próximo valor de Q, o sea Q* será igual al valor de D. Disciplina Electrónica Digital CIME - UTH Q* P Q L=0 L=1 L=0 L=1 0 0 1 0 1 1 0 1 0 0 Tabla de excitación/salidas D P Q L=0 L=1 L=0 L=1 0 0 1 0 1 1 0 1 0 0 Paso 9a: Obtener las tablas de la verdad, tablas funcionales o expresiones lógicas del CLC del próximo estado Ejercicio 3 Paso 9b: Obtener las tablas de la verdad, tablas funcionales o expresiones lógicas del CLC de salida Tabla de excitación/salidas ✓ La información de los CLC del próximo estado y de salida se obtienen directamente de la tabla de excitación/salidas. D Q L=0 L=1 L=0 L=1 0 0 1 0 1 1 0 1 0 0 Tabla de la verdad del CLC del próximo estado Entradas P Tabla de la verdad del CLC de salida Salida Entradas Salida Q 0 L 0 D 0 Q 0 L 0 P 0 0 1 1 0 1 1 1 0 0 1 0 0 1 1 1 1 1 0 D=L P = /Q ∙ L Disciplina Electrónica Digital CIME - UTH Paso 10. Dibujar el esquema eléctrico del circuito Ejercicio 3 De la aplicación del método conocemos que el circuito: • • • • Tiene un flip-flop tipo D en la memoria de estados El estado inicial es Q=1 (S1), por lo que la señal RST se conectará a la entrada S (set) del flip-flop. La ecuación del CLC del próximo estado es D = L La ecuación del CLC de salida es P = /Q · L Disciplina Electrónica Digital CIME - UTH Ejercicio 3 Paso 11: Verificar el funcionamiento del circuito mediante un programa de simulación S1 S1 S0 S1 S0 S1 S1 S0 S0 S1 Tabla de estados/salidas S0 EP S0 S1 ES P L=0 L=1 L=0 L=1 S0 S0 S1 S1 0 0 1 0 • Este diagrama de tiempo se obtuvo al simular en Proteus el circuito obtenido en el paso 10. • Se configuró la señal CLK con una frecuencia de 1 kHz. • La señal de entrada L se generó con un patrón, de modo que se obtuvieran tres cambios de 0 a 1 que no coincidieran con los frentes positivos de CLK. • Se grafica las señales Q para analizar el Estado Presente, según la asignación de código realizada en el paso 6 del diseño. La señal D permite analizar el Estado Siguiente. • La transición entre estados se comprueba analizando la secuencia que sigue Q. Los cambios de estado ocurren en los frentes positivos de CLK. • La secuencia de estados que sigue el circuito se ha identificado en el diagrama de tiempo. • Inicialmente la señal RST se fijó en 0 durante 700 µs para establecer las condiciones iniciales. Consecuentemente Q comienza en 1, valor que corresponde al estado inicial S1. En el primer frente de CLK, RST sigue activado, por lo que el CSS se mantiene en S1. • La transición entre estados observada en esta simulación es coherente con la tabla de estados/salidas que se obtuvo a partir del diagrama de estados que se diseñó. • Aunque D (ES) cambie entre frentes de subida de CLK, Q (EP) toma el valor que tiene D en el instante del frente positivo de CLK. • En el estado S0, si L sube a 1, P también toma valor 1. En el próximo frente positivo del CLK, el CSS cambia al estado S1 al que le corresponde que la salida P sea 0. Termina así el pulso que indicó la ocurrencia de un frente positivo en la entrada L. • El comportamiento del circuito coincide con lo que se esperaba según el diseño. Por cada frente positivo en L se ha generado un pulso positivo en P que dura hasta el próximo frente de subida de CLK. El CSS es un detector de frentes positivos tipo Mealy. Disciplina Electrónica Digital CIME - UTH Disciplina Electrónica Digital Departamento Docente del Centro de Investigaciones en Microelectrónica (CIME) Universidad Tecnológica de la Habana (UTH) José Antonio Echeverría Asignatura: Electrónica Digital I Curso 2024 Conclusiones Después de estudiar este tema, el estudiante debe saber: • Aplicar los conceptos relacionados con las Máquinas de Estado Sincrónicas (MES) para diseñar y analizar CSS. • Diseñar CSS utilizando el método de diseño de las Máquinas de Estado Sincrónicas, es decir, llegar al circuito con compuertas lógicas y flip-flops.