Professional Documents
Culture Documents
Le langage ABEL
INTRODUCTION .................................................................................................. 1
STRUCTURE DU FICHIER SOURCE ....................................................................... 2
LENTETE ............................................................................................................ 3
LES DECLARATIONS............................................................................................ 4
LES EQUATIONS.................................................................................................. 5
Equations de logique boolennes combinatoires (pour les variables de type com)...... 5
Equations de logique boolennes squentielles (pour les variables de type reg) ........ 6
Oprateurs daffectation conditionnelle When Then Else ................................ 7
LES TABLES DE VERITES ..................................................................................... 7
Table de vrit de logique combinatoire (pour les variables de type com)................. 7
Table de vrit de logique squentielles (pour les variables de type reg) .................. 8
LES VECTEURS DE TESTS .................................................................................... 9
ANNEXE MOTS CLES RESERVES DE ABEL............................................................. 9
INTRODUCTION
ABEL = Advanced Boolean Equation Language
Jusqu prsent le dveloppement de fonctions logiques se faisait partir de composants
des familles 74XXX ou 4000. La conception ncessitait la cration dun schma, la
conception des plans du circuit imprim (typon) et le cblage de la carte. Ce
dveloppement tait complexe et nautorisait pas de modifications. L'apparition des
circuits logiques programmables de type PLD (Programmable Logic Device), CPLD
(Complexe PLD) ou FPGA (Field Programmable Gate Array)) a permit de s'affranchir de
cette limitation.
En effet, l'utilisateur peut crer, dans ces circuits, toutes les fonctions logiques qu'il
souhaite avec comme limitations, la place disponible dans le circuit choisi et/ou la vitesse
de fonctionnement de celui-ci. De plus, ce comportement peut aisment tre simul avec
l'ordinateur, puis expriment dans le circuit logique programmable aprs un simple
tlchargement toujours depuis l'ordinateur.
Exemple dorganisation
interne dun PLD
Matrice dinterconnexion
Ces composants sont constitus dun rseau de cellules logiques connectes les unes
avec les autres. La programmation des circuits logiques programmables consiste
conserver les liaisons ncessaires la ralisation de la fonction logique voulue.
S.Siot-Taillefer
1/9
Le langage ABEL
Il est inconcevable, lorsque l'on dsire raliser une fonction logique particulire, d'tre
oblig de connatre les liaisons conserver lors de la programmation des composants
logiques programmables. Des langages HDL (Hardware Description Langage) permettent
la programmation de ces composants de manire souple. On peut citer le VHDL, lABEL
et Verilog. Le langage ABEL est plus simple que le VHDL qui est capable de dcrire des
systmes plus complexes.
Pour rendre la programmation plus souple, le langage ABEL autorise la description du
projet l'aide d'quations logiques, de tables de vrit ou de diagrammes d'tat
ou encore par une combinaison des trois. Il utilise une description logique de haut
niveau l'aide de directives du langage ABEL-HDL. Ainsi le fichier source a une structure
bien prcise. De plus, il est cod en ASCII, ce qui le rend lisible par tous les diteurs de
texte.
ABEL permet la programmation de nombreux circuits indpendamment du fabricant.
Grce un logiciel associ on peut partir du fichier source contenant les quations
logiques gnrer le fichier de chargement ncessaire la programmation du circuit.
On sintressera ici lcriture dun fichier source en langage ABEL, notamment la
syntaxe utilise pour dcrire la fonction sous forme dquations logiques, table de vrit.
STRUCTURE DU FICHIER SOURCE
Entte
Dclarations
Description
logique
Vecteurs
de test
Fin
module
options
Title
source
'- trace wave'
' Exemple de fichier source'
Declarations
dev1
DEVICE 'P16V8' ;
En1, En2, En3, clk PIN 2, 3, 4, 5 ;
tout, rien, autre
PIN ISTYPE 'reg' ;
sortie = [tout, rien, autre] ;
Equations
sortie.clk = clk ;
tout := En1 & En2 & En3 ;
rien := !En1 & !En2 & !En3 ;
autre := (En1 & En2 & !En3) # (En1 & !En2 & En3)
# (!En1 & En2 & En3) ;
Test_Vectors
( [ En1, En2, En3, clk ] -> [tout, rien, autre] )
[ 1 , 1 , 1 , .c. ] -> [ 1 , 0 ,
0 ] ;
[ 0 , 1 , 1 , .c. ] -> [ 0 , 0 ,
1 ] ;
[ 1 , 0 , 1 , .c. ] -> [ 0 , 0 ,
1 ] ;
[ 0 , 0 , 0 , .c. ] -> [ 0 , 1 ,
0 ] ;
End
source
S.Siot-Taillefer
2/9
Le langage ABEL
Un fichier source ABEL est compos de :
Remarques :
Le langage ABEL utilise des mots cls rservs (liste en annexe1). Ceux-ci ne
peuvent pas tre utiliss comme variables.
Chaque quation, dclaration du programme se termine par un point virgule
; , ceci pour en indiquer la fin. On peut donc pour une meilleure lisibilit,
utiliser plusieurs lignes dans le cas d'une quation sans employer un
caractre de contrle spcifique.
Majuscule - minuscule : Les mots cls d'ABEL peuvent tre crit
indiffremment en majuscule ou en minuscule. Par contre, les constantes ou
les noms utiliss doivent toujours tre crits de la mme faon.
"Entre" et "entre" reprsentent deux variables diffrentes
Ex :
End, end ou END sont quivalents
Les commentaires sont trs utiles pour clarifier un fichier. Ces derniers
doivent tre prcds par une "double apostrophe " et tre termins soit
aussi par un double apostrophe soit par la fin de ligne.
Ex :
"ceci est un commentaire"
Les nombres : Ils peuvent tre crits dans diffrentes bases en respectant la
syntaxe suivante (par dfaut, le mode dcimal est retenu) :
Base
binaire
octale
dcimal
hexadcimal
Syntaxe
^b
^o
^d
^h
LENTETE
title : Optionnel. Le titre peut tre insr dans le fichier source pour donner
un nom au module. Ce titre apparatra en entte du fichier de programmation
et des fichiers textes crs par l'application. La chane de caractres doit tre
encadre dans des apostrophes.
Title compteur BCD avec retenue ;
Ex :
S.Siot-Taillefer
3/9
Le langage ABEL
LES DECLARATIONS
Elles associent des noms des broches, des circuits, des constantes, ...Chaque
variable prsente en entre ou en sortie de la fonction ralise doit tre dclare.
pin : Ceci permet d'assigner un nom une broche du circuit.
En1, En2, En3 PIN 1, 2, 3 ;
Ex :
En1 est le nom de la broche 2, En2 celui de la broche 3
L'indication du numro de la broche est optionnelle et peut tre ralise
automatiquement au cours du traitement par le "Fitter".
Ex :
In1, In2 PIN ;
Pour dclarer 2 entres In1 et In2.
S.Siot-Taillefer
4/9
Le langage ABEL
LES EQUATIONS
Les quations permettent la description de la fonction logique. Elles utilisent les
oprateurs dcrits ci-dessous. Le mot cl Equations prcde les expressions
logiques.
Ex : Equations
S = !A & B ;
Equations de logique boolennes combinatoires (pour les variables de type com)
Loprateur d'assignement = assigne le rsultat d'une expression une
variable. L'assignement est automatique et sans dlai. La syntaxe est du
type :
Nom de la sortie = expression boolenne des entres;
Oprateurs logiques
Fonction logique
Non
Abel
Equation logique
Oprateur
Syntaxe
S = !A ;
S=A
Et
S=A.B
&
S=A&B;
Ou
S=A+B
S=A#B;
Ou Exclusif
S=AB
S=A$B;
Non Ou Exclusif
S=AB
!$
S = A !$ B ;
Ex : Equations
S = A & B ;
En = A11 & (A10 # A9) ;
S gale A ET B
En gale A11 ET (A10 OU A9)
Dans une quation, il existe une priorit entre les diffrents oprateurs pour l'valuation.
Celle-ci est la mme que celle employe dans les calculatrices. En cas de doute, il est
prfrable d'utiliser des parenthses.
complment deux
soustraction
addition
multiplication
division entire non signe
modulo, reste de la division
dcalage de A gauche de B bits
dcalage de A droite de B bits
S.Siot-Taillefer
Abel
Oprateur
+
*
/
%
<<
>>
Syntaxe
-A
A-B
A+B
A*B
A/B
A%B
A<<B
A>>B
5/9
Le langage ABEL
Equations de logique boolennes squentielles (pour les variables de type reg)
Loprateur d'assignement := assigne le rsultat d'une expression une
variable. L'assignement n'est effectu qu'au prochain coup d'horloge. La
syntaxe est du type :
Nom de la sortie := expression boolenne des entres;
Lorsque le signal en sortie est issu d'un registre mmoire, il est possible de le qualifier
prcisment en utilisant des extensions, " X.clk " par exemple. Les extensions disponibles
sont :
.AR
pour entre reset asynchrone,
.clk
entre horloge de la bascule active sur front,
.D
entre DATA d'une bascule D,
.FB
sortie rutilis en contre-raction
.OE
Validation de la sortie.
Le schma qui suit indique les extensions typiques possibles.
Equations
Q.clk = H;
Q.ar = R;
Q := Q + 1;
END
S.Siot-Taillefer
6/9
Le langage ABEL
Oprateurs daffectation conditionnelle When Then Else
Les oprateurs When Then Else permettent de dcrire le comportement dune
fonction logique.
La syntaxe est du type :
When condition Then quation Else quation ;
Pour dcrire la condition, on utilise des oprateurs relationnels. Ils permettent de
comparer deux termes dans une expression. Une expression forme d'oprateurs
relationnels produit en rsultat une variable de type boolenne, vraie (= 1) ou
fausse (= 0).
Oprateur
Description
==
galit
!=
diffrent
<
infrieur
<=
infrieur ou gal
>
suprieur
>=
suprieur ou gal
Il est possible de grouper plusieurs quations avec des crochets {..}. La syntaxe
devient :
When condition Then { quation1 ; quation2 ;} Else { quation1 ; quation2 ;}
Ex : Ralisation dun comparateur logique de mots de 4 bits. La sortie vaut 1 si les mots
binaires A et B sont gaux. Lorsque A et B sont diffrents la sortie S est 0.
MODULE compar
Equations
When (A==B) Then S=1 ;
Else S=0;
END
Quand
sont gaux S prend la
Lentreles
R mots
remetbinaires
la sortieAQetBzro.
valeur 1. Sinon S vaut 0.
LES TABLES DE VERITES
S.Siot-Taillefer
7/9
Le langage ABEL
Lorsque il y a plusieurs entres ou plusieurs sorties, les variables seront encadres
par des crochets [..] et spares par des virgules.
Ex : Ralisation dune porte ET (S = A . B).
MODULE Porte_et
Truth_table
([ A, B] -> S )
[ 0, 0] -> 0;
[ 0, 1] -> 0;
[ 1, 0] -> 0;
[ 1, 1] -> 1;
END
Q.clk = CLK;
Truth_table
(Q :> Q -> S )
0 :> 1 -> 0;
1 :> 2 -> 0;
2 :> 3 -> 0;
3 :> 4 -> 0;
4 :> 5 -> 0;
5 :> 6 -> 0;
6 :> 7 -> 0;
7 :> 8 -> 0;
8 :> 9 -> 0;
9 :> 0 -> 1;
END
S.Siot-Taillefer
8/9
Le langage ABEL
S.Siot-Taillefer
9/9