You are on page 1of 10

01/09/2011

Les circuits logiques programmables


- Synthèse de TP et approfondissement

MLK - ECST
Les circuits logiques programmables - Synthèse de TP et approfondissement

Les circuits logiques programmables


- Synthèse de TP et approfondissement

Centre d’intérêt : CI4 Structures matérielles associées au traitement de l’information


CO8.sin1 choisir une solution matérielle et logicielle
Objectif et Compétence :
CO9.sin3 choisir une solution dans une démarche de veille technologique
Pré-requis : TP inductif « logique programmable »
Type : Cours / Synthèse de TP

Présentation
Nous avons vu dans le précédent TP qu’il est possible aujourd’hui d’implanté
plusieurs fonction logique dans un même composant : les circuits logiques
programmables. Les circuits logiques programmables contiennent des
fonctions logiques (combinatoires et séquentielles) dont l'utilisateur peut
programmer le schéma d'après un cahier des charges.
Ces composants se distinguent des microprocesseurs et microcontrôleurs par le
fait que leur programmation concerne leur structure interne et non une suite
d'instructions à réaliser. Ceci leur confère une rapidité d’exécution de tâches
bien supérieures à celle des microprocesseurs.
Les circuits programmables remplacent de plus en plus les circuits intégrés (CI)
classiques (à fonction figée) car : FPGA de Xilinx (modèle Spartan
• Un seul circuit peut remplacer plusieurs CI classiques (gain de place et XC3S400) avec 400 000 portes

réalisation matérielle des cartes électroniques plus aisée).


• La fonction réalisée peut être modifiée par une nouvelle programmation sans qu'il soit nécessaire ni de
fabriquer une nouvelle carte ni de remplacer le composant.
• Les composants programmables sont dotés de dispositifs de sécurité destinés à empêcher la copie de la
fonction réalisée.
• La plupart sont directement programmable sur le système (ISP).
Cependant, l'utilisation de ces circuits entraîne des contraintes nouvelles. Il faut prévoir :
• Une phase de programmation du composant (main d'œuvre supplémentaire et immobilisation du matériel
en production).
• Des logiciels pour la création du programme, sa compilation et son transfert avec un programmateur
compatible.
• Des compétences supplémentaires pour utiliser ces matériels.

Les fabricants de composants logiques programmables font de gros efforts pour réduire ces contraintes, en
proposant :
• Des logiciels simples d'emploi.
• Des composants programmables directement sur système (sans programmateur).

Architecture d'un circuit logique programmable


Principe de fonctionnement
Toutes équations logiques à n variables peuvent se mettre sous la forme d'une somme de produits ou de
produits de somme. Tout naturellement les composants programmables disposent d'une structure comportant
ces deux ensembles fonctionnels :
• Un ensemble d'opérateurs ET (matrice ET) recevant les entrées et leurs compléments.
• Un ensemble d'opérateurs OU (matrice OU) qui réalise une somme de produits et fournit les sorties.
Selon la complexité des circuits programmables utilisés une ou l'autre ou chacune des matrices pourra être
programmée.

Cours / Synthèse de TP 1
Les circuits logiques programmables - Synthèse de TP et approfondissement

Structure de base
La figure ci-contre présente un exemple simplifié de
la structure interne de base d'un circuit PAL (matrice
ET programmable). Les matrices programmables
utilisent des "fusibles" placés en série entre les
entrées et les opérateurs logiques. Dans les structures
reprogrammables ces "fusibles" sont remplacés par
des transistors MOS.
La représentation donnée dans l'exemple n'est pas
utilisée en pratique, car elle occupe trop de place et
cela conduirait à des schémas illisibles. Une
représentation simplifiée (mais équivalente) a été
Structure de base d’un PAL
adoptée pour représenter la structure interne des
circuits logiques programmables :

PAL « vierge » PAL « programmé »

Présentation du GAL22V10 (Utilisé en TP)


Présentation
Le GAL 22V10 est implanté dans un boitier DIP 24 broches ou PLCC 28
broches. Il appartient à la technologie E2CMOS PLD (E2 = Electrically Erasable).
Sa structure interne est donnée en annexe à la dernière page. En plus de la
matrice ET programmable facilement identifiable, on remarque que ce circuit
est doté de 12 entrées dont une à double fonction (entrée logique + horloge) et
de 10 sorties. On remarque aussi que ces 10 sorties sont issues de cellules
nommées OLMC (Output Logic Macro Cell). L'analyse de la structure interne
(paragraphe suivant) montre que ces sorties sont ré-injectables comme entrées. Boitier PLCC et DIP

Structure interne d’une OLMC


L'OLMC comporte principalement une bascule D et deux multiplexeurs. C'est une structure programmable.

Structure interne d’une OLMC

Les figures données ci-après présentent les principales configurations possibles de l'OLMC.

2
Les circuits logiques programmables - Synthèse de TP et approfondissement

1. Combinatorial Mode (Mode Combinatoire)


Dans ce mode, les sorties peuvent être réinjectées dans la matrice ET. Ces broches peuvent aussi être utilisées
directement comme des entrées.

2. Registred Mode (Bascule D utilisée)

Programmation du GAL22V10
Pratiquement, on ne programme jamais directement ni les OLMC ni les matrices. On utilise pour cela un
logiciel (ISIS de Proteus avec compilateur de code HDL comme ISPLever) qui connait la structure interne du
composant et qui y réalise l'implantation (fitting) du problème qu'on lui soumet. Néanmoins, la connaissance
du composant permet d'évaluer avec efficacité la faisabilité d'un projet.
L'analyse de la structure interne du GAL22V10 met en évidence certaines contraintes d'utilisation et donc de
programmation de certaines broches (en mode registered) :
• Les bascules ont une horloge commune (synchrone), broche 1.
• Les bascules sont dotées d'un RESET (mise à 0 des sorties Q) asynchrone et d'un PRESET (mise à 1)
synchrone. La programmation du RESET est obligatoire.
La programmation d'un circuit logique peut s'effectuer à partir d’équations ou d’une table de vérité dans un
fichier de description HDL (Hardware Description Language) ou à partir du schéma à implanter.

1. Étapes de la programmation
• Création d’un projet Proteus et saisie du schéma de simulation sous ISIS,
• Saisi du schéma à implanter ou création et compilation du fichier HDL,
• Association du fichier JEDEC obtenu au PLD du schéma,
• Simulation interactive ou avancée (chronogrammes) du système,
• Programmation du PLD GAL22V10 à l’aide d’un programmateur,
• Validation du fonctionnement sur la carte électronique.

Programmateur pour les


circuits non ISP

Cours / Synthèse de TP 3
Les circuits logiques programmables - Synthèse de TP et approfondissement

Conception à l’aide de circuit logique programmable


Les circuits logiques programmables réalisent la fonction TRAITER de la chaîne d'information :

Grandeur Chaîne d’information


physique
à acquérir

Acquérir Traiter Communiquer

Consignes Entrées logiques Sorties logiques

Chaîne d’énergie
Énergie
d’entrée
Alimenter Moduler Convertir Transmettre Action

Le processus de conception est décrit par l'organigramme suivant :


_______________________________________________________
Cahier des _______________________________________________________
charges
______________________________________________________

_______________________________________________________
_______________________________________________________
Choix du
_______________________________________________________
composant
_______________________________________________________

_______________________________________________________
Ecriture des
_______________________________________________________
modules de
description _______________________________________________________

_______________________________________________________
Création du _______________________________________________________
fichier de _______________________________________________________
programmation
_______________________________________________________

_______________________________________________________
Simulation _______________________________________________________
logique de _______________________________________________________
vérification
_______________________________________________________

_______________________________________________________
Programmation _______________________________________________________
du composant
_______________________________________________________

4
Les circuits logiques programmables - Synthèse de TP et approfondissement

Langage de description HDL


La programmation d'un circuit logique programmable peut s'effectuer soit :
• À partir du schéma à implanter.
• À partir des équations ou de la table de vérité dans un fichier HDL.

La représentation schématique directe peut sembler séduisante, mais elle impose d'effectuer préalablement
toutes les opérations d'une étude de logique combinatoire (table de vérité, équations, logigramme). Elle est
donc surtout utilisée pour faire évoluer rapidement un produit existant.
La description par fichier HDL est réalisée à partir d'un simple éditeur de texte mais elle nécessite la
connaissance de ce langage. On trouvera dans ce chapitre les éléments suffisants pour pouvoir écrire un fichier
en langage ABEL-HDL mais il en existe d’autres : VERILOG, VHDL, CUPL, etc.

Structure d'un fichier ABEL-HDL


Un fichier ABEL-HDL est constitué de cinq parties. Chacune de ces zones débute par un mot clef spécifique du
langage ABEL-HDL.
ATTENTION ! Comme la plupart des langages de programmation, le langage ABEL-HDL est en anglais. Il
ne faut donc pas utiliser de caractère accentué.
On donne ci-dessous l'exemple d'un fichier ABEL-HDL nommé DSPPROG.abl :

MODULE DSPPROG
TITLE 'alarme de phares' _______________________________________________
DECLARATIONS
" Circuit utilise
DSPPROG device 'P22V10';
" Variables d'entree _______________________________________________
C, L, P pin 2, 3, 4;
" Variables de sortie
S1, S2 pin 23, 22 istype 'com';
EQUATIONS
S1 = !C & L & P; _______________________________________________
S2 = P;
TEST_VECTORS
([C, L, P] -> [S1, S2]);
_______________________________________________
[0, 0, 0] -> [.X.,.X.];
[0, 1, 1] -> [.X.,.X.];
END DSPPROG _______________________________________________

Sections d'entête et de fin


Elles encadrent le document ABEL-HDL. L'entête commence par le mot clef MODULE suivi du nom du
module (en général le même nom que le fichier ABEL-HDL). Elle comporte également le mot TITLE suivi
d'un texte entre apostrophes qui permet de décrire le dispositif réalisé.
La section de fin est annoncée par le mot END et doit être suivie du nom du module.

Cours / Synthèse de TP 5
Les circuits logiques programmables - Synthèse de TP et approfondissement

Section des déclarations


Elle commence par le mot clef DECLARATIONS. Dans cette section, on indiquera :
• L'indication du composant utilisé,
• L’identification des broches utilisées (noms et numéros) ainsi que la spécification du type des sorties.

La directive device indique le composant à


Exemples : _____________________________ programmer et nomme le futur fichier JEDEC.

La directive pin permet d'affecter un numéro de broche à une


Exemples : variable (entrée ou sortie).
Le mot istype, suivi d'un argument définit le type de la variable de
______________________ sortie :
• Istype'com' indique que la sortie est de type combinatoire.
______________________
• Istype'reg_d' indique que la sortie est de type séquentiel
(utilisation de la bascule D).

On peut aussi trouver dans cette section les déclarations de groupement de variables (bus).

_______________________________________________________
N = [E3, E2, E1, E0] ;
_______________________________________________________
S = [Q7 .. Q0] ; _______________________________________________________
_______________________________________________________

Le langage ABEL-HDL permettra de traiter ces variables individuellement ou le nombre résultant de leur
association. Ceci permettra de simplifier considérablement l'écriture de certaines équations.

Section de description
C'est ici qu'est décrite la fonction à réaliser. La description peut se faire en utilisant plusieurs outils de
représentation. Chaque outil est annoncé par un mot clef spécifique :
• EQUATIONS, pour une description par équations logiques,
• TRUTH_TABLE, pour une description par table de vérité,
• STATE_DIAGRAM, pour une description par diagramme d'état (séquentielle).

1. Description par équations logiques


Le fonctionnement du dispositif à implanter est décrit sous forme d'équations liant les sorties aux entrées.
Le langage ABEL-HDL permet d'écrire les opérations classiques de la logique combinatoire mais il autorise
aussi l'utilisation des opérations arithmétiques et relationnelles.
Les opérateurs logiques
Opérateur logique Symbolisation ABEL Équations logiques Écriture en ABEL

NON ! �
𝑺=𝑨
𝑺=𝑨∙𝑩
ET &
𝑺= 𝑨+𝑩
OU # 𝑺 = �������
𝑨∙𝑩
𝑺 = ��������
𝑨+𝑩
OU-EX $
𝑺=𝑨⊕𝑩
NON-OU-EX !$
𝑺=𝑨⊕𝑩
Leur notation diffère de celle employée habituellement parce qu'il faut pouvoir représenter différemment les
opérateurs logiques et les opérateurs arithmétiques.

6
Les circuits logiques programmables - Synthèse de TP et approfondissement

Les opérateurs arithmétiques


Ils permettent la mise en œuvre simple des fonctions de calcul dans les opérations logiques. Le langage ABEL-
HDL utilise leur représentation conventionnelle : + - * /

Les opérateurs relationnels


Ils effectuent une comparaison entre les deux arguments de l'opération.
Le résultat est donc vrai (1) ou faux (0).
Test Symbolisation ABEL Expressions Écriture en ABEL
Égal ==
S prend la valeur 1 si A est égal à B
Différent !=
Inférieur <
S prend la valeur 1 si A est inférieur à B
Inférieur ou égal <=
Supérieur >
S prend la valeur 0 si A est supérieur à B
Supérieur ou
>=
égal
La structure conditionnelle : WHEN-THEN-ELSE (QUAND-ALORS-SINON)
Cette structure alternative permet de décrire une
Exemples de structure complète :
fonction logique dans la description par équation. Le
résultat d'un test conditionne l'équation réalisée. La
__________________________________
syntaxe utilisée présente deux formes (complète ou
réduite) : __________________________________
• WHEN (condition) THEN équation ; ELSE équation ;
__________________________________
• WHEN (condition) THEN équation ;

2. Description par table de vérité


La description débute par le mot clef TRUTH_TABLE

TRUTH_TABLE
Explications : ___________________________________________________
([E1, E2] -> [Q1, Q2]) ;
[0, 0] -> [0, 0] ; ________________________________________________________________
[0, 1] -> [0, 1] ; ________________________________________________________________
[1, 0] -> [0, 1] ;
________________________________________________________________
[1, 1] -> [1, 1] ;
_______________________________________________________________

3. Description par diagramme d’état


La description débute par le mot clef STATE_DIAGRAM. Cette partie sera développée ultérieurement.

Section de test
Elle est annoncée par le mot TEST_VECTORS. Elle va permettre de tester la TEST_VECTORS
validité des modules de description de manière combinatoire (ou séquentielle) en
([C, L, P] -> [S1, S2]) ;
simulant le fonctionnement du circuit programmé. Cette simulation sera réalisée à
partir du logiciel de programmation des composants. [0, 0, 0] -> [.X.,.X.] ;
Dans cet exemple, le test porte sur deux combinaisons des variables d'entrée C, L [0, 1, 1] -> [.X.,.X.] ;
et P. Pour ces combinaisons, on demande au logiciel d'établir l'état des sorties S1 et
S2 sous forme de chronogrammes (par l'argument .X.). TEST_VECTORS

Il est possible de donner directement dans le tableau les états attendus des ([C, L, P] -> [S1, S2]) ;
variables de sortie. Ceux-ci seront comparés aux résultats fournis par la simulation [0, 0, 0] -> [0, 0] ;
du fonctionnement du composant et le logiciel informera de la réussite ou de
[0, 1, 1] -> [1, 1] ;
l'échec des tests.

Cours / Synthèse de TP 7
Les circuits logiques programmables - Synthèse de TP et approfondissement

Applications
Dispositif de sécurité sur une graveuse 3D
On veut implanter dans un EPLD 22V10 le dispositif de sécurité
d'une machine graveuse 3D (étudié précédemment). Le
dispositif est doté de quatre variables d'entrée :

• P (pour le positionnement de la
pièce), MODULE ______________________________________________
• E (pour l'écran protecteur), TITLE ________________________________________________
• B (pour le bouton poussoir de mise DECLARATIONS
en marche) _____________________________________________________
• K (pour le contact à verrouillage par
clé). _____________________________________________________
_____________________________________________________
Le moteur sera activé quand M = 1.
EQUATIONS
L'analyse du fonctionnement a permis _____________________________________________________
d'établir l'équation de la sortie : TEST_VECTORS
M = P.B.(E + K) ([P, E, B, K] -> M);
On donne le schéma structurel du @const n=0;
montage à réaliser. Seules les @repeat 16 {n -> .X.; @const n = n+1;}
connexions nécessaires à l'écriture du END _________________________________________________
fichier ABEL-HDL sont représentées.
• Compléter ci-contre le fichier ABEL (SECURIT.ABL) permettant d'obtenir le fonctionnement souhaité.

Comparateur logique 4 bits


On veut implanter dans un EPLD 22V10 un
comparateur logique quatre bits. Il a pour
fonction de comparer deux mots binaires A
et B codés sur 4 bits (A3 à A0) et de (B3 à
B0). Le résultat de la comparaison est
disponible sur 3 sorties :
A_SUP_B à '1' lorsque A est plus grand que B B3, B2, B1, B0 pin 18, 19, 20, 6 ; " Variables d'entrée
A_EQU_B à '1' lorsque A est égal que B
A_INF_B à '1' lorsque A est plus petit que B
• Compléter le fichier ABEL
(COMPARAT.ABL) ainsi que le schéma
permettant d'obtenir le fonctionnement
présenté.
_

TEST_VECTORS
([A, B ] -> [A_SUP_B, A_EQU_B, A_INF_B]);
[ 5, 5 ] -> [0, 1, 0];
[ 9, 12 ] -> [0, 0, 1];
[ 7, 6 ] -> [1, 0, 0];

8
Les circuits logiques programmables - Synthèse de TP et approfondissement

Cours / Synthèse de TP 9

You might also like