¿Debemos usar entradas asíncronas en bloques de Moore y síncronas en bloques de Mealy?

0

Considere que tenemos dos contadores de n bits CNT_A y CNT_B dos comparadores sin signo de n bits CMP_A, CMP_B y dos números binarios de n bits N1, N2. Los contadores tienen dos entradas C, L para conteo y carga síncrona respectivamente, de manera que:

  1. cuando C = L = 0 el contador mantiene su valor actual
  2. cuando C = 1, L = 0 el contador aumenta en 1
  3. cuando C = 0 L = 1, el contador carga sincrónicamente un número de nbit dado por el usuario a su línea de entrada ENTRADA
  4. cuando C = L = 1 el contador disminuye en 1

Los contadores también incluyen un RESET reinicio asíncrono (los contadores se reajustan a 0 cuando RESET = 1) y un pin ENABLE asíncrono que habilita (ENABLE = 1) o deshabilita el contador (ENABLE = 0).

Considera que queremos construir el siguiente circuito digital:

  1. CNT_1 cuenta de 0 a N1 (0 a N1 pulsos de reloj)
  2. CNT_2 cuenta de 0 a N2 (N1 + 1 a N1 + N2 pulsos de reloj)

y este proceso se repite una y otra vez.

Sea x la salida == de CMP_A y y la salida == de CMP_B. Tenga en cuenta que los comparadores están conectados a sus respectivos contadores CNT_A, CNT_B. Sea Q (t) el estado del controlador FF en el tiempo t.

Por ejemplo, considere las siguientes dos implementaciones:

  1. Establezca ENABLE < = 1 y RESET < = 0 y use las entradas síncronas L, C para implementar los contadores.

  2. Establezca L = 0, HABILITAR < = 1 y use el pin RESET asíncrono para reiniciar los contadores.

Al diseñar los gráficos ASM para cada implementación, me topé con esta observación:

Los pines asíncronos (caso 2) deben ser del tipo Moore (los pines RESET tienen valores Q (t) y Q '(t) para los dos contadores) mientras que los pines L (caso 2) deben ser del tipo Mealy. Además de esto, los pines síncronos L1, L2, C1, C2 deberían ser de tipo Mealy en el caso 1.

¿Mi suposición es cierta, es decir, los pines asíncronos deben implementarse como salidas de Moore y sincrónicos como los de Mealy?

    
pregunta bolzano

1 respuesta

1

Sus conclusiones no son ciertas.

La línea inferior es que todas las entradas que pueden causar un cambio de estado deben cumplir con el tiempo de configuración y de espera para que el siguiente estado sea definitivo.

Tome su ejemplo del pin L síncrono alimentado por la salida de una máquina Mealy. Si la salida de la máquina Mealy viola la configuración o el tiempo de espera del pin L. Entonces no hay garantía de qué bits realizarían una carga y qué bits no realizarían una carga en el borde del reloj en particular.

También es posible tener la salida de una máquina Mealy para no violar nunca la configuración y el tiempo de espera. Por ejemplo, si las entradas a la máquina Mealy que afectan a una salida particular provienen de fuentes síncronas, entonces la salida también es síncrona (con un retardo adicional). Por supuesto, debe haber suficiente presupuesto para manejar los retrasos de propagación. Pero eso es cierto aquí y prácticamente en todas partes.

    
respondido por el rioraxe

Lea otras preguntas en las etiquetas