Académique Documents
Professionnel Documents
Culture Documents
Elément :
Conception et Programmation
des
Circuits Numériques
Configurables
(Semi-custom) Séquentiables
une fonction (Full-custom)
par circuit
PLA, PAL, EPLD ou CPLD
FPGA Microprocesseurs
à mémoire Microcontrôleurs
DSP
Spécialisés
Périphériques standards,
SOC (System On Chip) ASICs
PLDs
2
Types des circuits logiques (2)
3
Types des
circuits
logiques
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
Types des
circuits
logiques Vocabulaire (1)
PAL, GAL ( Programmable Array Logic, Généric Array Logic).
5
Types des
circuits Vocabulaire (2)
logiques
DRAM Dynamic Random Access Memory - Mémoire dynamique à accès aléatoire
DSP Digital Signal Processor - Processeur orienté vers le traitement du signal
EDIF Electronic Design Interchange Format
EEPLD Electrically Erasable Programmable Logic Device - PLD effaçable électriquement
FPGA Field Programmable Gate Array - Réseau de portes programmables
GAL Generic Array Logic - PAL générique
ISP In-System (In Situ) Programmable - Composant programmable sur carte
JEDEC Joint Electronic Device Engineering Council - Organisme de normalisation
JTAG Joint Test Action Group - Bus de test des composants
LCA Logic Cell Array (Xilinx) - Réseau de cellules logiques
LUT Look-Up Table
MAX Multiple Array Matrix - Megapals d'Altera
NOVRAM ou NVRAM NonVolatile Random Access Memory - RAM non volatile
OTP One Time Programmable - Programmable une seule fois
PAL Programmable Array Logic - Réseau logique programmable
PGA Programmable Gate Array - Réseau de portes programmable
PLA Programmable Logic Array - Réseau logique programmable
PLD Programmable Logic Device - Dispositif logique programmable, EPLD : Erasable PLD : PLD Effacable
ROM Read Only Memory, Mémoire à lecture seule, PROM : Programmable ROM,. EPROM: Erasable : Effacable,
EEPROM : Electricaly EPROM : Mémoire à lecture seule, électriquement effaçable.
RAM Random Access Memory - Mémoire à accès aléatoire
SDF Standard Delay File
SOG Sea-of-Gates - Mer de portes : réseau actif logique prédiffusé
SRAM Static Random Access Memory - Mémoire statique à accès aléatoire
TTL Transistor Transistor Logic - Logique transistor-transistor
6 VHDL VHSIC Hardware Description Language - Langage de description matérielle VHSIC
Technologie utilisée pour les interconnexions
Les cellules standards implantées dans les circuits "Semi-custom" vont de la
simple porte jusqu'à une structure complexe utilisant un grand nombre de
transistors. Il existe plusieurs méthodes servant à interconnecter ces cellules :
▬ par masque (le fondeur),
▬ par fusible,
▬ par anti-fusible,
▬ par cellule mémoire : EPROM, EEPROM, flash EPROM et SRAM..
Les autres méthodes sont utilisées dans les PLD. Dans ces circuits, les fils de liaison
existent déjà (organisée en lignes et en colonnes), mais ils ne sont reliés ni entre eux,
ni avec les éléments logiques du circuit. Il faut donc arriver à créer une interconnexion
entre deux fils.
7
Technologie utilisée pour les interconnexions (2)
8
Types des
circuits
logiques
Composants programmables à configuration interne
• Un réseaux logique programmable (circuit logique programmable ) est
un circuit qui peut être configuré par l’utilisateur pour avoir une ou
plusieurs fonctions logiques.
• Un circuit programmable est constitué d’un ensemble d’opérateurs ET
et OU organisés sous forme de deux matrices.
• La matrice des ET est un ensemble de portes AND qui permet de relier
les différentes variables d’entrées.
• La matrice des OU est un ensemble de portes OR qui permet de relier
les différents termes AND.
• Une matrice peut être programmable ( paramétrable ) ou figée
( préconfigurée ).
• La programmation consiste à faire bruler (sauter) les fusibles des termes
9 ( ou des variables ) qu’on veut pas utiliser laisser les fusibles utiles .
Types des
circuits
Matrice ET Matrice OU
10
Types des
circuits
logiques
A B
figée
La matrice ET est figée : les produits
sont déterminés A.B
12
Types des
circuits
logiques
Les PROM : exemple
A B
F1 A.B A.B
F 2 A.B A.B
F 3 A.B A.B
F1 F2 F3
13
Types des
circuits
logiques
Les PAL
Ex: PAL 16 L 8 A B C
Exemple
15
Ce terme donne un 0.
F1 F2
Intérêt des PLDs
Intégration
Temps réel
Développement
Confidentialité
16
Intérêt
des
PLDs Intégration de systèmes par les 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
17
Intérêt des
PLDs
Intégration fonctionnelle
Intégration fonctionnelle
Unité
1
Unité
2
Unité
3
20
Intérêt des
PLDs
21
Intérêt des
PLDs
Développement aisé
Développement flexible
Les PLDs actuels sont reconfigurables indéfiniment soit in situ «ISP: In-
System (In Situ) Programmable – Composant programmable sur
carte» soit par leur mémoire (PROM ou FLASH) de configuration.
...
23
Intérêt des
PLDs
Coûts
Tous les arguments cités en faveur des PLDs ont une incidence sur les côuts :
24
Intérêt des
PLDs
Confidentialité
25
Intérêt des
PLDs
Microcontrôleur ou PLDs ?
Quantité
27
Les PLDS : Approche
Actel Altera
AMD Philips
Vantis Xilinx
28
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).
48x16x2 + 48 x 8 = 1920 points de configuration
29
Un ancêtre :
le FPLA
FPLA : analyse de la configuration
Compte tenu des points de configuration activés (ou plutôt coupés),
par exemple :
+5V
P1 e1.e2.e3 e2 P1
e3
La sortie S1 est issue
d’un OU câblé tel que : +5V
S1 P1 P3 P1 P2 P3
S1
Ici P3 = 0 ; il reste :
30
S1 e1.e2.e3
Un ancêtre :
le FPLA
FPLA : représentation symbolique
e1 e2 e3
P1
P2
P3
S1 S2
31
Un ancêtre :
le FPLA
FPLA : synthèse
P2
P3
Matrice de ET
S1 S2
Les SPLDs
34
SPLD: Classification selon la structure de sortie
Il existe 3 structures de sortie qui peuvent-être aussi des entrées/sorties :
– Combinatoires
– Séquentielles (à registres)
– Versatiles
Entrées/sorties combinatoires
Fusibles
PAL16L8 : la cellule
L pour Logique combinatoire
PAL16L8 : l ’organisation
Réseau programmable
8x10 lignes /
32 colonnes
Analyse du problème
R comme Register
clock OE
43
Les SPLDs
PALCE16V8 : la cellule
48
Les SPLDs
Saturation de la cellule : exemple
abcde
cellule1 /aux
/Y
cellule2 /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;
49
Les SPLDs
Une variante aux PALs : le GAL
Autre solution au problème précédent : utiliser des circuits dont les cellules
logiques comportent des OU possédant un nombre supérieur d’entrées, tel
le GAL22V10 de VANTIS (représentation partielle à 50%).
Réseau 130 x 44
50
Les SPLDs
GAL22V10 : la cellule
8 à 16 entrées
51
Les CPLDs
52
Les CPLDs
53
Les CPLDs
Famille EPM7000 (Altera) : organisation
LAB : logic Array Block
PIA : Programmable
Interconnection Array
54
Les CPLDs
Famille EPM7000 (Altera) : la cellule
Une ligne par cellule peut servir à fournir une colonne supplémentaire
56 au réseau local du bloc logique concerné.
Les CPLDs
Famille EPM7000 (Altera) : les expanders (2)
Expansion parallèle
I/O Block
Compatible
5Vet 3.3V
(dépendant de
VCCINT et VCCIO)
61
Les FPGAs
(Field Programmable Gate Array)
Entrées Sortie
n 1
adresse
donnée
LUT
64
Les FPGAs
FPGAs : structure générale
Cellule logique
Blocs E/S
Lignes
d’interconnexions
66
Les FPGAs
FPGAs : RAM embarquée
Position
centrale:
minimisation
desTpd
67
Les FPGAs
FPGAs : structure fonctionnelle
SRAM de
configuration
Interconnexions
configurables
Ressources
(Cellules, RAM)
69
Les FPGAs
XC4000 : la cellule CLB : Configurable Logic Block
72
PSM : Programmable Switches Matrice
Les FPGAs
XC4000 : les interconnexions, détail
73
Les FPGAs
XC4000 : Bloc E/S
74
Les FPGAs
XC4000 : exemple de routage
75
Les FPGAs
XC4000 : la famille
77
Les FPGAs
FPGA Exemple 2 : ACEX (Altera)
78
Les FPGAs
FPGA Exemple 2 : ACEX (Altera)
79
Les FPGAs
FPGA Exemple 2 : ACEX (Altera)
80
Les FPGAs
FPGA Exemple 3 : Virtex 2 pro (Xilinx)
81
Les FPGAs
Virtex 2 pro :
organisation
générale
82
Les FPGAs
Virtex 2 pro : la cellule logique
83
Les FPGAs
Slice = Tranche
84
Les FPGAs
Virtex 2 pro :
détail du slice
85
CPLD
vs
FPFGA
CPLD ou FPGA ?
CPLD et FPGA, pareil ?
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 n’en possèdent que quelques centaines.
86
CPLD
vs
FPFGA
CPLD ou FPGA : configuration
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.
87
CPLD
vs
FPFGA
CPLD ou FPGA : routage
88
CPLD
vs
FPFGA
CPLD ou FPGA : rapidité
89
CPLD
vs
FPFGA
CPLD ou FPGA : taille projet
90
CPLD
vs
FPFGA Synthèse : les SPLDs et sCPLD
entrées rétroactions
CPLD
Réseau
de ET
Configuration
Cellules associées à non volatile
un réseau commun de ET
91
CPLD
vs
FPFGA Synthèse : les FPGAs
FPGA
92
Modes de programmation des PLDs
FPGA :
in situ (SRAM ou FLASH)
93
Programmation
des SPLD DIP sur programmateur
PLDs
94
Programmation
des
PLDs SPLD CMS sur programmateur
95
Programmation
des
PLDs Programmation des CPLDs
96
Programmation
des
PLDs Programmation in situ (ISP)
97
Programmation
des
PLDs Principe de la programmation EPROM
98
Programmation
des
PLDs Cellule EPROM : structure
Largeur du canal :
finesse de la gravure (<1µ)
Vss >0
101
Programmation
des
PLDs Programmation des FPGA
In Situ
102
Programmation
des
PLDs Programmation des FPGAs
103
Programmation
des
PLDs Exemple matériel : photo 1
Câble de
configuration
104
Programmation
des
PLDs Exemple matériel : photo 2
Oscillateur
à quartz
JTAG
2.5V
SSRAM
3.3V
FPGA
EEPROM
105
Programmation
des Exemple matériel : photo 3
PLDs
Boîtier PQFP
106
Programmation
des
PLDs Exemple matériel : photo 4
Boîtier TQFP
DIP switch
Boîtier PLCC
107
Programmation
des
PLDs Schéma d’un système de configuration
Les deux dispositifs peuvent être
combinés
EEPROM de
configuration
Connecteur
Choix du JTAG de
mode configuration
108
Alimentations des FPGAs
VCCINT
VCCIO
109
Représentation d’un
système logique
110
Système logique : définitions
e s
m p
SYTEME
LOGIQUE
e s
2 2
e s
1 1
E Q*
G M Q
F
S
E Q*
G M F
Q S
Commande d’écriture
113
Implémentation
d’un
système
séquentiel
Système séquentiel : horloge
Etat futur Etat présent
La commande d’écriture est
Q* Q généralement le front (montant
M ou descendant) d’un signal
Horloge périodique appelé horloge.
Horloge
Horloge
115
Implémentation
Horloge
Bloc G Bloc M Bloc F
combinatoire 1 D Q1
combinatoire 2 D Q2
Réseau
du PLD
combinatoire n D Qn
combinatoire n D
Bloc G
S1
combinatoire F1
Bloc F S2
combinatoire F2
Description externe
119
MERCI ...
120