¿Cómo diseñar, construir y probar circuitos secuenciales sincrónicos usando D-Flip Flops?

1

Quiero diseñar, construir y probar circuitos secuenciales síncronos mediante el uso de D-Flip Flops.

Sé cómo analizar diagramas de estado, pero ahora no sé cómo obtener un diagrama de estado usando solo salidas.

P.S. : Este es un proyecto escolar para mi clase de laboratorio de lógica. No quiero una respuesta completa pero cualquier ayuda sería apreciada. Realmente no pude entender cómo empezar. Gracias de antemano.

Use flip-flops D para diseñar el circuito especificado por el diagrama de estado de la siguiente figura. La salida del circuito es Zi, que es la salida del circuito. (Los puntos negros representan el binario 1)

    
pregunta plumberry

2 respuestas

0

¿Quieres generar esta secuencia?

Para eso comenzar con la tabla de verdad.

 000 --> 00111 
 001 --> 00101
 010 --> 10000 
 011 --> 11011 
 100 --> 00001 
 101 --> 10100 
 110 --> 11100 
 111 --> 11111

Primero crea un contador síncrono de 3 bits utilizando D flip-flop. Utilice las salidas de contador como variable de entrada para que el circuito lógico obtenga la combinación de salida respectiva. Primero dibuje 3 variables (salidas de contador) K-map para Z1. Encuentra la ecuación booleana para el mismo. Repita esto para Z2, Z3, Z4 y Z5.

Si necesita más aclaraciones, hágamelo saber.

    
respondido por el tollin jose
0

La idea aquí es diseñar un circuito que vaya de un estado al siguiente (línea de valores Z_i) en un borde del reloj o posiblemente en el borde del reloj más la entrada habilitada.

Esto suele ser una máquina de Moore: todas las salidas solo dependen de sus variables de estado. Al construir una máquina Moore, debe decidir su representación interna y cómo descodificar su representación interna a sus valores de salida. Esto significa que tendrá que crear tanto a) la lógica de transición entre los estados como la b) la lógica de decodificación de salida.

También puede construir una forma especial de máquina Moore llamada máquina Medvedev. Es una máquina de Moore donde el estado interno y la salida coinciden, es decir, son lo mismo.

Comenzar con un contador binario puede ser útil si tiene el lujo de usar una tabla de consulta (LUT), donde proporciona una dirección en una parte de la memoria que genera tantos bits como sea necesario en paralelo. Para la codificación manual, puede que no sea el mejor punto de partida.

Para encontrar una codificación adecuada para su estado interno, normalmente verá los valores de salida y creará una forma inteligente de reducirlos. Encuentre bits duplicados (grupos de bits que son siempre los mismos por estado), encuentre simetrías, etc.

En su caso, una cosa que es inmediatamente obvia es la simetría en sus estados.

11111
00111
00101
10000
11011 <-- point of symmetry
00001
10100
11100
11111

Inmediatamente, esto significa que puede usar un bit en su representación interna para simplemente cambiar todas las salidas. Su patrón tiene una naturaleza circular, por lo que algo como un contador Johnson viene a la mente: salida del estado     salida del estado

0000    11111
1000    00111
1100    00101
1110    10000
1111    11011
0111    00001
0011    10100
0001    11100
0000    11111

Observe que la transición del contador Johnson es muy simple, simplemente cambia cada bit a la derecha, tome el bit del estado más a la derecha, invierta, cambie al primer bit del estado: s2 '< = s3; s1 '< = s2; s0 '< = s1; s3 '< = no s0;

Realice los pedidos de bit de salida y bit de salida del conmutador de bits de Johnson más a la derecha:

state   state    output   output
       switched          switched
0000    0000     11111    11111
1000    1000     00111    00111
1100    1100     00101    00101
1110    1110     10000    10000
1111    1111     11011    11011
0111    1110     10000    00001
0011    1100     00101    10100
0001    1000     00111    11100
0000    0000     11111    11111

Observe cómo la inversión reduce su espacio de estado:

 state    outputs
switched
 0000      11111
 1000      00111
 1100      00101
 1110      10000
 1111      11011

Tendrá que hacer el cambio usted mismo usando la lógica de estilo de multiplexor q0' <= (s0 and q4) or (not s0 and q0) etc. Lo mismo para las entradas de estado conmutadas a su lógica de salida: v0 <= (s0 and s3) or (not s0 and s0) etc.

Ahora puedes usar los mapas de Karnaugh para simplificar tus expresiones. Luego conecte las ecuaciones del multiplexor en sus expresiones lógicas de salida y debería terminar.

Note como esta es una posibilidad. Podría usar un contador binario, podría usar estados aleatorios para comenzar, etc.

Por ejemplo, lógicamente, dado que ninguna de sus líneas son iguales, técnicamente solo necesita los bits ld (#states) para codificar la información. Esto tiene la ventaja de ahorrar un flip flop. La desventaja es que ahora tiene que diseñar la lógica de transición de estado y la lógica de decodificación de salida.

    
respondido por el FRob

Lea otras preguntas en las etiquetas