Title: Aucun%20titre%20de%20diapositive
1Initiation à la logique programmable
2Typologie des circuits logiques
Un système électronique numérique pourra être
implémenté avec des circuits logiques de divers
types
standards
configurables
séquentiables
à mémoire
spécialisés
(System On Chip)
3Les composants programmables
Typologie des circuits logiques
à configuration interne
à configuration interne
figée
programmable
(PLDs, CPLDs, FPGA,...)
(microprocesseurs)
Langages de
Langages de
programmation
Méthodes
description
Assembleur,
Outils de
Abel, AHDL
langage haut niveau
conception
langage haut niveau
(C, java...)
(VHDL,Verilog)
Séquence
Fichier de
d'instructions
configuration
4Intérêt des PLDs
PLDs (Programmable Logic Devices) acronyme
générique de tout ce qui est circuit logique
programmable (SPLDs, CPLDs, FPGA).
Lintérêt que présentent les circuits
programmables par rapport aux circuits à
structure figée tient essentiellement à des
impératifs technico-économiques, résumés en
quelques mots clés
Intégration
Temps réel
Développement
Confidentialité
5Intégration de systèmes par les PLDs
Intérêt des PLDs
x10 portes
Moins de boîtiers
Moins de cartes
x100 portes
Cartes plus petites
Consommation réduite
1000 à 10000 portes
1000 à x1000 000 portes
6Intégration fonctionnelle
Intérêt des PLDs
Il est courant dimplémenter avec le même circuit
plusieurs fonctions distinctes
Contrôleur I2C
Contrôleur VGA
Port série
Contrôleur caméra
Préprocesseur pixels
Contrôleur RAM
A la limite on crée un SOC Système On Chip
7Temps réel parallélisme
Intérêt des PLDs
Les unités fonctionnelles dun PLD peuvent
réagir simultanément et sans délai au même signal
Unité 1
Unité 2
Unité 3
8Temps réel pipeline
Intérêt des PLDs
Les unités fonctionnelles dun PLD peuvent
travailler simultanément de façon concurrentes
Unité 1
Unité 2
Unité 3
Unité 4
Unité 5
Unité 6
Unité 7
Unité 8
Unité 9
9Développement aisé
Intérêt des PLDs
Existence doutils de développement
totalement dédiés à la conception de systèmes sur
PLDs.
Possibilité de portage de projets déjà
implémentés sur dautres cibles.
Possibilité dutiliser des noyaux de
propriété intellectuelle (IP) pour des fonctions
standards.
Le marché offre de plus en plus de PLDs
intégrant des fonctions complexes jusqualors
implémentées par des circuits spécialisés (RAM,
multiplieurs)
...
ou libres
10Développement flexible
Intérêt des PLDs
Un modification même majeure des
spécifications techniques nentraîne pas
nécessairement une modification de
lenvironnement externe des PLDs (circuit imprimé
en particulier)
Les PLDs actuels sont reconfigurables
indéfiniment soit in situ soit par leur mémoire
(PROM ou FLASH) de configuration.
...
11Coûts
Intérêt des PLDs
Tous les arguments cités en faveur des PLDs ont
une incidence sur les côuts
Intégration réduction des coûts
d industrialisation (surface PCB, manipulations)
Développement réduction des délais de
développement et de coût des avenants de
modifications
Portabilité des projets les investissements
intellectuels sont récupérables pour dautres
projets ou même commercialisables sous forme
d IP.
12Confidentialité
Intérêt des PLDs
Sauf recopie intégrale dun système intégrant des
PLDs il est difficile den refaire la synthèse
logique au seul examen des circuits et de leur
fonctionnement...
Les PLDs directement configurables disposent en
général de la possibilité dêtre programmés sans
possibilité de relecture de leur configuration
(bit de sécurité).
13Microcontrôleur ou PLDs ?
Intérêt des PLDs
La réalisation dun système logique séquentiel
peut amener à faire un choix entre
microcontrôleur et PLD. Doù la nécessité den
connaître quelques différences fondamentales
Un PLD est capable de réagir en temps réel à un
changement détat de ses entrées.
Un PLD est capable dimplémenter plusieurs
processus fonctionnant en parallèle
Un PLD offre beaucoup plus de ports E/S quun
microcontrôleur.
14Limites des PLDs
Intérêt des PLDs
Tout en présentant dindéniables qualités, les
PLDs présentent également des limites
Rapidité les fréquences d horloge sont
limitées au mieux à quelques centaines de MHz en
raison des délais de propagation induits par le
routage.
PLDs
Coût si le coût de développement est en général
avantageux, le coût en quantité peut savérer
plus lourd que celui dune solution à base
dASICs.
Asics
15Les PLDS Approche
Circuit programmable circuit capable de
recevoir une configuration programmée de ses
ressources intégrées.
La majorité des circuits programmables du marché
sont des circuits logiques (peu danalogiques)
Principaux constructeurs du marché
Actel
Altera
DG France ancien ESEO
AMD
Philips
Vantis
Xilinx
DG France ancien ESEO
16Les PLDS Un ancêtre, le FPLA (1982)
Entrées
fusibles titanium-tungstène
82S100 (Signetics) 16 entrées (e1..e16), 8
sorties (S1..S8), 48 termes produits (P1..P48).
17FPLA analyse de la configuration
Un ancêtre le FPLA
Compte tenu des points de configuration activés
(ou plutôt coupés), par exemple
Le terme produit P1 est issu dun ET câblé tel
que
La sortie S1 est issue dun OU câblé tel que
S1 P1 P3
Ici P3 0 il reste
18FPLA représentation symbolique
Un ancêtre le FPLA
Pour schématiser lorganisation et la
configuration dun PLD, on utilise en général la
représentation suivante
e2
e3
e1
P1
P2
P3
S1
S2
19FPLA synthèse
Un ancêtre le FPLA
Au final, lorganisation dun FPLA sappuie sur
deux matrices programmables
e2
e3
e1
Matrice de OU
P1
P2
P3
Matrice de ET
S1
S2
La matrice de ET fournit n termes produits à la
matrice de OU.
20Les PLDS actuels désignation
Les circuits logiques programmables du marché
sont classés en gros selon 3 grandes familles
SPLDs (Simple Programmable Logic devices)
Les PLDS actuels désignation
CPLDs (Complex Programmable Logic Devices)
FPGAs (Field Programmable Gates Array)
Les critères de cette classification seront
présentés lors de la synthèse finale de cet
exposé.
21Les SPLDs
Faible volume de ressource quelques centaines
de portes
Pas de chemin dinterconnexion interne
programmable (pas de routage nécessaire
entre les E/S et les ressources du PLD)
Unique réseau programmable de ET commun à
un certain nombre de structures répétitives.
Exemples PAL, GAL, EPLD
22Un SPLD le PAL
Les SPLDs
(Programmable Array Logic)
Exemple PAL16L8
(représentation partielle)
Le réseau programmable est ici constitué dune
matrice de 32 colonnes x 64 lignes. Les colonnes
donnent accès à toutes les entrées (directes et
inverses) .
23PAL16L8 la cellule
Les SPLDs
Les lignes sont regroupées ici par 10 pour
former un motif répétitif, la cellule logique.
Chaque cellule peut ici
Faire la somme de 7 termes produits
Configurer la borne I/O en entrée ou en sortie
24PAL16L8 l organisation
Les SPLDs
6 Entrées externes ou rétroactions
10 Entrées externes
8 cellules logiques chevauchent un réseau de 32
colonnes
25Exercice Contrôleur dinterruption
Les SPLDs
Le rôle du contrôleur d interruption est triple
Signaler au microprocesseur quune IT est
demandée (/IRQ 0)
Indiquer le numéro dIT à servir (codée sur 3
bits A20)
Gérer la priorité des demandes IT0 aura la plus
grande priorité
8 entrées 4 sorties a priori un PAL16L8 fera
laffaire
26Contrôleur dIT Table des états
Les SPLDs
S1 X X X X X X X 1 0 0 0 0
S2 X X X X X X 1 0 0 0 0 1 S3 X
X X X X 1 0 0 0 0 1 0 S4 X X X X
1 0 0 0 0 0 1 1 S5 X X X 1 0 0
0 0 0 1 0 0 S6 X X 1 0 0 0 0 0
0 1 0 1 S7 X 1 0 0 0 0 0 0 0 1
1 0 S8 1 0 0 0 0 0 0 0 0 1 1 1
S9 0 0 0 0 0 0 0 0 1 X X X
Chaque état du système est désigné par un label
S1 à S9. Ces labels servent par la suite à
établir les équations des sorties sans utiliser
directement les termes canoniques.
27Contrôleur dIT Equations sources
Les SPLDs
Equations des états (syntaxe ABEL ou AHDL)
S1 I0 S2 I1 !I0 S3 I2 !I1 !I0 S4
I3 !I2 !I1 !I0 S5 I4 !I3 !I2 !I1
!I0 S6 I5 !I4 !I3 !I2 !I1 !I0 S7
I6 !I5 !I4 !I3 !I2 !I1 !I0 S8 I7
!I6 !I5 !I4 !I3 !I2 !I1 !I0 S9 !I7
!I6 !I5 !I4 !I3 !I2 !I1 !I0
Equations des sorties
Attention les buffers du PAL16L8 sont
inverseurs. Il faut alors exprimer les inverses
des sorties désirées.
!IRQ S9
!A0 S1 S3 S5 S7
!A1 S1 S2 S5 S6
!A2 S1 S2 S3 S4
28Contrôleur dIT configuration du PAL
Les SPLDs
I7
/IRQ
I6
A0
I5
A1
I4
A2
I7 I6 I5 I4 I3 I2 I1 I0
29Exercice décodeur dadresse
Les SPLDs
Le PAL16L8 et ses dérivés conviennent à la
réalisation de petites fonctions combinatoires
multiplexeurs, décodeurs, encodeurs...
Exemple on veut réaliser un décodeur
d adresses pour 3 plages définies sur 16 bits
comme suit plage0 ADR lt 04000h plage1
04000h lt ADR lt 07C00h plage2 07C00h gt ADR
30Décodeur analyse
Les SPLDs
En fait les 8 bits de poids faible de ladresse
ninterviennent pas dans ce décodage. Une table
de vérité permet daffiner danalyse.
Les 6 bits de poids fort suffisent pour ce
décodeur
31Décodeur équations sources
Les SPLDs
A15..10
CS0
décodeur
CS1
CS2
module DECODEUR Décodeur décrit en langage ABEL
(DATAIO) declarations DECODEUR device
'P16L8' A15,A14,A13,A12,A11, A10 PIN
02,03,04,05,06,07 CS0,CS1,CS2 PIN 19,18,17
ADR A15,A14,A13,A12,A11,A10,X,X,X,X,X,X,X
,X,X,X equations !CS0 (ADR lt
h4000) !CS1 (ADR gt h4000) (ADR lt
h7C00) !CS2 (ADR gt h7C00) end DECODEUR
32Décodeur équations réduites
Les SPLDs
La compilation du fichier source précédent donne
les équations réduites, cest-à-dire ramenées en
sommes de termes canoniques utilisant les seuls
signaux nécessaires.
!CS0 !A15 !A14 !CS1 !A15 A14 !A10
!A15 A14 !A11 !A15 A14
!A12 !A15 A14 !A13) !CS2
A14 A13 A12 A11 A10 A15
33Décodeur fichier de configuration
Les SPLDs
L assemblage des équations réduites produit le
fichier de configuration (fichier fusibles) du
réseau programmable de la cible désignée.
NOTE Table of pin names and numbers NOTE PINS
A152 A143 A134 A125 A116 A107 NOTE PINS
CS019 CS118 CS217 L0000 1111111111111111111111
1111111111 L0032 10111011111111111111111111111111
L0256 11111111111111111111111111111111 L0288
10110111111111111111101111111111 L0320
10110111111111111011111111111111 L0352
10110111111110111111111111111111 L0384
10110111101111111111111111111111 L0512
11111111111111111111111111111111 L0544
11110111011101110111011111111111 L0576
01111111111111111111111111111111
Ce fichier ne désigne que les lignes de la
matrice intervenant dans le projet les 1
correspondent aux fusibles à couper.
34Décodeur programmation du PAL
Les SPLDs
Un programmateur spécialisé fait fondre les
fusibles du PAL selon les directives du
fichiers de fusibles ( fusible intact).
CS0
CS1
CS2
35Programmation d un SPLD synthèse
Les SPLDs
Cahier des charges
Analyse du problème
Résolution du problème par mise en équations ou
algorithmes
Choix du PLD en fonction du nombre d E/S
Saisie des équations ou algorithme
Compilation -gt équations réduites
Génération dun fichier de configuration
36Un PAL pour le séquentiel PAL16R8
Les SPLDs
Le réseau programmable est identique à celui du
PAL16L8. Larchitecture finale de la
cellule intègre une bascule D, dont lhorloge est
commune à toutes les cellules.
37Un PAL plus flexible PALCE16V8
Les SPLDs
Les PALs présentés en introduction aux SPLDs à
titre d exemple ne sont pratiquement plus
disponibles. Ils sont remplacés par un PAL plus
flexible, plus performant, le PALCE16V8 (CE
CMOS Erasable V versatile)
38PALCE16V8 la cellule
Les SPLDs
Les 8 cellules logiques de ce PAL sont
configurables en - sortie combinatoire -
sortie séquentielle(registred) - en entrée grâce
à 4 multiplexeurs programmables.
39PALCE16V8 le XOR programmable
Les SPLDs
La sortie traverse un XOR programmable. Ce
dispositif permet dinverser la somme fournie par
le OU pour faire face aux cas où le nombre de
termes produits en entrée serait supérieur à 8,
ceci en utilisant les propriétés du théorème de
Morgan.
Ce système se retrouve pratiquement dans toutes
les cellules des PLDs.
40Rôle du XOR programmable
Les SPLDs
Exemple soit l équation réduite
E8 !init pbd !x !y !test E8 !init
pbc x y !test E8 !init pba x !y
!test E8 !init pba !x y !test E8
!init pbd !x !y X7 !init pbc x y
E7 !init pba x !y E7 !init pba !x
y E7 !init pbd !x !y E7 !init test
E7
Une seule cellule logique dun PALCE16V8 sera
incapable dimplémenter directement cette somme
il y a 9 termes produits et le OU de la
cellule ne comporte que 8 entrées.
41Rôle du XOR programmable (2)
Les SPLDs
Solution au problème si le même terme E8 est
exprimé par son inverse, le résultat ne
comportera plus ici que 7 termes produits
!E8 init !pbd !x !y !test !pbc x y
!test !pba x !y !test !pba !x y
!test !E7 !E8 !E7 !test
Le OU dune cellule peut implémenter cette somme
et le résultat doit par la suite être inversé
grâce au XOR programmable.
Cette opération d inversion est en général
laissée au compilateur qui choisit lexpression
directe ou inversée de la somme selon les cas,
quand cest possible.
42Saturation de la cellule problème
Les SPLDs
La saturation dune cellule par excès de termes
produits de la somme à implémenter, non résolue
par linversion, est un problème récurrent.
La solution consiste en général à décomposer la
somme autant dexpressions que nécessaire pour
permettre leur implémentation chacun par une
cellule distincte.
43Saturation de la cellule exemple
Les SPLDs
/Y
!Y P1 P2 P3 P4 P5 P6 P7 P8 P9
P10
!aux P1 P2 P3 P4 P5 P6 P7 P8
!Y aux P9 P10
44Message dinadéquation (1)
Les SPLDs
En général ce message correspond à
une combinatoire trop importante, représentée
par des équations réduites comportant trop
de termes produits.
45Message dinadéquation (2)
Les SPLDs
Le projet demande plus de cellules logiques que
la cible choisie nen possède.
46Une variante aux PALs le GAL
Les SPLDs
Generic Array Logic
Autre solution au problème précédent utiliser
des circuits dont les cellules logiques
comportent des OU possédant un nombre supérieur
dentrées, tel le GAL22V10 de VANTIS
(représentation partielle à 50).
Réseau 130 x 44
47GAL22V10 la cellule
Les SPLDs
La cellule logique donne à quelques détails près
les mêmes possibilités de configuration quun
PALCE grâce à 2 multiplexeurs programmables.
8 à 16 entrées
48Exercice bascule toggle
Les SPLDs
Q
D
Clk
Q
T
CS
Configurer la matrice de cette cellule pour avoir
une bascule T (toggle) avec clear synchrone
49Les CPLDs
Volume moyen de ressources quelques milliers
de portes.
Cellules logiques organisées en plusieurs blocs
logiques identiques ayant chacun leur réseau
programmable indépendant et non relié directement
aux pins E/S.
Chaque bloc logique est équivalent à un SPLD sans
pins.
50Les CPLDs (2)
Les CPLDs
Chemin dinterconnexion interne programmable par
une matrice dinterconnexion commune.
( routage nécessaire entre les E/S et les
blocs du CPLD)
Pour une même puce, choix du boîtier en fonction
des pins E/S nécessaires.
Exemple famille EPM7000 de Altera
51Famille EPM7000 (Altera) organisation
Les CPLDs
LAB logic Array Block PIA Programmable
Interconnection Array
52Famille EPM7000 (Altera) la cellule
Les CPLDs
En plus dune structure finale classique, la
cellule possède accède à un réseau local (16
colonnes) et possède deux dispositifs permettant
limplémentation des grosses équations
combinatoires, les expanders.
53Famille EPM7000 (Altera) les expanders
Les CPLDs
Expansion partagée par le bloc logique
Une ligne par cellule peut servir à fournir une
colonne supplémentaire au réseau local du bloc
logique concerné.
54Famille EPM7000 (Altera) les expanders (2)
Les CPLDs
Expansion parallèle
Chaque cellule peut fournir un terme
supplémentaire au OU de la cellule voisine.
55Famille EPM7000S (Altera) les blocs E/S
Les CPLDs
I/O Block
Compatible 5Vet 3.3V
(dépendant de VCCINT et VCCIO)
Les buffers de sorties sont à triple contrôle.
56Famille EPM7000 (Altera) les puces
Les CPLDs
EPM7xxxS programmable in situ
57Famille EPM7000 (Altera) rapidité
Les CPLDs
-5 correspond à un temps de propagation tpd 5ns
58Famille EPM7000 (Altera) les boîtiers
Les CPLDs
59Les FPGAs
(Field Programmable Gate Array)
Volume élevé de ressources de quelques
milliers à à quelques millions de portes
Cellules logiques de petite taille, jusquà
plusieurs dizaines de milliers.
(pas de réseau logique programmable)
Cellules organisées en une unique matrice Ou en
matrice de petits blocs de cellules (LAB logic
arrays blocks)
60Les FPGAs (2)
Les FPGAs
Combinatoire implémentable par des L.U.T. (Look
Up Table) mémoire
Sortie
Entrées
n
1
donnée
LUT
adresse
Lignes et colonnes dinterconnexion programmables
entre les cellules et les blocs E/S
61Les FPGAs (3)
Les FPGAs
(Field Programmable Gate Array)
Ressources RAM embarquées
Sur certaines familles - Multiplieurs câblés
- noyau microprocesseur
Configuration interne par une SRAM
Contrairement aux CPLDs et SPLDs dont
la configuration est basée sur une EEPROM, celle
dun FPGA est VOLATILE.
62FPGAs structure générale
Les FPGAs
NB La matrice va de 10x10 à 100x100 et plus !
63FPGAs structure détaillée
Les FPGAs
64FPGAs RAM embarquée
Les FPGAs
Position centrale minimisation desTpd
65FPGAs structure fonctionnelle
Les FPGAs
Un FPGA possède en fait 3 couches structurelles
SRAM de configuration
Interconnexions configurables
Ressources (Cellules, RAM)
Chaque bit de la SRAM est vu soit par un nœud des
interconnexions, soit par un multiplexeur ou une
LUT des ressources.
66FPGA Exemple 1 XC4000 (Xilinx)
Les FPGAs
Portes de 1600 à 85000
Cellules de 64 (8x8) à 3136 (56x56)
RAM de 2 kbits à 100 kbits
Fréquence système jusquà 80 MHz
67XC4000 la cellule
Les FPGAs
CLB Configurable Logic Block
(version combinatoire 3 générateurs de
fonctions F,G,H)
68XC4000 la mémoire répartie
Les FPGAs
(version mémoire organisation 16x2 bits)
69XC4000 les interconnexions
Les FPGAs
PSM Programmable Switches Matrice
70XC4000 les interconnexions, détail
Les FPGAs
71XC4000 Bloc E/S
Les FPGAs
72XC4000 exemple de routage
Les FPGAs
73XC4000 la famille
Les FPGAs
20 à 30 de la RAM est utilisée dans un projet.
74FPGA Exemple 2 ACEX (Altera)
Les FPGAs
organisation
75FPGA Exemple 2 ACEX (Altera)
Les FPGAs
La cellule logique
76FPGA Exemple 2 ACEX (Altera)
Les FPGAs
Lélément Logique
77FPGA Exemple 2 ACEX (Altera)
Les FPGAs
3 à 12 EAB (Embedded Array Block)
1 EAB 12 288 bits
Les EAB
78FPGA Exemple 3 Virtex 2 pro (Xilinx)
Les FPGAs
79 Virtex 2 pro organisation générale
Les FPGAs
organisation
80Virtex 2 pro la cellule logique
Les FPGAs
La cellule logique
81 Virtex 2 pro les slices
Les FPGAs
La cellule logique (slices)
82 Virtex 2 pro détail du slice
Les FPGAs
Le slice
83CPLD ou FPGA ?
CPLD vs FPFGA
CPLD et FPGA, pareil ?
NON ! Tous les deux sont des circuits
logiques programmables, fabriqués par les mêmes
constructeurs. Mais ils sont différents
Les FPGAs ont des cellules logiques de petite
taille avec une ou deux bascules et en
possèdent plusieurs milliers.
Les CPLDs ont des cellules logiques de grande
taille avec une bascule et nen possèdent
que quelques centaines.
84CPLD ou FPGA configuration
CPLD vs FPFGA
La configuration des FPGAs est basée sur une
SRAM, qui a besoin dêtre rechargée à chaque mise
sous tension.
La configuration des CPLDs est basée sur une
EEPROM, dont le contenu enregistré depuis la
dernière configuration persiste indéfiniment.
85CPLD ou FPGA routage
CPLD vs FPFGA
Les FPGAs contiennent de larges
ressources dinterconnexions entre les cellules
logiques et les blocs d entrées sorties.
La capacité de routage des CPLDs est limitée à
peu de choses, rendant vite difficile
lintégration de projets complexes.
86CPLD ou FPGA rapidité
CPLD vs FPFGA
À fonction logique égale un CPLD pourra être
plus rapide quun FPGA car sa capacité à
réaliser une logique combinatoire en un seul
étage est meilleure que celle dun FPGA.
Une cellule logique de CPLD peut intégrer une
grosse équation logique grâce à son réseau
programmable, ce que possèdent pas les cellules
de FPGA.
87CPLD ou FPGA taille projet
CPLD vs FPFGA
Petit projet SPLD ou CPLD
Gros projet FPGA
88Synthèse les SPLDs et sCPLD
CPLD vs FPFGA
Pins reliées au réseau et aux cellules
SPLD
Pins et cellules à relier via des réseaux
programmables dinterconnexion
CPLD
Configuration non volatile
Cellules associées à un réseau commun de ET
89CPLD vs FPFGA
Synthèse les SPLDs et sCPLD
Nombreuses petites cellules organisées
matriciellement sans réseau de ET
FPGA
Configuration sur SRAM volatile
90Modes de programmation des PLDs
Une fois le fichier de configuration disponible,
la programmation du PLD peut correspondre à
plusieurs cas de figure
sur programmateur
sur programmateur ou in situ
in situ (SRAM ou FLASH)
91SPLD DIP sur programmateur
Programmation des PLDs
92SPLD CMS sur programmateur
Programmation des PLDs
93Programmation des CPLDs
Programmation des PLDs
Utilisation dun programmateur
Démarche pratiquement obsolète
In Situ (Boîtiers ISP In System Programmable)
Le circuit possède alors un interface approprié.
Linterface le plus connu est celui du JTAG avec
ses 4 signaux TCK, TMS, TDI et TDO. Cet
interface permet décrire (et de
lire) directement lEEPROM de configuration intern
e du CPLD.
94Programmation in situ
Programmation des PLDs
(ISP)
Nécessité de prévoir sur le PCB le connecteur
destiné au câble de configuration.
95Principe de la programmation EPROM
Programmation des PLDs
Principe du point de contact programmable
transistor N-MOS à grille flottante à
injection de charge.
96Cellule EPROM structure
Programmation des PLDs
Par défaut, cette structure est conductrice la
résistance entre drain et source du transistor
N-MOS est faible.
La programmation consistera à rendre non
conducteurs (mise off ) les points appropriés
du PLD.
97Cellule EPROM mise off
Programmation des PLDs
En portant la grille à un potentiel suffisamment
élevé, le champ créé aspire des électrons
qui se font piéger dans la grille flottante.
98Cellule EPROM effacement
Programmation des PLDs
Vg 0
Vss gt0
Il suffit par exemple dinverser le potentiel Vgs
pour vider la grille flottante de ses
électrons.
99Programmation des FPGA
Programmation des PLDs
In Situ
La SRAM interne du FPGA est écrite (ou lue) via
linterface JTAG du circuit.
Intérêt opération relativement rapide
Inconvénient configuration volatile.
100Programmation des FPGAs
Programmation des PLDs
Par PROM ou EEPROM de configuration série
La SRAM interne du FPGA reçoit à la mise sous
tension le contenu dune mémoire ROM externe via
un interface spécialisé (qui peut être distinct
du JTAG).
Intérêt opération très rapide et automatique à
chaque mise sous tension.
Inconvénient configuration de la PROM lente.
101Exemple matériel photo 1
Programmation des PLDs
Câble de configuration
102Exemple matériel photo 2
Programmation des PLDs
Oscillateur à quartz
JTAG
2.5V
SSRAM
3.3V
FPGA
EEPROM
103Exemple matériel photo 3
Programmation des PLDs
Boîtier PQFP
104Exemple matériel photo 4
Programmation des PLDs
Boîtier TQFP
DIP switch
Boîtier PLCC
105Schéma dun système de configuration
Programmation des PLDs
Les deux dispositifs peuvent être combinés
EEPROM de configuration
Connecteur JTAG de configuration
Choix du mode
106Alimentations des FPGAs
La plupart des FPGAS actuels nécessitent
plusieurs alimentations
VCCINT
de 1,2 V à 2,5 V. Alimente le noyau du FPGA,
VCCIO
de 3,3 V à 5 V. Alimente les cellules dentrées
sorties.
107Représentation dunsystème logique
ou comment représenter une système autrement
que par un schéma, en faisant une description
textuelle.
108Système logique définitions
SYTEME
LOGIQUE
E e1, e2, ... , em est l'alphabet d'entrée
du système
S s1, s2, ... , sp est l'alphabet de sortie
du système
Si S(t) f E(t) quelque soit t, le système
logique est un circuit combinatoire
Si S(t) fE(t), M(t) le système est alors
un circuit séquentiel
109Implémentation dun système séquentiel
Implémentation dun système séquentiel
Etat futur
Etat présent
E
Q
G
M
F
Q
S
Entrées
Commande écriture
Variables
Variables internes
(Variables primaires)
d'excitation
(ou secondaires)
S(t) fE(t), M(t)
M(t) représente l état du système à l instant
t, mémorisé par le bloc mémoire M à n bits,
capable de représenter 2n états différents.
G et F sont des circuits combinatoires.
110Système séquentiel fonctionnement
Implémentation dun système séquentiel
Etat futur
Etat présent
E
Q
G
M
F
Q
S
Commande décriture
Sur commande décriture la mémoire M prend
létat Q présent à son entrée. Cet état est
fonction à la fois des variables externes (E) et
de létat Q précédant le front.
Les sorties (S) sont fonctions de létat Q de la
mémoire et éventuellement des variables externes
(E).
111Système séquentiel horloge
Implémentation dun système séquentiel
Etat présent
Etat futur
La commande décriture est généralement le front
(montant ou descendant) dun signal périodique
appelé horloge.
Q
Q
M
Horloge
Les changements détat du bloc M sont dits
synchrones de lhorloge.
112Modèles Moore ou Mealy
Implémentation dun système séquentiel
Etat futur
Etat présent
E
Q
G
F
M
Q
S
Horloge
Lorsque les sorties (S) sont uniquement fonctions
de létat (Q) du système, cette structure
implémente une machine détat dite de Moore.
Si les entrées (E) interviennent également dans
létat des sorties (S) (liaison pointillée),
cette structure correspond au modèle de Mealy.
Cette dernière construction est à déconseiller
car les changements détat des sorties risquent
de ne plus être synchrones.
113Cellule logique système élémentaire 1 bit
Implémentation dun système séquentiel
Horloge
Strap ou
D
Fonction combinatoire
inverseur
Bloc G
Bloc M
Bloc F
Une cellule logique dun PLD se prête
parfaitement à limplémentation dune machine
détat de Moore de 1 bit.
114Implémentation dun système n bits
Implémentation dun système séquentiel
Horloge
Bloc G
Bloc F
Bloc M
Q1
combinatoire 1
D
combinatoire 2
D
Q2
Réseau du PLD
D
combinatoire n
Qn
Lassociation de n cellules logiques
permet limplémentation dune machine d état n
bits, capable de produire jusquà 2n états
distincts.
Cette construction est idéale pour construire des
compteurs synchrones ou des séquenceurs
synchrones spécifiques.
115Système n bits et combinatoire
Implémentation dun système séquentiel
Dans le système précédent, le bloc F est réduit à
sa plus simple expression les sorties sont
directement les bits mémoire.
Cet exemple de système n bits possède 2 sorties,
chacune étant fonction combinatoire des états du
bloc M grâce aux 2 cellules qui implémentent le
bloc F par les fonctions combinatoires F1 et F2
116Exercice compteur synchrone 4 bits
Méthode basique utilisant des bascules D
Etablir la table des états successifs désirés,
avec un label pour chaque état (S1,S2, .. S15)
Etablir la table des entrées D nécessaires pour
obtenir les états suivants
En déduire les expressions logiques des entrées D
des bascules utilisées en fonctions des états du
système.
Cette méthode est universelle et sapplique à
tous les systèmes séquentiels. On la désigne par
méthode des tables des transitions
117Compteur 4 bits séquence détats
Exercice compteur synchrone 4 bits
Q3 Q2 Q1 Q0
Cette table présente la succession désirée des
états du compteur et donne la correspondance
avec les labels attribués.
S0 0 0 0 0 S1 0 0 0 1 S2 0 0 1 0 S3
0 0 1 1 S4 0 1 0 0 S5 0 1 0 1 S6 0 1
1 0 S7 0 1 1 1 S8 1 0 0 0 S9 1 0 0
1 S10 1 0 1 0 S11 1 0 1 1 S12 1 1 0
0 S13 1 1 0 1 S14 1 1 1 0 S15 1 1 1 1
Le passage dun état au suivant sera provoqué par
le front considéré actif de lhorloge.
118Compteur 4 bits tables des transitions
Exercice compteur synchrone 4 bits
0 0 0 1
0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0
1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1
0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1
1 1 1 0 0 0 0
Très simple ici les états Di correspondent aux
états futurs désirés
Cette table permet détablir les équations Di des
bascules.
119Compteur 4 bits équations Di
Exercice compteur synchrone 4 bits
D0 S0 S2 S4 S6 S8 S10 S12 S14
D1 S1 S2 S5 S6 S9 S10 S13 S14
D2 S3 S4 S5 S6 S11 S12 S13 S14
D3 S7 S8 S9 S10 S11 S12 S13 S14
En exprimant les états en fonction des bits Qi et
en réduisant un peu le résultat on aurait obtenu
les équations suivantes
D0 !Q0 D1 Q1 Q0 D2 Q2 (Q1 Q0) D3
Q3 (Q2 Q1 Q0)
120Compteur 4 bits validation
Exercice compteur synchrone 4 bits
On ajoute une validation par un signal VALID.
Chaque équation comprendra un terme dactivation
conditionné par VALID et un terme de maintien
conditionné par !VALID
D0 (S0 S2 S4 S6 S8 S10 S12 S14)
VALID
Q0 !VALID
D1 (S1 S2 S5 S6 S9 S10 S13 S14)
VALID Q1 !VALID
D2 (S3 S4 S5 S6 S11 S12 S13 S14)
VALID Q2 !VALID
D3 (S7 S8 S9 S10 S11 S12 S13
S14) VALID Q3 !VALID
121Activation et maintien conditionnés
Exercice compteur synchrone 4 bits
rétroaction
VALID
D
Q
Excitation E
CLK
Horloge
D (E VALID) (Q !VALID) activation
maintien
122Compteur synchrone initialisation
Exercice compteur synchrone 4 bits
On ajoute une initialisation à zéro par un signal
RAZ.
Chaque équation ainsi obtenue sera conditionnée
par !RAZ
D1 ((S1 S2 S5 S6 S9 S10 S13 S14)
VALID Q1 !VALID )!RAZ
D2 ((S3 S4 S5 S6 S11 S12 S13
S14) VALID Q2 !VALID )!RAZ
D3 ((S7 S8 S9 S10 S11 S12 S13
S14) VALID Q3 !VALID )!RAZ
Cette initialisation sera du type SYNCHRONE
123Remise à zéro synchrone
Exercice compteur synchrone 4 bits
rétroaction
VALID
D
Q
Excitation E
CLK
RAZ
Horloge
D ((E VALID)(Q !VALID))!RAZ
124Compteur synchrone modulo
Exercice compteur synchrone 4 bits
On ajoute un modulo 10 programmable par le signal
DIX.
état présent
état futur
Il faut examiner lincidence de ce modulo sur la
tables de transitions si DIX est vrai, le
compteur passe de S9 à S0, sinon il continue
normalement.
D3 D2 D1 D0
0 0 0 1
S0 S1 S1 S2 S2 S3 S3 S4 S4
S5 S5 S6 S6 S7 S7 S8 S8
S9 S9 S10 S10 S11 S11 S12 S12
S13 S13 S14 S14 S15 S15 S0
0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0
1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1
0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1
1 1 1 0 0 0 0
On peut constater que seuls les bits D3 et D1
sont concernés par cette modification, ceci
quand le compteur est à l état S9.
S9 S0
125Compteur modulo 10 équations
Exercice compteur synchrone 4 bits
Les équations de D3 et D1 sont modifiées de
manière à valoir 0 lorsque le compteur est à
létat S9. Cela revient à conditionner S9 par le
signal !DIX
D1 ((S1 S2 S5 S6 S9!DIX
S10 S13 S14) VALID Q1 !VALID )!RAZ
D2 ((S3 S4 S5 S6 S11 S12 S13
S14) VALID Q2 !VALID )!RAZ
D3 ((S7 S8 S9!DIX S10 S11
S12 S13 S14) VALID Q3 !VALID
)!RAZ
126Compteur schéma structurel niveau PLD
Exercice compteur synchrone 4 bits
Il sagit là dune structure a priori. Elle peut
être augmentée de cellules supplémentaires si la
combinatoire ne peut absorber les équations.
127Exercice séquenceur spécifique
On désire concevoir un générateur synchrone de
signal dont la sortie délivrerait le signal
périodique suivant
Adopter dabord un mode dimplémentation de ce
générateur en établissant un schéma structurel
(bascules D et combinatoire) et la table des
transitions.
Etablir la table des entrées D nécessaires pour
obtenir les états voulus après le prochain front
d horloge
Écrire les équations de pilotage des éléments
Essayer dautres mode dimplémentation et
déterminer pour chacun le nombre de cellules
logiques nécessaires.
128Généralisation des tables de transition
Variables externes
État présent
État futur
M
G
La méthode des tables des transitions montre ici
ses limites sa taille peut au pire doubler à
chaque variable externe introduite !
Exercice reprendre celui de la bascule toggle
129 Langages de description
La nécessité de pouvoir décrire un système
logique sous formes dexpressions compilables
plus ou moins évoluées a abouti à lélaboration
de langages de description textuelle
Langages de très bas niveau PALASM, ABEL
Non propriétaires, ils servent encore à
programmer les SPLDs
Langages propriétaires AHDL (Altera), MINC
(Xilinx)
Destinés surtout aux CPLDs ou aux petites unités
fonctionnelles pour une description performante
de niveau moyen.
Langages de très haut niveau VHDL, VERILOG
Non propriétaires et normalisés, donc portables
130 Structure générale dune description
Langages de description
Les langages évolués, propriétaires ou non,
présentent tous une structure commune pour la
description dun système logique
Description externe
Cest la vue externe du composant , avec
lénumération des signaux dentrée / sortie et
leurs dimensions, avec éventuellement les
numéros de broches de circuit auxquelles ils sont
assignés.
Description interne
Organisée différemment selon les langages, cette
section a pour but dénumérer de façon explicite
ou implicite les ressources internes du système
et den décrire le comportement ou la structure.
131 Exemple Compteur CPT en AHDL
Langages de description
Description externe en AHDL
subdesign CPT( CLOCK, RAZ, VALID, DIX input
COMPTEUR3..0 output)
La sortie compteur est formée dun groupe de 4
bits dont COMPTEUR3 est le MSB et COMPTEUR0 le
LSB.
132 Exemple Compteur en AHDL (2)
Langages de description
Description interne ressources
... variable déclaration de ressources 4
bascules D (D Flip Flop) compteur3..0 DFF
133 Exemple Compteur en AHDL (3)
Langages de description
Description interne équations logiques
... begin début de section logique entrées
horloge compteur.clk CLOCK entrées d des
bascules compteur.d ((
(compteur1)
!((compteur9) DIX) ) VALID
(compteur !VALID)
) !RAZ end fin de section logique
134 Primitive DFF de AHDL
Langages de description
La déclaration compteur3..0 DFF signifie
quà chacun des 4 signaux groupés compteur3,
compteur2, compteur1, compteur0 se trouve
associée une structure (ou primitive) de type
DFF (D Flip Flop).
Les éléments de cette structure portent des
labels clés.
135 Usage de la primitive DFF
Langages de description
compteur.prn
prn
q
compteur.q
d
compteur.d
compteur
clk
compteur.clk
clrn
compteur.clrn
compteur.clk CLOCK signifie que les 4
bascules recoivent le signal CLOCK sur leur
entrée horloge.
compteur.clrn !RAZ signifie que toutes les
bascules sont remises à zéro de façon asynchrone
si RAZ est haut.
136 Usage par défaut
Langages de description
prn
q
compteur
d
compteur
compteur
clk
compteur.clk
clrn
compteur compteur 1 est équivalent à
compteur.d compteur.q 1
Par défaut, lutilisation dune structure DFF
dans une équation est telle que le membre de
gauche désigne lentrée D tandis que lélément de
droite concerné désigne la sortie Q.
137AHDL opérateurs arithmétiques
Langages de description
compteur (((compteur1)
!((compteur9) DIX) ) VALID
(compteur !VALID)
) !RAZ
Outre les opérateurs logiques (, , !)
lexpression de compteur utilise des
opérateurs arithmétiques addition , égalité .
Dautres opérateurs sont disponibles -
soustraction - inégalité ! - ordre gt,
lt, gt, lt
138AHDL opérateurs logiques littéraux
Langages de description
AHDL supporte à la fois les opérateurs logiques
symboliques (, , !,) et leur correspondants
littéraux
gt and gt or ! gt not gt xor
On peut donc écrire dans ce langage
compteur (((compteur1) and
not((compteur9)and DIX) )and
VALID or(compteur and not
VALID) )and not RAZ
Lutilisation de lune ou l autre forme des
opérateurs logiques est une question de style
personnel, de même que le choix de majuscules ou
minuscules.
139Équations structurées if .. then .. else
Langages de description
Les structures conditionnelles constituent une
alternative lisible par rapport aux équations
directes
if not RAZ then if VALID then if not(DIX
and compteur9) then compteur
compteur1 end if else
compteur compteur end if end if
Attention aux alternatives non explicitées, pour
lesquelles les signaux concernés ne sont pas
maintenus
140Alternative implicite de if
Langages de description
Lorsque lalternative à une expression booléenne
nest pas précisée explicitement, elle produit
implicitement une remise à zéro du signal
concerné !
Ainsi les équations
compteur compteur1)and not RAZ
ou
if not RAZ then compteur
compteur1 end if
impliquent que compteurprendra la valeur 0 au
prochain front actif d horloge si RAZ est vrai...
141Alternative implicite cas des timers
Langages de description
Si certains états dun système doivent être
soumis à temporisation, la remise à zéro
implicite est très commode !
Ainsi si le timer TEMPO est piloté de la façon
suivante
if (E2 or E5) then TEMPO TEMPO1 end
if
ce timer sera automatiquement remis à zéro sur
tout autre état que ceux mentionnés dans la
condition (E2 E5)
142Description de séquencement complexe
En dehors de la méthode des tables des
transitions, la mise en équations dun système
séquentiel peut passer par des représentations
symboliques
RESEAU de PETRI
GRAPHSET
GRAPHCET
GRAFCET
GRAPHE DETAT
...
Le choix de lune ou lautre représentation est
une question de style personnel. Le réseau de
Pétri ne sera pas abordé ici, son utilisation
étant plutôt réservée à la modélisation de
systèmes à fort parallélisme.
143Exemple de grafcet
GRAFCET
GRAFCET de bas niveau
0
c1
1
A1
Tt1
ft1
Tt2
2
A2
c2.c3
c2.ft2
c2.c3
4
A3
A4
A5
Tt3
3
5
.
1
c4
ft3
6
A4
c5.c2
c1.c5
A1
7
8
A3
c6
c7
- entrées c1, ft1, c2, ft2, c3, c4, c5, ft3,
c6, c7 - sorties A1, A2, A3, A4, A5 - nombre
d'étapes 9
144Grafcet principes de la formalisation
GRAFCET
Le système restera sur létape 1 tant que le
front actif de lhorloge trouve la condition c1
fausse.
Ne pas représenter lalternative à C1 elle
est implicite dans le grafcet.
145 Grafcet chronogrammes dune transition
GRAFCET
146 Grafcet transition synchrone
GRAFCET
Attention aux implications du synchronisme
Cest létat AVANT le front actif de lhorloge
qui conditionne létat suivant !
147 Grafcet étape fugitive
GRAFCET
Étape sans maintien
E1
C1
c1
E1
E2
1
E3
Une étape sans maintien dure une période de
lhorloge.
148Graphe détat
GRAPHE
(ou diagramme détat)
Modèle de Moore
Alphabet d entrée e1,e2
Alphabet de sortie z
Chaque état que peut prendre le système
représenté est figuré par une bulle nommée S0,
S1 par exemple.
Chaque bulle mentionne l état des sorties.
Les transitions dun état à l autre sont
représentées par des flèches accompagnées de
létat des entrées.
Une seule transition peut être effectuée sur
chaque front actif de l horloge.
149Graphe détat exemple 1
GRAPHE
L exemple ci-dessus concerne un système à 2
états, 2 entrées et 1 sortie.
Le système reste en S0 tant que les eux entrées
dont différentes.
Il passe en S1 si les deux entrées sont
identiques.
Une fois passé en S1, le système y reste
maintenu jusquà initialisation qui le ramène
implicitement en S0
150Graphe détat exemple 2
GRAPHE
Compteur / décompteur modulo 4 4 états
Entrées up, init
Sorties compteur1..0
0
1
3
2
X état indifférent
151 Modes dimplémentation dun système séquentiel
Pour un système présentant n états, lalternative
est
Implémentation One Hot Encoding
n bascules D, donc n cellules logiques
Implémentation Finite State Machine (FSM)
Registre de p bascules D, donc p cellules
logiques avec p tel que 2p-1 lt n lt 2p
A priori, économie de cellules, car p lt n
152 Implémentation One Hot Encoding
Implémentation OHE
Prenons le cas dune représentation par grafcet
Chaque étape E du grafcet est matérialisée par
une bascule D.
La détermination de lexcitation de l entrée D
se fait en se posant les questions suivantes
Après quelle(s) étape(s) et à quelle(s)
condition(s) létape E doit-elle être activée ?
1 ou plusieurs termes d activation
A quelle(s) conditions létape E activée
doit-elle maintenue activée ?
0 ou 1 terme de maintien
153Mise en équations exemple 1
Implémentation OHE
Létape 2 est implémentée par une bascule D E2
dont lexcitation est régie par léquation
E2 E1 C1 E2 !C2
154Exemple 1 commentaires
Implémentation OHE
E2 E1 C1 E2 !C2
155Exemple 1 variante IF
Implémentation OHE
E2 E1 C1 E2 !C2
Cette équation peut être exprimée par le
truchement dune structure IF
if C1 then E2 E1 elsif not C2 then E2
E2 end if
A noter que lalternative else E2 GND est
implicite.
156Exemple 1 Synthèse logique
Implémentation OHE
C2
D
Q
C1
E2
E1
CLK
Horloge
157Mise en équations exemple 2
Implémentation OHE
Létape 2 est implémentée par une bascule D E2
dont lexcitation est régie par léquation
E2 E1 C1 E2 ! (C2 C3)
Le terme de maintien est létat de létape
considérée conditionné par le complément de la
somme des réceptivités de sortie.
158Exemple 2 remarque
Implémentation OHE
Léquation associée à létape 2 doit sécrire
systématiquement, sans simplifications
qui compliqueraient toute modification ultérieure.
E2 E1 C1 E2 ! (C2 C3)
E2 ! (C2 C3 C4)
On insiste le terme de maintien est létat de
létape conditionné par le complément de la somme
des réceptivités de sortie.
159Exemple 2 variante IF
Implémentation OHE
E2 E1 C1 E2 ! (C2 C3
C4)
Cette équation peut être exprimée par le
truchement dune structure IF
if C1 then E2 E1 elsif not (C2 or C3 or C4)
then E2 E2 end if
160Mise en équations exemple 3
Implémentation OHE
Létape 2 est implémentée par une basculeD E2
dont lexcitation est régie par léquation
E2 E0C0 E1C1 E2 !
C2
2 termes dactivation 1 terme de maintien
161Mise en équations exemple 4
Implémentation OHE
Létape 2 est implémentée par une bascule D E2
dont l excitation est régie par l équation
E2 E1 C1
Laction A aura pour équation
A E2
L équation de E2.d na pas de terme de maintien
létape 2 ne restera donc activée que durant 1
période de l horloge.
De même pour laction A associée à cette étape.
162Exemple 4 remarque
Implémentation OHE
L équation d une action associée à une ou
plusieurs étapes doit sécrire uniquement en
fonction de celles-ci !
Laction A aura pour équation
A E2
Il ne faut surtout pas écrire
INTERDIT !
A E1c1
En effet, ici cette expression ne sera vraie que
durant une période de lhorloge alors que
l action A doit persister ici tant que la
condition c2 est fausse.
163Mise en équations exemple 5
Implémentation OHE
Cas de parallélisme
E2 E1c1 E2!E4
E4 E3c2 E4!E2
E5 E4E2
L étape 5 ne peut être activée que si les étapes
2 et 4 sont activées parallèlement.
Ce parallélisme, implicite dans le grafcet, doit
être explicité dans les équations.
164Exercice de mise en équation
Implémentation OHE
Unité de transbordement entre 2 convoyeurs
Pour cet automatisme, deux opérations peuvent
avoir lieu en même temps.
165Grafcet du transbordeur
Implémentation OHE
166Equations du transbordeur
Implémentation OHE
Séquencement
E2 (E1dp1 E2!dp2)!INIT
E3 (E2dp2 E3!pe)!INIT
E4 (E3pe E4!p2a)!INIT
E5 (E4p2a E5!E7)!INIT
E6 (E2dp2 E6!p1a)!INIT
E7 (E6p1a E7!E5)!INIT
E1 (E5E7 E1!dp1 INIT
Actions
avp1 E2 avp2 E3 rp1 E6 rp2
E4
167Transbordeur initialisation
Implémentation OHE
Autre intégration de linitialisation dans le
séquencement
if INIT then E1 VCC E2..7 0 else E1
E5E7 E1!dp1 E2 E1dp1 E2!dp2 E3
E2dp2 E3!pe E4 E3pe E4!p2a E5
E4p2a E5!E7 E6 E2dp2 E6!p1a E7
E6p1a E7!E5 end if
(VCC niveau 1 pour un bit GND niveau 0 pour
1 bit )
168Initialisation automatique
Implémentation OHE
En conception, les PLDs sont en général associés
à un circuit de remise à zéro globale, actif à la
mise sous tension. Cette situation peut être
mise à profit pour une initialisation
automatique
if INIT (E0)then E1 VCC E2..7
0 else E1 E5E7 E1!dp1 E2 E1dp1
E2!dp2 ... end if
169Types daction
Implémentation OHE
Dans ce grafcet de niveau 2 le signal A est vrai
lorsque les étapes 2 et 4 sont actives. Il est
faux sur les autres étapes.
Le signal A est un circuit combinatoire tel que
A E2 E4.
Dans ce second grafcet, le signal A est mis à 1
lors de l étape 2 . Il est remis à 0 lors de
l étape 4.
Le signal A est une mémoire qui change détat
aux fronts dhorloge qui suivent ceux qui
activent les étapes E2 et E4.
170Actions à mémoire équations
Implémentation OHE
A DFF A.clk clock A E2 A!E4
Dune façon générale le terme de maintien est le
signal mémoire conditionné par le complément de
la somme des étapes qui doivent remettre à zéro
ce signal.
A E2 A!(E0 E4)
Exemple
E0 est par exemple létape d initialisation du
système.
171Comptage
Implémentation OHE
E0
C0
C3..0 DFF C.clk clock C ?
C3..0 DFF ... C.clk clock C
(C1)(E1E3) C!E0
c1
E1
CC1
c2
E2
C!(E0E1E3)
c3
E3
CC1
Le comptage et le maintien doivent être exclusifs
!
1
Attention si lors de l étape E3 le compteur C
sincrémentera dune unité, il n en est pas de
même pour létape E1 le compteur C
sincrémentera tant que la condition c2 est
fausse !
172Comptage remarque sur le maintien
Implémentation OHE
E0
C0
C (C1)E1 C!E0
c1
Léquation ci-dessus peut paraître a
priori correcte. Cependant, il savère que
le terme de maintien reste vrai lorsque le terme
dactivation est vrai.
E1
CC1
c2
E2
Le pilote C .d sera alors le résultat dun OU
logique entre l état courant C .q du compteur
et ce même état incrémenté de 1... Exemple sur 4
bits
0 0000 0001 0001 1
1 0001 0010 0011 3
3 0011 0100 0111 7
7 0111 1000 1111 15
173Comptage activation et maintien
Implémentation OHE
C (C1)E1 C!E0
Une telle progression est symptomatique dune
non exclusion entre lactivation et le maintien !
174Comptage validation correcte
Implémentation OHE
E0
C0
c1
L équation correcte du compteur C sera
E1
CC1
c2
E2
C (C1)E1 C!(E1E0)
E3
Une variante consiste à énumérer dans le terme de
maintien la somme des étapes où ce maintien est
implicite
C (C1)E1 C(E2E3)
Lexpression E2E3 est le complément de E0E1 par
rapport au Grafcet considéré
175Temporisation
Implémentation OHE
L étape 2 valide lincrémentation dun compteur
tempo par le signal en_tempo.
L étape 2 est maintenue tant que le compteur
tempo n a pas atteint la valeur N.
tempo15..0 DFF tempo.clk
clock tempo.d ?
tempo15..0 DFF tempo.clk
clock tempo (tempo1) E2
Il nest pas nécessaire dexpliciter la remise à
zéro du compteur de temporisation on ne met pas
de terme de maintien...
176Puits
Implémentation OHE
Il peut arriver que lon veuille
exceptionnellement bloquer un système pour on
laiguille vers un puits
E4 E2C3 E4
177Exercice chronomètre
Implémentation OHE
Un chronomètre peut être assimilé à un compteur
cadencé par une horloge CLOCK, avec
Validation du comptage par signal START.
Arrêt du comptage par signal STOP.
Remise à zéro par signal RAZ.
Ici, le compteur est BCD et compte de 0 à 99.
178Chronomètre grafcet
Implémentation OHE
Actions
INIT remise à zéro du compteur.
VALID validation du comptage
179Chronomètre équations
Implémentation OHE
Déclarations de ressources
E0..2 DFF -- séquenceur UNIT3..0,DIZ3..0
DFF -- compteur
Equations du séquenceur
E.clk CLOCK if E0 then E0.d
VCC else E0.d E2RAZ E0!START E1.d
E0START E1!STOP E2.d E1STOP E2!(START
RAZ) end if
E.clk CLOCK if E0 then E0.d
VCC else E0 E2RAZ E0!START E1
(E0E2)START E1!STOP E2 E1STOP
E2!(START RAZ) end if
Léquation de E1.d est fausse, pourquoi ?
180Chronomètre équations (2)
Implémentation OHE
Equations des actions
INIT E0 VALID E1
Equations du compteur
--unités UNIT.clk CLOCK UNIT
((UNIT1)(UNIT!9)VALID)
(UNIT!VALID))!INIT
--dizaines DIZ.clk CLOCK DIZ
((DIZ1)(DIZ!9)(UNIT9)VALID)
(DIZ !(VALID UNIT9))!INIT
181Chronomètre unités
Implémentation OHE
Expression structurée de UNIT .d
if not INIT then if VALID then if UNIT!9
UNIT UNIT1 end if else UNIT
UNIT end if end if
182Chronomètre dizaines
Implémentation OHE
Expression structurée de DIZ .d
if not INIT then if VALID UNIT9 then
if DIZ!9 DIZ DIZ1 end
if else DIZ DIZ end if end if
183Exercice Aiguillage
Implémentation OHE
Des bouteilles convoyées sur une file arrivent à
un aiguillage à 3 voies V1, V2, V3. La logique
à associer à cet aiguillage et à développer ici
doit être telle que les bouteilles seront
dirigées vers les 3 voies successivement par
paquets de 5 et ceci de façon cyclique.
184Aiguillage vue externe
Implémentation OHE
Ports dentrée / sortie
B
V1
aiguillage
V2
reset
V3
clock
Arrêt normal
Arrêt urgence
B signal délivré par un capteur de passage de
bouteille
185Aiguillage chronogrammes
Implémentation OHE
Bouteille
V1
V2
V3
186Aiguillage ressources
Implémentation OHE
Compteur de bouteilles (modulo 5)
Permutateur de voies
Un séquenceur général
Sensibilités - détection de bouteille B
- état du compteur CB
- arrêt normal AN - état de la voie 3
Actions - validation du compteur (EN_CB)
- remise à zéro synchrone (CS_CB)
- permutation circulaire des voies
(EN_PV) et initialisation sur
la voie 1 (INIT_PV))
187Aiguillage schéma structurel
Implémentation OHE
Compteur de Bouteilles
Séquenceur
188Aiguillage grafcet du séquenceur
Implémentation OHE
!(ANV3)
189Implémentation OHE
Aiguillage grafcet du permutateur
Le permutateur est initialisé sur V1 par E0
190 Implémentation FSM
Implémentation FSM
Chaque état discernable du système est
représenté par celui dun registre (groupement de
bascules D).
Ce registre (registre détat ou séquenceur) aura
le nombre p de bits nécessaires pour représenter
les N états identifiés, soit donc p tel que
2P-1 lt N lt 2P
Limplémentation du séquenceur en mode FSM
demandera donc les équations des entrées D des P
bascules D, fonctions à la fois des états du
séquenceur et de ceux des signaux externes
intervenant dans la succession des états.
191Implémentation FSM exemple
Implémentation FSM
Détecteur détats consécutifs
z
e
Détecteur
Horloge
La sortie z passe à 1 si l entrée e est restée à
1 sur au moins 3 fronts d horloge consécutifs.
192Détecteur représentation
Implémentation FSM
Le système a quatre états possibles selon quil a
détecté lentrée au niveau 1 sur 0, 1, 2 ou au
moins 3 fronts actifs de l horloge.
On choisit une représentation par graphe détat
Entrée e
Sortie z
4 états possibles
0
0
0
1
193Détecteur implémentation FSM sous AHDL
Implémentation FSM
Le langage AHDL permet de coder un graphe (ou un
grafcet) en vue dune implémentation FSM de deux
manières
Saisie directe de la table des transitions
Pour les amateurs de tables ! Leur taille
augmente exponentiellement avec le nombre de
variables externes
Utilisation dune structure CASE
S