Diseñar un contador síncrono con d flip flops

2

Tengo que diseñar un contador con dos entradas: x y y . Si es y = 0 , el contador se comporta como un contador de anillo de 3 bits, y si y = 1 , se comporta como un contador Johnson de 3 bits. Si es x = 0 , cuenta hacia arriba, y si x = 1 , cuenta hacia abajo. Puedo solo usar chancletas D y las puertas lógicas que requiera.

Para referencia, aquí están las tablas de estado de un anillo de 3 bits y un contador Johnson (en ese orden):

Naturalmente, creé esta gran tabla de estados:

Como hay dos entradas y tres estados, cada estado siguiente depende de cinco bits. Por lo tanto, los mapas K para Q1+ , Q2+ y Q3+ (que en realidad son D1 , D2 y D3 para los flip flops) son mapas de cinco variables, lo que hace que esto sea algo complicado.

La pregunta es: ¿hay una manera de hacer la minimización con k-maps de una manera más simple (tal vez me esté faltando algo)? O, si no hay manera de simplificar la minimización, ¿es más inteligente usar k-maps de cinco variables o quizás otro método (quizás quine-mccluskey, o algo completamente diferente)?

    
pregunta

2 respuestas

4

Una simplificación del diseño es diseñar primero los contadores de anillos ascendentes / descendentes de Johnson y de forma independiente. Luego simplemente coloque un mux que seleccione Q* de cualquiera de los dos dependiendo de y .

simular este circuito : esquema creado usando CircuitLab

    
respondido por el apalopohapa
0

Usted declaró explícitamente que puede usar cualquier puerta lógica que requiera. Si ese es el caso, no necesita (ni debe) hacer ninguna minimización en absoluto.

Aquí hay dos opciones:

  1. Use la tabla de estado para leer un formulario de suma de productos no mínimo. (Cada fila es un producto de las cinco variables de entrada, y usted suma todos los productos que dan como resultado que la variable de salida es verdadera).

  2. Entiendo que no puedes usar la solución de @ apalopohapa porque tiene 6 flip-flops en lugar de 3, pero puedes hacer el equivalente combinado: hacer las siguientes funciones de estado solo para el contador de anillos, hacer el siguiente estado solo para el contador de johnson, luego use muxes controlados por y para generar los siguientes valores finales del estado. (Tanto los contadores de anillo como los contadores de johnson son populares precisamente porque la siguiente lógica de estado es muy pequeña, por cierto).

También hay programas de minimización de lógica disponibles ("espresso logic minimizer" de Google), pero en este caso no es necesario.

    
respondido por el Wandering Logic

Lea otras preguntas en las etiquetas