Le langage ABEL en logique combinatoire G BERTHOME – Lycée Mireille GRENET - CO

Le langage ABEL en logique combinatoire G BERTHOME – Lycée Mireille GRENET - COMPIEGNE Page 1/4 1. Déclaration d’un titre : Le texte placé entre apostrophes sera copié dans le fichier JEDEC. title ‘ ............................. ‘ Exemple : title ‘ circuit : Pal 16L8 Auteur : <nom du binôme> Application : ET-NON à 3 entrées Date : Fichier : ETNON ‘ 2. Commentaires : // Exemple: // Ceci est un commentaire 3. Déclarations des entrées et des sorties : Pour indiquer au programme que l’on déclare les entrées/sorties du composant programmable il faut utiliser l’instruction « Declarations » L’instruction utilisée pour déclarer les entrées sorties est : « pin », suivi du numéro de la broche que l’on souhaite affecter au signal. Une ligne de code se finie toujours par un point virgule « ; ». Déclarations des entrées logiques : Les entrées logiques d’une fonction de logique séquentielle sont déclarées de la même manière qu’en combinatoire : e1 pin 2; //Le signal e1 est affecté à //la broche 1 du composant //programmable Déclaration de l’entrée d’horloge : Une fonction logique séquentielle synchrone possède une entrée d’horloge qui doit être affectée à la broche du composant programmable correspondant à l’entrée d’horloge de celui-ci. H pin 1; //Le signal d’horloge H est //affecté à l’entrée //d’horloge du composant //programmable (broche 1). Déclaration d’une sortie de registre : Les sorties des registres sont déclarées par l’instruction « pin istype ‘reg’ » : Q0 pin 19 istype ‘reg’ ; //La broche 19 est //affectée à la //sortie d’un //registre. Le langage ABEL en logique combinatoire G BERTHOME – Lycée Mireille GRENET - COMPIEGNE Page 2/4 4. Déclarations de vecteurs : Un vecteur est un mot regroupant plusieurs entrées, plusieurs sorties ou des variables internes au composant programmables. Exemple : E=[E3..E0] ; //E représente un mot de 4 bits //représente par les entrées E3 à E0. 5. Utilisation des nombres : On peut utiliser les nombres dans des bases différentes, l’utilisation des différentes bases se fait grâce aux mots clés suivants : Base Symbole Hexadécimal ^h Décimal ^d (par défaut) Binaire ^b 6. Description d’une fonction logique séquentielle : Lorsqu’on décrit une fonction de logique séquentielle il faut indiquer que les sorties des registres vont basculer au front de l’entrée d’horloge. Pour cela on utilise le code Equations et il faudra écrire l’équation suivante : [Qn..Q0].CLK=H ; //Les sorties des registres //déclarées Qn à Q0 changeront //d’états à tous les fronts //montants de l’entrée d’horloge //H 6.1 Description par les équations logiques : On utilise le code Equations. Dans ce type de description on écrit l’état futur de la sortie d’un registre en fonction des entrées et de l’état actuel des sorties des registres. L’opérateur utilisé sera « := ». Etat futur de la sortie := opération logique entre les états actuels des sorties et des entrées Exemple : Q1 := !Q1 ; //L’état futur de Q1 prendra le //complément de l’état actuel de Q1 à //chaque fronts actifs de l’horloge. Le langage ABEL en logique combinatoire G BERTHOME – Lycée Mireille GRENET - COMPIEGNE Page 3/4 6.2 Description par les équations conditionnelles : On utilise le code Equations. Exemple : EQUATIONS WHEN (Q1==0) THEN Q1:=1; ELSE Q1:=0; //Quand l’état actuel de Q1 est 1 alors l’état futur de Q1 //est 1 sinon l’état futur de Q1 est 0 6.3 Description par les tables de vérités : On utilise le code TRUTH_TABLE Pour les sorties des registres l’opérateur utilisé sera : « :> ». TRUTH_TABLE ( [En,…,E0, Qn,…,Q0] :> [Qn,…,Q0] ) [0,…,0,0,…,0] :> [1,…,0]; [0,…,0,0,…,1] :> [0,…,1]; [0,…,0,1,…,0] :> [0,…,0]; … … … … [1,………,1,1,…,1] :> [1,…,0]; Exemple : TRUTH_TABLE ([Q1] :>[Q1]) [0]:>[1]; [1]:>[0]; 6.4 Description par les machines d’états : On décrit le diagramme d’états de la fonction de logique séquentielle par des instructions ABEL. Déclarations de la machine et de ses états : Au préalable il faut déclarer le nom de la machine d’état. Sa déclaration dépend du nombre d’états nécessaires. Déclarations des sorties des registres : On déclare le nombre de sorties des registres nécessaires pour réaliser le nombre d’états. Exemple : pour un diagramme d’états possédant 4 états différents, il faudra déclarer 2 sorties de registre. Déclaration de la machine : On affecte le nom de la machine aux sorties des registres. Exemple : CMPT=[Q1, Q0] ; Nom des états de la machine : Pour un soucis de lisibilité du programme on peut affecter les différents états à des noms liés au fonctionnement du système. Exemple : Arret=0 ; Montee=1 ; Descente=3 ; Le langage ABEL en logique combinatoire G BERTHOME – Lycée Mireille GRENET - COMPIEGNE Page 4/4 Ecriture de la machine d’état : On utilise le code « STATE_DIAGRAM ». Les différents états de la machine s’écrivent par le code : « STATE nom de l’état : » Les transitions automatiques se font par le code : « GOTO nom de l’état suivant ». Les transitions conditionnelles se font par le code : « IF (conditions sur les entrées) THEN numéro de l’état futur ; ELSE numéro d’un autre état futur ; Exemple1 : Exemple2 : 7. Bibliographie Ce document a été réalisé à partir des cours suivants : -« Guide ABEL simplifié » : R TRUFFET – Lycée P E Martin 18000 Bourges, -« Langage de description comportementale ABEL » : G COMTE – Lycée Edouard Branly – AMIENS. 1 0 Declarations H pin 1; Q0 pin 19 istype ‘reg’ div=Q0 ; Equations div.CLK=H; State_diagram State 0: goto 1; State 1: goto 0; Q0 Declarations H,E0 pin 1; Q0 pin 19 istype ‘reg’ div=Q0 ; Equations div.CLK=H; State_diagram State 0: if (E0==1) then 1 else 0; State 1: if (E0==1) then 0 else 1; 1 0 Q0 E0 E0=1 E0=1 E0=0 E0=0 uploads/Philosophie/ le-langage-abel-en-logique-sequentielle.pdf

  • 20
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager