Tengo que diseñar un contador con dos entradas: x
y y
. Si 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 x = 0
, cuenta hacia adelante, y si x = 1
, cuenta hacia atrás. Solo puedo usar chanclas D y cualquier puerta lógica que necesite.
Como referencia, aquí están las tablas de estado de un anillo de 3 bits y un contador Johnson (en ese orden):
Entonces, naturalmente, creé esta gran tabla de estados:
Dado que hay dos entradas y tres estados, cada estado siguiente depende de cinco bits. Por lo tanto, los K-maps para Q1+
, Q2+
y Q3+
(que en realidad son D1
, D2
y D3
para los flip flops) son mapas de cinco variables, lo que lo complica un poco.
La pregunta es: ¿hay alguna manera de hacer la minimización con k-maps de una manera más simple (tal vez me estoy perdiendo algo)? O, si no hay forma de simplificar la minimización, ¿es más inteligente usar k-maps de cinco variables o tal vez otro método (quizás quine-mccluskey, o algo completamente diferente)?
Una simplificación del diseño es diseñar primero los contadores de anillo y de arriba/abajo de Johnson de forma independiente. Luego simplemente coloque un mux que seleccione Q*
cualquiera de los dos dependiendo de y
.
simular este circuito : esquema creado con CircuitLab
Usted declaró explícitamente que puede usar cualquier puerta lógica que necesite. Si ese es el caso, no necesita (y no debe) hacer ninguna minimización en absoluto.
Aquí hay dos opciones:
Utilice la tabla de estados para leer una forma de suma de productos no mínima. (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 sea verdadera).
Entiendo que no puede usar la solución de @apalopohapa porque tiene 6 flip-flops en lugar de 3, pero puede hacer el equivalente combinacional: hacer las siguientes funciones de estado solo para el contador de anillo, hacer las funciones de siguiente estado solo para el contador de johnson , luego use muxes controlados por y
para generar los valores finales del siguiente estado. (Tanto los contadores de anillo como los contadores de johnson son populares precisamente porque la lógica del siguiente estado es muy pequeña, por cierto).
También hay programas de minimización de lógica disponibles (Google "minimizador de lógica de espresso"), pero realmente no necesita uno en este caso.
jimmyb
usuario24994
jimmyb
Super gato