15/02/2023
Présentation de la logique programmée
on passe par deux étapes principales pour le développe d’un
système électronique digital :
Conception
Réalisation
Dans la première étape, on transforme le cahier de charge
décrivant la fonction du système à réaliser en un circuit "sur
papier".
Pour cette étape, il existe un nombre très important de méthodes
et d'algorithmes de synthèse et d'optimisation.
La deuxième étape consiste à réaliser physiquement le système.
Cette étape dépend essentiellement de la technologie à utiliser.
CPLD, FPGA et VHDL- Pr. Salaheddine
15
KHAMLICH
Présentation de la logique programmée
Il existe trois possibilités pour réaliser un système numérique :
Réalisation d'un système digital
Composants standards: µ-processeurs ASIC
TTL: 74 - µ-contrôleurs
CMOS: 40 -, 41 -, 45 -
ECL: 10 -, 100 -
Solution 1 Solution 2 Solution 3
CPLD, FPGA et VHDL- Pr. Salaheddine
16
KHAMLICH
Les différentes familles de ASIC
ASIC : Application Specific Integrated Circuit
CPLD, FPGA et VHDL- Pr. Salaheddine
17
KHAMLICH
1
15/02/2023
Les différentes familles de ASIC
ASIC
CUSTOM SEMI-CUSTOM
Circuits Circuits Circuits Circuits
sur mesure précaractérisés prédiffusés configurables
Full Standard Sea of Gate
Custom ASIC gate array FPGA CPLD PAL
cell
SRAM Antifuse
ASIC : Application Specific Integrated Circuit
PLD
PAL : Programmable Array Logic
GAL : Generic Array Logic = PAL
CPLD : Complex Programmable Logic Device
FPGA : Field Programmable Gate Array Les noms peuvent changer selon
SRAM : Static Random Access Memory ! l‘auteur, le fondeur ...
18
CPLD, FPGA et VHDL- Pr. Salaheddine KHAMLICH
Présentation de la logique programmée
programmation de PLD se fait généralement par
l'utilisateur lui-même à l'aide d'appareils simples
appelés "programmateurs".
Avantages:
- Programmation chez l'utilisateur
- Rapidité suffisante
- Prix relativement bas
Inconvénient:
- Complexité relativement faible
CPLD, FPGA et VHDL- Pr. Salaheddine
19
KHAMLICH
Principe des PLD
Théorème fondamental de l’algèbre de boole:
- a+1 =1, a.1 = a, a+0 = a, a.0 = 0.
-a./a= 0, a+/a=1.
-a.b = b.a, a+b = b+a. (Commutativité)
-a.(b.c)=(a.b).c=a.b.c, a+(b+c)=(a+b)+c=a+b+c. (Associativité)
-a.(b+c)=a.b+a.c, a+(b.c)= (a+b).(a+c). (Distributivité)
-/(a.b)= /a+/b, /(a+b)=/a./b. (THÉORÈME DE MORGAN)
Une fonction logique est définie par les interconnexions entre
des opérateurs combinatoires et des bascules, et par les
équations des opérateurs combinatoires.
Donc un circuit programmable est un assemblage d’opérateurs
logiques combinatoires et de bascules, présentes physiquement
sur le circuit, dans lequel la fonction réalisée n’est pas fixée lors
de la fabrication. CPLD, FPGA et VHDL- Pr. Salaheddine
20
KHAMLICH
2
15/02/2023
Opérateurs génériques
PLD est basé sur le théorème fondamental de l'algèbre
des fonctions binaires, qui dit que toute fonction binaire à
n variables peut se mettre sous forme d'une somme de
produits ou d'un produit de sommes.
Ainsi les PLD contiennent au moins deux parties:
une qui réalise les produits (matrice AND),
une qui réalise les sommes (matrice OR).
CPLD, FPGA et VHDL- Pr. Salaheddine
21
KHAMLICH
Structure des PLD
La figure suivante représente une matrice PLD à 3
entrées et 4 sorties
Les matrices AND et OR représentent le noyau des composants PLD.
CPLD, FPGA et VHDL- Pr. Salaheddine
22
KHAMLICH
PLD
PAL GAL EPLD FPGA
TYPE Nombre de portes Matrice ET Matrice OU Effaçable
intégrées
PROM 2 000 à 500 000 Fixe Programmable Non
PAL 10 à 100 Programmable Fixe Non
GAL 10 à 100 Programmable Fixe Electriquement
CPLD 100 à 100.000 Programmable Fixe Aux U-V
Electriquement
FPGA 100.000 à 6.000.000 Programmable Programmable Electriquement
Non
CPLD, FPGA et VHDL- Pr. Salaheddine 23
KHAMLICH
3
15/02/2023
La programmation de circuits logiques
Plusieurs solutions sont possibles pour programmer les PLD.
Elles dépendent essentiellement de l’outil de développement
utilisé.
Logigramme (Schéma logique)
Langage ABEL.
Langage VHDL.
Langage Verilog
Etc.
CPLD, FPGA et VHDL- Pr. Salaheddine 24
KHAMLICH
PAL
Programmable Array Logic
Réseau Logique
Programmable
CPLD, FPGA et VHDL- Pr. Salaheddine
25
KHAMLICH
PAL
ASIC
CUSTOM SEMI-CUSTOM
Circuits Circuits Circuits Circuits
sur mesure précaractérisés prédiffusés configurables
Full Standart Sea of Gate
FPGA CPLD PAL
Custom gate array
cell
SRAM Antifuse
PAL : Programmable Array Logic
CPLD, FPGA et VHDL- Pr. Salaheddine
26
KHAMLICH
4
15/02/2023
Structure de base d’un PAL
b a
Matrice de ET réalisant 1 1 1 1
tous les produits &
possibles (maxtermes)
connectée aux sorties &
par des OU
&
Grande surface de Si &
utilisée. Ces circuits ne
sont plus utilisés
aujourd’hui >1 >1
Q0 Q1
PAL PAL
CPLD, FPGA et VHDL- Pr. Salaheddine
27
KHAMLICH
Architecture générale des PALs
Chaque croix représentant un
fusible
La programmation du circuit
consiste à supprimer certaines
des connexions marquées
d’une croix.
CPLD, FPGA et VHDL- Pr. Salaheddine
28
KHAMLICH
PAL
Fusibles
Les fonctions ET sont programmables
CPLD, FPGA et VHDL- Pr. Salaheddine
29
KHAMLICH
5
15/02/2023
PAL réalisant un XOR
Fusible intact
Fusible détruit
Exemple d’un OU EXCLUSIF
Rq. : la programmation de ce type de circuit passera par la création, par outil logiciel, d’un fichier
JEDEC (*.jed) qui contiendra la liste des fusibles à éliminer. 30
CPLD, FPGA et VHDL- Pr. Salaheddine KHAMLICH
PAL
Convention de notation
Fusible claqué
S = (a . c) + (b . d).
CPLD, FPGA et VHDL- Pr. Salaheddine fusible non claqué
31
KHAMLICH
PAL
Programmable Array Logic
A
B
matrice
C
ET
D programmable
S0
matrice
S1
OU
figée S2
S3
somme de produits = Macrocellule
liaison non programmable
liaison programmable
CPLD, FPGA et VHDL- Pr. Salaheddine
32
KHAMLICH
6
15/02/2023
Structure de base avec les normes des constructeurs
.
b a b a
: Fusible intact : Fusible intact
Q0 Q1 Q 0 a. b a. b Q1 a. b a .b
Q0 Q1
Q 0 Q1 a.b.a.b a.b.a.b a.b.a.b a.b.a.b 0
Fig1: PLD ayant ses fusibles intacts Fig2: PLD programmé
CPLD, FPGA et VHDL- Pr. Salaheddine
33
KHAMLICH
Exemple 1: Réaliser le DÉMUX suivant avec un PAL
On a comme sorties les DéMUX :
01 00
1
X
0
1 00
1
X
0
1 01
0
00
1
CPLD, FPGA et VHDL- Pr. Salaheddine
34
KHAMLICH
PAL
CPLD, FPGA et VHDL- Pr. Salaheddine
35
KHAMLICH
7
15/02/2023
Technologie de programmation
pour assurer la programmation d'un circuit, une
table des fusibles indiquant l’état de chaque
fusible doit être transférée dans le
programmateur. La table est transférée au format
JEDEC.
CPLD, FPGA et VHDL- Pr. Salaheddine
36
KHAMLICH
Technologie de programmation
La programmation de ces circuits s’effectue par destruction de fusibles en
appliquant à leurs bornes une tension de 11,5 V.
37
•Cette opération est bien sûr effectuée en utilisant un programmateur adapté.
PROMs
38
8
15/02/2023
PROMs
Les PROM sont des mémoires mortes programmables.
Table de vérité d’un décodeur:
a1 a0 s3 s2 s1 s0
0 0 0 0 0 1
0 1 0 0 1 0
1 0 0 1 0 0
1 1 1 0 0 0
0 0
0 1
1 0
1 1 39
PROMs
Le contenu de la mémoire PROM:
40
PLA (FPLAs)
• PLA (FPLAs)
Programmable Logic Array (Field
Programmable Logic Array)
41
9
15/02/2023
Exemple 2
Donnez les résultats des fonctions F1 et F2
A B C Programmable switch or fuse
F1
OR plane
F2
AND plane
CPLD, FPGA et VHDL- Pr. Salaheddine
42
KHAMLICH
Exemple 3
1. Trouver l’équation de Q0 et Q1.
2. En rouge réaliser sur le schéma les équations suivantes :
Q0 = ( /a .b ) + ( a . b ) + /b
Q1 = ( b . /b) + a + /aCPLD, FPGA et VHDL- Pr. Salaheddine 43
KHAMLICH
Exemple 4
Soit le schéma ci-dessous. Réaliser les connections pour avoir l’équation
LCDFM valide.
H1
1
H2
1
HC
1
&
1
&
&
& LCDFM
&
HF
1
LCDFM = H1 * H2 * HF * LF
LF
1 + H1 * LC
LC + H1 * H2 * LC
1 + H1 * HF * LC
+ H1 * LF * LC
HC
/HC
LC
/LC
H1
/H1
H2
/H2
HF
/HF
LF
/LF
CPLD, FPGA et VHDL- Pr. Salaheddine
44
KHAMLICH
10
15/02/2023
Exemple 5
Y = x2+1 , où x est un nombre binaire codé sur 2 bits, et y un nombre
codé sur 4 bits.
a ) Pour cela, compléter la table de vérité de cette fonction :
b ) Donner les expressions des bits de y.
Quels fusibles faut-il griller pour réaliser cette fonction (barrer les
fusibles à détruire) ?
Table de vérité:
X (AB) x2 Y
(s3s2s1s0)
00 0000 0001
01 0001 0010
10 0100 0101
11 1001 1010
CPLD, FPGA et VHDL- Pr. Salaheddine 45
KHAMLICH
Exemple 6: Multiplexeur 2 vers 1
Donner l’expression de la sortie Y en fonction des entrées
A et B et du signal de sélection S,
- a) en effectuant une synthèse sur les 1, ( expression sous la
forme d’une somme de produits),
CPLD, FPGA et VHDL- Pr. Salaheddine 46
KHAMLICH
Exemple 6: Table de vérité de MUX 2 vers 1
CPLD, FPGA et VHDL- Pr. Salaheddine 47
KHAMLICH
11
15/02/2023
Exemple 6: Table de KARNAUGH
CPLD, FPGA et VHDL- Pr. Salaheddine
48
KHAMLICH
Exemple 6: Table de KARNAUGH
CPLD, FPGA et VHDL- Pr. Salaheddine
49
KHAMLICH
Exemple 6: Table de KARNAUGH
CPLD, FPGA et VHDL- Pr. Salaheddine
50
KHAMLICH
12
15/02/2023
Exemple 6: Multiplexeur 2 vers 1
2-Etablir le schéma logique du multiplexeur 2
vers 1 en utilisant le circuit PAL.
51
CPLD, FPGA et VHDL- Pr. Salaheddine KHAMLICH
13