Tengo un patrón de entrada de cuatro bits. Tengo 16 patrones distintos de salida de 12 bits. Muchos de estos patrones de salida tienen bits que se establecen en 2 o 4 de los patrones.
Si yo (arbitrariamente) asigno cada patrón a un número de cuatro bits, puedo usar varias herramientas de mapas en línea de Karnaugh para generar circuitos lógicos.
Esta asignación arbitraria de patrones a números de cuatro bits agrega restricciones innecesarias al problema.
¿Hay alguna forma de resolver esto, para dar el mejor patrón < - > número de asignaciones, aparte de forzar a los brutos en los 16! pedidos?
(Donde "mejor" es el patrón < - > asignación de números que requiere menos lógica para descodificar la entrada de cuatro bits uno de los patrones de salida de 12 bits.)
Actualización:
Aquí están los patrones de bits que quiero descodificar a números de 4 bits para:
0 0 0 1 0 0 0 0 1 0 0 0
0 1 0 1 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 1 0 0 0
0 0 0 0 0 1 0 0 0 0 0 1
0 0 0 0 1 0 0 0 0 1 0 0
0 1 0 0 1 0 0 0 0 1 0 0
1 0 1 0 1 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0 0 1 0 0
0 0 0 0 0 1 0 0 0 0 1 0
1 0 0 0 0 1 0 0 0 0 1 0
0 0 0 0 0 1 1 0 0 0 1 0
0 0 0 0 0 0 1 0 0 0 1 0
0 0 0 0 0 1 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 1 0 0 0 0
0 0 0 0 0 0 1 1 0 0 0 0
No importa qué número de cuatro bits decodifique a qué patrón de 12 bits, siempre que haya una relación de uno a uno.
¿Cuáles son las pocas puertas lógicas que harán el trabajo?
Si bien la solución de lo anterior puede ser un poco útil, es la solución general que estoy buscando.