Veuillez être gentil. J'ai une question épineuse et importante d'un domaine différent de l'ingénierie dont la réponse peut être assez bien connue en génie électrique. J'ai posé une question similaire sur StackOverflow
Supposons que j'ai une table de vérité de 5 entrées et 1 sortie. J'ai utilisé l'algorithme Espresso (par exemple, Logic Friday) pour minimiser la table et écrire du VHDL efficace. Tout fonctionne bien.
Au lieu de minimiser et de mapper la table de vérité aux portes NAND, je voudrais mapper sur une fonction logique ternaire arbitraire. Je ne suis pas intéressé par la logique à valeurs multiples, mais par les fonctions logiques qui ont 3 variables d'entrée. Il existe 256 de ces fonctions, et la NAND 3-in n'est que l'une d'entre elles. Toutes ces 256 fonctions peuvent ne pas être intéressantes: certaines se réduisent à leurs 2 frères et sœurs variables d'entrée.
Question : comment pouvez-vous mapper une table de vérité (par exemple, avec 7 entrées) à l'une de ces fonctions 3-in. Un outil qui fait quelque chose de similaire serait formidable, mais une méthode sur la façon de simplifier les fonctions ternaires arbitraires serait la meilleure.
Contexte: les processeurs modernes peuvent effectuer des opérations logiques ternaires arbitraires sur des registres 512 bits (par exemple, l'instruction vpternlog ), mais en raison de la complexité, les compilateurs laissent le soin au programmeur, qui ne sait pas du tout comment l'optimiser.