Histoire ancienne

Compiler du VHDL, c’est implanter de façon puissante ce que l’on appelait autrefois des fonctions logiques combinatoires et/ou  séquentielles.  Sauf que pour le compilateur VHDL la cible n’est pas à proprement parlé une porte mais un élément physique en général de type mémoire (les look-up table pour les FPGA) ou bascule.

Alors est-il encore utile d’enseigner la simplification des fonctions logiques ?  le débat est ouvert car en plus , en général, « à la main » on ne sait simplifier facilement (table de Karnaugh) que des problèmes combinatoires à 6 variables maximum. Le problème d’optimisation de fonctions multiples des mêmes variables est quasi insoluble, bref on est très limité. Mon avis est qu’il faut garder des bases pour introduire à la compréhension des logiciels que l’on va utiliser et c’est tout !

Je pratique les circuits numériques depuis leur début et ai pu suivre et accompagner leur évolution. A la fin des années 60, on faisait encore des circuits logiques  avec des transistors ( je pense aux technologies DTL, TTL, ECL). Le seul outil de conception était le papier et le crayon , et donc les méthodes de simplification de fonction (Karnaugh, Consensus) étaient de la plus haute importance.

Ensuite , sont venus les premiers circuits intégrés, les outils de CAO proposaient comme entrée la schématique et l’on devait déposer une porte , une bascule, un compteur qui allaient exister tel quel.  On ne se privait pas d’ailleurs d’introduire quelques bidouilles comme générer des impulsions calibrées en largeur au moyen d’une porte ET recevant une entrée et la même inversée n fois (équation logique de type A et /A = 0), opération  impossible à faire en synthèse VHDL car tout de suite optimisé comme 0).

C’est dans ce dernier contexte que m’était venu le besoin d’optimiser les circuits et donc de bénéficier d’un logiciel de simplification de fonctions . Ainsi est né FACILOG, une antiquité maintenant mais qui garde l’avantage d’expliciter de façon formelle les équations logique des fonctions combinatoires ou des machine d’états.

Les sources (C) de FACILOG sont disponibles et ce programme ne demande qu’à trouver une autre jeunesse. En particulier à l’époque pas ou peu de graphique, donc l’interface est uniquement texte,  de plus les noms des variables ont été automatisées pour simplifier, bref, on pourrait grandement l’améliorer tout en gardant l’idée de départ. Disposer en quelque sorte d’une calculette dédiée aux circuits logiques.

Leave a Reply

You must be logged in to post a comment.