Ces circuits permettaient de réaliser, de manière très compacte, une ou plusieurs fonctions logiques, ou systèmes logiques combinatoires/séquentielles exploitant diverses variables d’entrée.
Aujourd'hui, les MicroContrôleurs (PIC, AVR, ...) se sont imposés de par leur énorme polyvalence, leur large diffusion, leur démocratisation et leur très grande facilité de programmation que ne proposaient pas vraiment les PAL/GAL !
Inlab avait développé un logiciel de programmation des PAL/GAL, PROLOGIC Compiler, dont une version bridée, qui tenait sur une disquette, a été distribuée (gratuitement) par Texas Instrument. Cette version se limitait cependant aux seuls composants commercialisés par Texas Instrument.
Ce programme et son mode d'emploi sont téléchargeables au bas de cette page :-)
Si je fais référence aujourd'hui à ce logiciel c'est parce qu'il peut encore nous être d'une grande utilité pour la résolution des équations logiques d'un système logique complexe réalisé, notamment, avec un MicroContrôleur, simplement d'après sa table de vérité (TDV) traduisant les réponses attendues en sortie du système.
Pour votre information, PROLOGIC peut exploiter trois types de fichiers sources: les équations Booléennes, les tables de vérité et les diagrammes d'état.
Outre un compilateur (LC.exe), ce logiciel est également pourvu d'un simulateur (LS.exe) permettant de tester le composant et sa réponse en regard du fichier de programmation sur base de l'écriture de "vecteurs de test".
Vous trouverez dans le répertoire téléchargeable (bas de cette page) un petit fichier Word qui vous en dira un tout petit peu plus à ce sujet.
Nous allons donc juste nous intéresser ici au compilateur et aux tables de vérité et voir l'utilisation très intéressante qu'en fait encore pour nous PROLOGIC Compiler.
Il est très facile, et nécessaire, au début d'un projet de développement d'un système logique (décodeur, ...) d'en établir la table de vérité.
Il nous est ensuite indispensable de traduire l'ensemble des états de sortie en équations logiques, combinant les entrées, pour finalement les intégrer dans le programme du µC.
Certes, les spécialistes de l'algèbre de Boole ou des diagrammes de Karnaught s'en tireront après quelques cogitations et autres ronds sur le papier mais avec PROLOGIC Compiler, un simple fichier texte, saisi avec un éditeur de textes, traduira une table de vérité en autant d'équations logiques que compte de sorties le système... et cela, en quelques secondes !
On prendra soin d'établir une table de vérité complète, ne négligeant pas les états "inutiles" (Don't Care) qui risqueraient toujours de se présenter, notamment lors du démarrage du système.
En fait, la table de vérité doit donc toujours compter autant de lignes que 2 exposant le nombre d'entrées. (Exemple: 3 entrées: 2^3=8 états possibles; 4 entrées: 2^4 = 16 états possibles, ...).
1) Saisie du fichier source
On évitera l'usage des majuscules (qui "plante" le compilateur) et le fichier sera sauvé avec une extension ".pld"
Les infos/remarques en magenta ne doivent pas être saisies dans le fichier source !
title {Test1 ---> Traduire une table de vérité en équations logiques - R.LEGAT (c)2012} titre du fichier qui apparaîtra dans le fichier final de compilation reprenant les équations optimisées
include p16r8; déclaration du composant PAL au logiciel (P16R8: 8 entrées, 8 sorties à bascules)
define i1=pin2; personnalisation des noms des pins d'entrée (on n'utilise que 4 entrées)
define i2=pin3;
define i4=pin4;
define i8=pin5;
define s1=pin12.d; personnalisation des noms des pins de sortie (on emploie ici les 8 sorties)
define s2=pin13.d; on utilise les pins "D" des bascules (latche/mémorisation de l'état de sortie)
define s3=pin14.d;
define s4=pin15.d;
define s5=pin16.d;
define s6=pin17.d;
define s7=pin18.d;
define s8=pin19.d;
Truth_table { déclaration de la table de vérité complète (2^in = 2^4= 16 états, soit 16 lignes à définir complètement. Dans ce cas, le système compte 4 entrées et 8 sorties)
i8 i4 i2 i1 : s1 s2 s3 s4 s5 s6 s7 s8;
0 0 0 0 : 0 0 0 0 0 0 0 0;
0 0 0 1 : 0 0 0 0 0 0 0 1;
0 0 1 0 : 0 0 0 0 0 0 1 0;
0 0 1 1 : 0 0 0 0 0 1 0 0;
0 1 0 0 : 0 0 0 0 1 0 0 0;
0 1 0 1 : 0 0 0 1 0 0 0 0;
0 1 1 0 : 0 0 1 0 0 0 0 0;
0 1 1 1 : 0 1 0 0 0 0 0 0;
1 0 0 0 : 1 0 0 0 0 0 0 0;
1 0 0 1 : 1 1 0 0 0 0 0 0;
1 0 1 0 : 1 0 1 0 0 0 0 0;
1 0 1 1 : 1 0 0 1 0 0 0 0;
1 1 0 0 : 1 0 0 0 1 0 0 0;
1 1 0 1 : 1 0 0 0 0 1 0 0;
1 1 1 0 : 1 0 0 0 0 0 1 0;
1 1 1 1 : 1 1 1 1 1 1 1 1;
} fin de code
Certains pins du P16R8 ont des fonctions particulières qui doivent être déclarées au programme grâce à un suffixe placé après le n° du pin ; ainsi :
pinxx.d entrée de bascule utilisée en verrou (D flip-flop with internal feedback)
pinxx.q sortie de bascule
!pinxx.q sortie complémentaire (inversée) de bascule
pinxx.oe fonction de validation (out enable)
Pour l'édition "papier" du fichier, je vous recommande d'utiliser la police d'écriture Courrier pour la table de vérité.
Elle permet un alignement parfait des caractères indépendamment de la taille sélectionnée. :-))
2) Compilation
On lancera la commande LC <nom du fichier>.
L'usage d'un petit fichier batch placé dans le répertoire de travail facilitera l'opération.
Il sera réduit à sa plus simple expression:
rem Fichier de lancement GO.bat
LC Test1
Pause
La commande Pause, qui s'exécutera en fin de compilation, a l'avantage de vous donner les informations finales du compilateur et vous présenter les éventuelles erreurs d'écriture.
3) Les équations logiques optimisées
Elles ont été crées lors de la compilation et se trouvent maintenant dans le fichier portant l'extension .lst
Voici comment il se présente:
proLogic Compiler 1ère partie du fichier: les équations logiques optimisées. Elles utilisent les fonctions de base AND (&), OR (| ) et INVERSE (!)
Texas Instruments V1.97
Copyright (C) 1989 INLAB, Inc.
Signal Specifications
pin19.d=
pin5 & pin4 & pin3 & pin2
| !pin5 & !pin4 & !pin3 & pin2
pin18.d=
!pin5 & !pin4 & pin3 & !pin2
| pin5 & pin4 & pin3
pin17.d=
!pin5 & !pin4 & pin3 & pin2
| pin5 & pin4 & pin2
pin16.d=
pin5 & pin4 & pin3 & pin2
| pin4 & !pin3 & !pin2
pin15.d=
!pin5 & pin4 & !pin3 & pin2
| pin5 & pin3 & pin2
pin14.d=
pin5 & pin4 & pin3 & pin2
| pin5 & !pin4 & pin3 & !pin2
| !pin5 & pin4 & pin3 & !pin2
pin13.d=
pin5 & !pin4 & !pin3 & pin2
| pin4 & pin3 & pin2
pin12.d=
pin5
proLogic Compiler La 2ème partie du fichier ne nous intéresse pas. Elle donne la configuration de programmation des "fusibles" du PAL P16R8
Texas Instruments V1.97
Copyright (C) 1989 INLAB, Inc.
Fuse Plot
Test1 ---> Traduire une table de vérité en équations logiques - R.LEGAT (c)2012
p16r8 revision 89.2.11
11 1111 1111 2222 2222 2233
0123 4567 8901 2345 6789 0123 4567 8901
0 X--- X--- X--- X--- ---- ---- ---- ---- +
1 X--- -X-- -X-- -X-- ---- ---- ---- ---- +
2 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
3 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX + pin19.d
4 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
5 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
6 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
7 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
8 -X-- X--- -X-- -X-- ---- ---- ---- ---- +
9 ---- X--- X--- X--- ---- ---- ---- ---- +
10 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
11 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX + pin18.d
12 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
13 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
14 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
15 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
16 X--- X--- -X-- -X-- ---- ---- ---- ---- +
17 X--- ---- X--- X--- ---- ---- ---- ---- +
18 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
19 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX + pin17.d
20 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
21 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
22 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
23 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
24 X--- X--- X--- X--- ---- ---- ---- ---- +
25 -X-- -X-- X--- ---- ---- ---- ---- ---- +
26 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
27 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX + pin16.d
28 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
29 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
30 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
31 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
32 X--- -X-- X--- -X-- ---- ---- ---- ---- +
33 X--- X--- ---- X--- ---- ---- ---- ---- +
34 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
35 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX + pin15.d
36 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
37 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
38 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
39 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
40 X--- X--- X--- X--- ---- ---- ---- ---- +
41 -X-- X--- -X-- X--- ---- ---- ---- ---- +
42 -X-- X--- X--- -X-- ---- ---- ---- ---- +
43 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX + pin14.d
44 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
45 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
46 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
47 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
48 X--- -X-- -X-- X--- ---- ---- ---- ---- +
49 X--- X--- X--- ---- ---- ---- ---- ---- +
50 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
51 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX + pin13.d
52 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
53 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
54 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
55 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
56 ---- ---- ---- X--- ---- ---- ---- ---- +
57 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
58 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
59 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX + pin12.d
60 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
61 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
62 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
63 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +
| | | | | | | | | | | | | | | |
pin2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| | | | | | | |
pin1 18 17 16 15 14 13 11
Legend:
X : Cell intact (JEDEC 0)
- : Cell programmed (JEDEC 1)
X- : True input term, Complement register term
-X : Complement input term, True register term
XX : Any XX pair in a product term yields product term LOW.
-- : No input term (don't care). A product term comprised
entirely of -- yields product term HIGH.
- Comment passer d'une table de vérité à une équation logique
- Comment convertir une table de vérité en équations logiques
- Equation logique d'après la table de vérité
- Equation logique correspondant à une table de vérité
- Simplification des équations logiques
- Résolution facile des équations logiques
---> Download Téléchargez Texas Instrument PROLOGIC Compiler !
Texas Instrument proLogic Compiler User's Guide
Le mode d'emploi complet (v.1-1991 / 171 pages) de Prologic Compiler est archivé à cette adresse:
https://ia600405.us.archive.org/5/items/TexasInstruments-TI-TheprologicCompilerUsersGuideOCR/TexasInstruments-TI-TheprologicCompilerUsersGuideOCR.pdf