Uploaded by Leo

Circuitos Secuenciales Síncronos y Máquinas de Estado

advertisement
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.
Download