Professional Documents
Culture Documents
Gnralits
ABEL est un langage de programmation
de PLD.
Cest un langage HDL (Hardware
Description Language) moins puissant que
VHDL.
ABEL: applications de petites et
moyennes importances implmenter
dans les PAL,GAL FPGA et CPLD.
Description du Langage
module mod_name [ ;]
[title string] [ ;]
[deviceID device deviceType ;]
[declaration] [ ;]
pin declarations ;
other declarations ;
equations [ ;]
equations
[" commentaires]
truth_table (entree >sortie)[ ;]
table de vrit ;
state_diagram etat[ ;]
diagramme dtat ;
[Test_Vectors (entree->sortie)] [ ;]
vecteurs de tests ;
end mod_name [ ;]
Exemple
Half Adder
module Addition;
title 'addition 2 bits'
Addition device 'P16H8';
matriel cible : PAL16P8
A
B
Half Adder
SUM
CARRY
; Addition
lments syntaxiques
Module : en rgle gnrale le nom du
module a le nom du fichier source *.abl
(pour certains compilateurs cest mme
obligatoire). Il peut y avoir plusieurs
modules dans un source.
Title : permet de prciser la fonction
du module (optionnel).
lments syntaxiques
Device : optionnel. Cela permet dassocier au module
un circuit associ (le module sera implmenter dans le
circuit spcifi). Cependant pour garder le module
indpendant du circuit (pour pouvoir rutiliser le module
dans un autre circuit) il est prfrable de ne pas utiliser
cette directive. Il sera possible au niveau de la
compilation de prciser le PLD cible.
Exemple :
Mon_decod device 'P16V8'; // cible PAL16V8
dclarations
Pin : permet de prciser le nom des entres et des sorties
[!]pin_id pin [pin#] [istype 'attributes'] ;
On peut spcifier plusieurs noms sur une seule ligne :
[!]pin_id , pin_id, pin_id pin [pin#,
[pin#, [pin#]]] [istype 'attributes'];
Exemple :
IN1, IN2, A1 pin 2, 3, 4; // entres avec numro de
broche spcifi
OUT1 pin 9 istype 'reg';
// sortie de bascule active
ltat haut
ENABLE pin;
// entres dont le numro de broche
nest pas spcifier ( faire au niveau du compilateur)
!Chip_select pin 12 istype 'com'; // sortie combinatoire
active ltat bas.
!S0..!S6 pin istype 'com';
// sorties
combinatoires actives ltat bas
dclarations
Autres dclarations :
Il est possible de prciser des valeurs de
constantes , de macros ou densembles :
A = 21;
C=2*7;
ADDR = [1,0,11];
LARGE = B & C;
D = [D3, D2, D1, D0];
D = [D3..D0];
Les nombres
La reprsentation des nombres peut tre
binaire, octale, dcimale ou hexadcimale.
Si rien nest prcis, le compilateur adopte
la base dcimale.
Bases
Binaire (base 2)
Octal (base 8)
Hexadcimal (base 16)
Dcimal (base 10)
Symboles
^b
^o
^h
^ d ou rien
Exemples
^ b1101
^ o15
^ hD
13
Les oprateurs
Les oprateurs logiques :
Oprateurs
!
&
#
$
!$
Descriptions
Complment 1
ET (AND)
OU (OR)
OU exclusif (XOR)
NON OU exclusif
Exemples
^ b0010 = !^ b1101
10=15&10
12=8#4
15=10$5
0=10 !$5
Les oprateurs
Les oprateurs arithmtiques :
Oprateurs
+
*
/
%
<<
>>
Description
Ngation ou soustraction
Addition
Multiplication
Division
Reste de la division
A<<B Dcalage gauche (de B bits)
A>>B Dcalage droite (de B bits)
Les oprateurs
Les oprateurs relationnels :
Les oprateurs relationnels donnent des
rsultats vrais (-1) ou faux (0).
Oprateurs
==
!=
<
<=
>
>=
Descriptions
Egalit
Diffrent
Infrieur
Infrieur et gal
Suprieur
Suprieur et gal
Exemples
A==B or 3==5 (false)
A!=B or 3 != 5 (true)
A<B or 3 < 5 (true)
A<=B or 3 <= 5 (true)
A>B or -1 > 5 (true)
A>=B or !0 >= 5 (true)
Les oprateurs
Les oprateurs dassignement : 2 types
doprateurs dassignement : combinatoire et
squentiel.
= pour les oprations de logique combinatoire,
dans ce cas le signal prend la valeur donne
sans retard.
:= pour les oprations de logique squentielle,
dans ce cas le signal prendra la valeur aprs le
prochain front dhorloge.
Les oprateurs
Les niveaux de prcdence :
Niveau de priorit
1
2
3
4
Description
- !
& << >> * / %
+ - # $ !$
== != < <= >=
Les constantes
surtout utilises dans les vecteurs de tests
Constantes
.C.
.K.
.D.
.U.
.X.
.Z.
Description
Impulsion dhorloge bas-haut-bas
Impulsion dhorloge haut-bas-haut
Front descendant dun signal dhorloge
Front montant dun signal dhorloge
Indiffrent
sortie haute impdance
Les ensembles
Un ensemble est une collection de signaux ou
de constantes qui constitue un vecteur.
Exemple 1:
Signal = [D2,D1,D0];"dclaration de lensemble signal
Signal = [1,0,1] & [0,1,1];
" rsultat de signal gal [0,0,1]
Exemple 2:
[A,B] = C & D;
A = C & D;
B = C & D;
Exemple 4:
X & [A,B,C];
// Ce qui est quivalent :
[X&A, X&B, X&C];
2 & [A,B,C];
//le nombre "2" est dabord remplace par son
//quivalent binaire (0010) .
//On obtient alors :
[0 & A, 1 & B, 0 & C];
Squentiel
Table de vrit
Diagramme dtat
Equations
utiliser le terme Equations avant de
commencer
quations laide des oprateurs
Structure WhenThen Else.
WHEN condition THEN element=expression;
ELSE equation;
Ou
WHEN condition THEN equation;
Equations
Exemples :
SUM = (A & !B) # (!A & B) ;
A0 := EN & !D1 & D3 & !D7;
WHEN (A == B) THEN D1_out = A1;
ELSE WHEN (A == C) THEN D1_out = A0;
WHEN (A>B) THEN { X1 :=D1; X2 :=D2; }
A,
->
->
->
->
->
B] -> OUT )
.X.;
0 ;
1 ;
1 ;
0 ;