Por favor sea amable. Tengo una pregunta espinosa e importante de un campo de ingeniería diferente cuya respuesta puede ser bastante conocida en ingeniería eléctrica. Hice una pregunta similar en StackOverflow
Supongamos que tengo una tabla de verdad de 5 entradas y 1 salida. Utilicé el algoritmo Espresso (por ejemplo, Logic Friday) para minimizar la tabla y escribir un VHDL eficiente. Todo funciona bien.
En lugar de minimizar y mapear la tabla de verdad a las puertas NAND, me gustaría mapear a una función lógica ternaria arbitraria. No me interesa la lógica de valores múltiples, sino las funciones lógicas que tienen 3 variables de entrada. Hay 256 de estas funciones, y 3 en NAND es solo una de ellas. No todas estas 256 funciones pueden ser interesantes: algunas se reducen a sus 2 hermanos variables de entrada.
Pregunta : ¿cómo puede asignar una tabla de verdad (por ejemplo, con 7 entradas) a cualquiera de estas funciones de 3 pulgadas? Una herramienta que haga algo similar sería genial, pero sería mejor un método sobre cómo simplificar a funciones ternarias arbitrarias.
Antecedentes: las CPU modernas pueden realizar operaciones lógicas ternarias arbitrarias en registros de 512 bits (por ejemplo, la instrucción vpternlog ), pero debido a la complejidad, los compiladores se lo dejan al programador, que no tiene ni idea de cómo optimizar esto.