Consideremos 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 recuento síncrono y carga respectivamente tales que:
- cuando C=L=0 el contador mantiene su valor actual
- cuando C=1, L=0 el contador aumenta en 1
- cuando C=0 L=1 el contador carga sincrónicamente un número de nbit dado por el usuario en su línea de entrada INPUT
- cuando C=L=1 el contador disminuye en 1
Los contadores también incluyen un pin de reset asíncrono RESET (los contadores se reinician a 0 cuando RESET=1) y un pin asíncrono ENABLE que activa (ENABLE=1) o desactiva el contador (ENABLE=0).
Consideremos que queremos construir el siguiente circuito digital:
- CNT_1 cuenta de 0 a N1 (0 a N1 impulsos de reloj)
- CNT_2 cuenta de 0 a N2 (N1 + 1 a N1 + N2 impulsos de reloj)
y este proceso se repite una y otra vez.
Sea x el ==
de CMP_A e y es la ==
salida de CMP_B. Nótese 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 dos implementaciones siguientes:
-
Establezca ENABLE <= 1 y RESET <= 0 y utilice las entradas síncronas L,C para implementar los contadores.
-
Ajuste L = 0, ENABLE <= 1 y utilice el pin asíncrono RESET para reiniciar los contadores.
Al diseñar los gráficos ASM para cada aplicación me encontré con esta observación:
Los pines asíncronos (caso 2) deben ser de 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 de tipo Mealy. Además, los pines síncronos L1,L2,C1,C2 deben ser de tipo Mealy en el caso 1.
¿Es cierta mi suposición de que los pines asíncronos deben implementarse como salidas Moore y los síncronos como Mealy?