Aucun%20titre%20de%20diapositive - PowerPoint PPT Presentation

About This Presentation
Title:

Aucun%20titre%20de%20diapositive

Description:

OHE vs FSM Grafcet et FSM : restriction Si le grafcet comporte des tapes activ es en parall le, l impl mentation FSM n est pas applicable. – PowerPoint PPT presentation

Number of Views:498
Avg rating:3.0/5.0
Slides: 226
Provided by: gen96
Category:

less

Transcript and Presenter's Notes

Title: Aucun%20titre%20de%20diapositive


1
Initiation à la logique programmable
2
Typologie 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)
3
Les 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
4
Inté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é
5
Inté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
6
Inté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
7
Temps 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
8
Temps 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
9
Dé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
10
Dé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.
...
11
Coû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.
12
Confidentialité
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é).
13
Microcontrô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.
14
Limites 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
15
Les 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
16
Les 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).
17
FPLA 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
18
FPLA 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
19
FPLA 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.
20
Les 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é.
21
Les 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
22
Un 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) .
23
PAL16L8 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
24
PAL16L8 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
25
Exercice 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
26
Contrô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.
27
Contrô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
28
Contrôleur dIT configuration du PAL
Les SPLDs
I7
/IRQ
I6
A0
I5
A1
I4
A2
I7 I6 I5 I4 I3 I2 I1 I0
29
Exercice 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
30
Dé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
31
Dé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
32
Dé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
33
Dé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.
34
Dé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
35
Programmation 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
36
Un 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.
37
Un 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)
38
PALCE16V8 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.
39
PALCE16V8 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.
40
Rô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.
41
Rô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.
42
Saturation 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.
43
Saturation 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
44
Message 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.
45
Message dinadéquation (2)
Les SPLDs
Le projet demande plus de cellules logiques que
la cible choisie nen possède.
46
Une 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
47
GAL22V10 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
48
Exercice 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
49
Les 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.
50
Les 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
51
Famille EPM7000 (Altera) organisation
Les CPLDs
LAB logic Array Block PIA Programmable
Interconnection Array
52
Famille 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.
53
Famille 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é.
54
Famille EPM7000 (Altera) les expanders (2)
Les CPLDs
Expansion parallèle
Chaque cellule peut fournir un terme
supplémentaire au OU de la cellule voisine.
55
Famille 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.
56
Famille EPM7000 (Altera) les puces
Les CPLDs
EPM7xxxS programmable in situ
57
Famille EPM7000 (Altera) rapidité
Les CPLDs
-5 correspond à un temps de propagation tpd 5ns
58
Famille EPM7000 (Altera) les boîtiers
Les CPLDs
59
Les 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)
60
Les 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
61
Les 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.
62
FPGAs structure générale
Les FPGAs
NB La matrice va de 10x10 à 100x100 et plus !
63
FPGAs structure détaillée
Les FPGAs
64
FPGAs RAM embarquée
Les FPGAs
Position centrale minimisation desTpd
65
FPGAs 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.
66
FPGA 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
67
XC4000 la cellule
Les FPGAs
CLB Configurable Logic Block
(version combinatoire 3 générateurs de
fonctions F,G,H)
68
XC4000 la mémoire répartie
Les FPGAs
(version mémoire organisation 16x2 bits)
69
XC4000 les interconnexions
Les FPGAs
PSM Programmable Switches Matrice
70
XC4000 les interconnexions, détail
Les FPGAs
71
XC4000 Bloc E/S
Les FPGAs
72
XC4000 exemple de routage
Les FPGAs
73
XC4000 la famille
Les FPGAs
20 à 30 de la RAM est utilisée dans un projet.
74
FPGA Exemple 2 ACEX (Altera)
Les FPGAs
organisation
75
FPGA Exemple 2 ACEX (Altera)
Les FPGAs
La cellule logique
76
FPGA Exemple 2 ACEX (Altera)
Les FPGAs
Lélément Logique
77
FPGA Exemple 2 ACEX (Altera)
Les FPGAs
3 à 12 EAB (Embedded Array Block)
1 EAB 12 288 bits
Les EAB
78
FPGA Exemple 3 Virtex 2 pro (Xilinx)
Les FPGAs
79
Virtex 2 pro organisation générale
Les FPGAs
organisation
80
Virtex 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
83
CPLD 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.
84
CPLD 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.
85
CPLD 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.
86
CPLD 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.
87
CPLD ou FPGA taille projet
CPLD vs FPFGA
Petit projet SPLD ou CPLD
Gros projet FPGA
88
Synthè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
89
CPLD vs FPFGA
Synthèse les SPLDs et sCPLD
Nombreuses petites cellules organisées
matriciellement sans réseau de ET
FPGA
Configuration sur SRAM volatile
90
Modes 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)
91
SPLD DIP sur programmateur
Programmation des PLDs
92
SPLD CMS sur programmateur
Programmation des PLDs
93
Programmation 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.
94
Programmation in situ
Programmation des PLDs
(ISP)
Nécessité de prévoir sur le PCB le connecteur
destiné au câble de configuration.
95
Principe de la programmation EPROM
Programmation des PLDs
Principe du point de contact programmable
transistor N-MOS à grille  flottante  à
injection de charge.
96
Cellule 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.
97
Cellule 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.
98
Cellule 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.
99
Programmation 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.
100
Programmation 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.
101
Exemple matériel photo 1
Programmation des PLDs
Câble de configuration
102
Exemple matériel photo 2
Programmation des PLDs
Oscillateur à quartz
JTAG
2.5V
SSRAM
3.3V
FPGA
EEPROM
103
Exemple matériel photo 3
Programmation des PLDs
Boîtier PQFP
104
Exemple matériel photo 4
Programmation des PLDs
Boîtier TQFP
DIP switch
Boîtier PLCC
105
Sché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
106
Alimentations 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.
107
Représentation dunsystème logique
ou comment représenter une système autrement
que par un schéma, en faisant une description
textuelle.
108
Systè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
109
Implé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.
110
Systè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).
111
Systè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.
112
Modè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.
113
Cellule 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.
114
Implé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.
115
Systè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
116
Exercice 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
117
Compteur 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.
118
Compteur 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.
119
Compteur 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)
120
Compteur 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
121
Activation 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
122
Compteur 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
123
Remise à zéro synchrone
Exercice compteur synchrone 4 bits
rétroaction
VALID
D
Q
Excitation E
CLK
RAZ
Horloge
D ((E VALID)(Q !VALID))!RAZ
124
Compteur 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
125
Compteur 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
126
Compteur 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.
127
Exercice 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.
128
Gé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.
137
AHDL 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
138
AHDL 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
140
Alternative 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...
141
Alternative 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)
142
Description 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.
143
Exemple 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
144
Grafcet 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.
148
Graphe 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.
149
Graphe 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
150
Graphe 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
153
Mise 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
154
Exemple 1 commentaires
Implémentation OHE
E2 E1 C1 E2 !C2
155
Exemple 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.
156
Exemple 1 Synthèse logique
Implémentation OHE
C2
D
Q
C1
E2
E1
CLK
Horloge
157
Mise 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.
158
Exemple 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.
159
Exemple 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
160
Mise 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
161
Mise 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.
162
Exemple 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.
163
Mise 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.
164
Exercice 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.
165
Grafcet du transbordeur
Implémentation OHE
166
Equations 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
167
Transbordeur 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 )
168
Initialisation 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
169
Types 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.
170
Actions à 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.
171
Comptage
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 !
172
Comptage 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
173
Comptage activation et maintien
Implémentation OHE
C (C1)E1 C!E0
Une telle progression est symptomatique dune
non exclusion entre lactivation et le maintien !
174
Comptage 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é
175
Temporisation
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...
176
Puits
Implémentation OHE
Il peut arriver que lon veuille
exceptionnellement bloquer un système pour on
laiguille vers un  puits 
E4 E2C3 E4
177
Exercice 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.
178
Chronomètre grafcet
Implémentation OHE
Actions
INIT remise à zéro du compteur.
VALID validation du comptage
179
Chronomè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 ?
180
Chronomè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
181
Chronomè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
182
Chronomè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
183
Exercice 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.
184
Aiguillage 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
185
Aiguillage chronogrammes
Implémentation OHE
Bouteille
V1
V2
V3
186
Aiguillage 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))
187
Aiguillage schéma structurel
Implémentation OHE
Compteur de Bouteilles
Séquenceur
188
Aiguillage grafcet du séquenceur
Implémentation OHE
!(ANV3)
189
Implé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.
191
Implé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.
192
Dé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
193
Dé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
Write a Comment
User Comments (0)
About PowerShow.com