Vous êtes sur la page 1sur 9

Le langage ABEL

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

PDF created with pdfFactory Pro trial version www.pdffactory.com

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

Les mots en gras indiquent des mots cls ABEL


Les mots ombrs sont optionnels.

S.Siot-Taillefer

2/9

PDF created with pdfFactory Pro trial version www.pdffactory.com

Le langage ABEL
Un fichier source ABEL est compos de :

Lentte : Permet de dclarer le nom du module et le titre.


Les dclarations : Permet de dclarer les variables et les constantes
utilises.
Une description logique : Cest ici que lon va dfinir la fonction ralise
laide dquations, table de vrits, diagrammes dtats
Des vecteurs de test : Cette partie est optionnelle. Elle permet par la suite
de simuler le comportement et de valider la fonction ralise.
Fin : La directive END marque la fin du fichier source.

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

module : Ce mot est un lment ncessaire du fichier source. Il indique le


dbut du module et va de pair avec le mot END. Il est prfrable de choisir
un nom unique et descriptif.
Ex :
Module comptBCD ;

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

PDF created with pdfFactory Pro trial version www.pdffactory.com

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.

istype : Optionnel. Permet de dcrire le type de sortie utilise. Les


extensions possibles sont :
'com'
le
signal
est combinatoire (fonctions logiques non
squentielles : ET, OU multiplexage etc).
OUT1 PIN ISTYPE com ;
Ex :
'reg'
le signal spcifi est la sortie d'un registre mmoire synchrone
(fonctions logiques squentielles : compteurs, bascules etc..). Lors des
quations, ces signaux devront tre associs une horloge.
Q3,Q2,Q1,Q0 PIN ISTYPE reg ;
Ex :

device : Optionnel. Ce mot est utilis pour associer au nom du module le


type de circuit que l'on dsire utiliser.

Dclaration de constantes: Il est possible pour clarifier un fichier source


d'utiliser des constantes descriptives.
Ex :
H, L = 1, 0; permet d'associer H (tat haut) la valeur 1, L la
valeur 0, ...

Dclaration d'assignements : Il est enfin possible de runir des signaux ou


des constantes afin de les utiliser comme une seule unit. On utilise alors la
syntaxe suivante :
Select = [ Select1, Select2, Select3] ;
Les lments sont spars par des virgules et l'ensemble est contenu entre des
crochets. Ainsi, si on donne la valeur 4 Select, on en dduit : Select1 = 1,
Select2 = 0 et Select3 = 0.
Ex : Q = [Q3,Q2,Q1,Q0]; ou Q = [Q3..Q0]; Q est le mot binaire form par
Q3 Q0.

S.Siot-Taillefer

4/9

PDF created with pdfFactory Pro trial version www.pdffactory.com

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.

Oprateurs arithmtiques : Les oprateurs de dcalage sont inclus car un


dcalage gauche quivaut une multiplication par deux et un dcalage
droite une division par deux.
Fonction logique

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

PDF created with pdfFactory Pro trial version www.pdffactory.com

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.

Ex : Ralisation dun compteur binaire 4 bits.


MODULE compt4

Le module sappelle compt4

"Dclaration des entrees


H,R pin;

Les entres dhorloge et de remise zro sont


dclares

"Dclaration des sorties


Q3..Q0 pin istype 'reg';
Q = [Q3..Q0];

Les 4 bits de sorties Q3 Q0 sont dclars de type


reg et regroups en une variable Q

Equations
Q.clk = H;
Q.ar = R;
Q := Q + 1;

La sortie Q change chaque front de lhorloge H.

END

S.Siot-Taillefer

Lentre R remet la sortie Q zro.


La sortie Q est incrmente ( chaque front dhorloge)
pour crer le comptage.

6/9

PDF created with pdfFactory Pro trial version www.pdffactory.com

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

Le module sappelle compar

"Dclaration des entrees


A3..A0 pin;
B3..B0 pin;
A = [A3..A0];
B = [B3..B0];

Les entres A3 A0 et B3 B0 sont dclares et


regroupes en mots binaires A et B.

"Dclaration des sorties


S pin istype 'com';

La sortie S est dclare de type com .

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

Les tables de vrits permettent la description de la fonction logique sans avoir


en rechercher lquation. Le mot cl Truth_table prcde les combinaisons
dentre et de sortie.
Table de vrit de logique combinatoire (pour les variables de type com)
La syntaxe est du type :
Truth_table
(entre -> sortie de type com)
valeur dentre -> valeur de sortie ;

S.Siot-Taillefer

7/9

PDF created with pdfFactory Pro trial version www.pdffactory.com

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

Le module sappelle Porte_et

"Dclaration des entrees


A,B pin;

Les entres A et B de la porte sont dclares

"Dclaration des sorties


S pin istype 'com';

La sortie S est dclare de type com

Truth_table
([ A, B] -> S )
[ 0, 0] -> 0;
[ 0, 1] -> 0;
[ 1, 0] -> 0;
[ 1, 1] -> 1;
END

La table de vrit donne la valeur de S en fonction de


A et B.

Un niveau indfini (X) est reprsent par .X.


Table de vrit de logique squentielles (pour les variables de type reg)
Les tables de vrits peuvent tre utilises pour dcrire les fonctions squentielles.
La syntaxe est alors du type :
Truth_table
(entre :> sortie de type reg)
valeur dentre :> valeur de sortie ;
Ex : Ralisation dun compteur dcimal avec sortie de retenue (CO) passant 1 en fin
de cycle de comptage.
MODULE cptBCD

Le module sappelle cptBCD

"Dclaration des entrees


CLK pin;

Lentre dhorloge est dclare

"Dclaration des sorties


CO pin istype 'com';

La sortie de retenue CO est dclare de type com

Q3..Q0 pin istype 'reg';


Q = [Q3..Q0];

Les 4 bits de sorties Q3 Q0 sont dclars de type


reg et regroups en une variable Q

Q.clk = CLK;

La sortie Q change chaque front de lhorloge H.

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

La table de vrit donne la nouvelle valeur de Q (au


front dhorloge CLK) en fonction de la valeur
prcdente ( Q = Q+1). Elle donne aussi la valeur de
la retenue CO

S.Siot-Taillefer

8/9

PDF created with pdfFactory Pro trial version www.pdffactory.com

Le langage ABEL

LES VECTEURS DE TESTS


Les vecteurs de test sont employs lors de la simulation du comportement du
fichier source ABEL. Ils permettent de vrifier que les quations utilises
correspondent bien aux rsultats attendus et de contrler que le circuit
ultrieurement employ est correctement programm. La syntaxe est la suivante :
Test_vectors
([ Entre1, Entre2, ....] -> [ Sortie1, Sortie2, ...])
[ Valent1, Valent2, ...]
-> [ Valsor1, Valsor2, ...] ;
Valent1 = Valeur en entre
Valsor1 = Valeur attendue pour le signal en sortie 1.
Les diffrentes valeurs en entre peuvent tre des niveaux logiques, 1 ou 0 ou des
constantes spciales. Dans ce dernier cas, il faut adopter la syntaxe d'ABEL qui est la
suivante :
.C.
entre d'horloge (transition bas - haut - bas),
.D.
front d'horloge (transition haut - bas),
.D.
entre d'horloge (transition haut - bas - haut),
.X.
tat quelconque.
Ne pas oublier les deux points qui encadrent la lettre.

ANNEXE MOTS CLES RESERVES DE ABEL.

S.Siot-Taillefer

9/9

PDF created with pdfFactory Pro trial version www.pdffactory.com