Академический Документы
Профессиональный Документы
Культура Документы
Module
Circuits logiques programmables
& électronique numérique
Chapitre 4:
Circuits Logiques Programmables
(PLD: Programmable Logic Devices
1/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
Plan de l’exposé:
Introduction.
2/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
Circuits programmables Circuits programmables FPGA: Architecture et
Introduction
pour systèmes combinatoire pour systèmes séquentiels Flot de conception
Système numérique
• Combinatoire
• Séquentiel
3/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
Entrées Sorties
EN-1 EN-2 … Ei ..…E1 E0 SM-1 SM-2 … Sj .….S1 S0
0 0 …………. 0 0 bJ,0
2N combinaisons
0 0 …………. 0 1 bJ,1
. ..
....
.
1 1 ……...……1 1 bJ,2N-1
4/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
Circuits programmables Circuits programmables FPGA: Architecture et
Introduction
pour systèmes combinatoire pour systèmes séquentiels Flot de conception
Les Mémoires : structure
Adresses Données
(entrées) (sorties) Ceci correspond exactement à une table
A2 A1 A0 D3 D2 D1 D0
de vérité:
(0) 0 0 0 …………..
A2
(1) 0 0 1 …………
A1 • Les sorties sont les données contenues
(2) 0 1 0
A0 dans la case mémoire correspondant à
(3) 0 1 1
l’adresse (entrées)
(4) 1 0 0
(5) 1 0 1
(6) 1 1 0
(7) 1 1 1
S0 DP
S1 G
E3 S2 F
Décodeur S3 Entrées BCD Sorties décodeur BCD/7 segments
E2 E Aff.
E1 BCD/7 Seg S4 D D C B A a b c d e f g DP
E0 S5 C
0 0 0 0 1 1 1 1 1 1 0 0
S6 B
S7 A 0 0 0 1 0 1 1 0 0 0 0 0
0 0 1 0 1 1 0 1 1 0 1 0
0 0 1 1 1 1 1 1 0 0 1 0
0 1 0 0 0 1 1 0 0 1 1 0
0 1 0 1 1 0 1 1 0 1 1 0
0 1 1 0 0 0 1 1 1 1 1 0
0 1 1 1 1 1 1 0 0 0 0 0
1 0 0 0 1 1 1 1 1 1 1 0
1 0 0 1 1 1 1 0 0 1 1 0
6/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
Circuits programmables Circuits programmables FPGA: Architecture et
Introduction
pour systèmes combinatoire pour systèmes séquentiels Flot de conception
Les Mémoires: utilisation pour système combinatoire (2/2)
On a un circuit à 4 entrées et 8 sorties (7 segments + point virgule)
Adresses Données
9 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0
(0) 0 0 0 0 1 1 1 1 1 1 0 0 On a besoin d’une mémoire
(1) 0 0 0 1 0 1 1 0 0 0 0 0
1 A3 • 4 lignes d’adresses
(2) 0 0 1 0
0 A2 (3) 0 0 1 1
• et 8 lignes de données
0 A1 (4) 0 1 0 0
1 A0 (5) 0 1 0 1
(6) 0 1 1 0
(7) 0 1 1 1
(8) 1 0 0 0
(9) 1 0 0 1 1 1 1 0 0 1 1 0
………………… X X …………………..
D7 D6 D5 D4 D3 D2 D1 D0
DP 0
G 1
F 1
E 0
D 0
C 1
B 1
A 1
7/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
F0 = (A./B.C) + (A.B./C)
F1 = (/A.B./C) + (A.B.C) A.B.C
10/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
Circuits programmables Circuits programmables FPGA: Architecture et
Introduction
pour systèmes combinatoire pour systèmes séquentiels Flot de conception
Représentation schématique d’un PLA (1/2)
Pour présenter l’architecture du circuit d’une manière plus simple, on utilise la
représentation schématique suivante (chaque point au niveau des croisements désigne un
Fusible intact et l’absence du point implique un Fusible grillé).
11/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
A./B.C
A.B./C
/A.B./C
A.B.C
/A./B./C
12/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
Circuits programmables Circuits programmables FPGA: Architecture et
Introduction
pour systèmes combinatoire pour systèmes séquentiels Flot de conception
PAL: Programmable Array Logic
• On trouve également des circuits PAL (Programmable Array Logic ) qui ont la même
structure interne qu’un PLA, mais avec une matrice OR figée ( Les connexions entre les
sorties de la matrice AND et les entrées des portes OR sont fixes )
Connexions programmables
(fusibles)
Connexions fixes
13/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
• Les mémoires (telles que les PROM) peuvent être considérées comme étant un PLA
avec une matrice AND figée (décodeur 1/N) et une matrice OR programmable.
On a ainsi, les 3 solutions possibles :
14/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
Circuits programmables Circuits programmables FPGA: Architecture et
Introduction
pour systèmes combinatoire pour systèmes séquentiels Flot de conception
SPLD: Sequentiel Programmable Logic Device
Pour l’implémentation de systèmes séquentiels, il suffit d’ajouter aux circuits permettant
d’implémenter la partie combinatoire (PAL, PLA), des bascules (élément de
mémorisation).
Mais, il existe des circuits qui intègrent en plus des matrices AND et OR,
une bascule au niveau de chaque sortie: il s’agit de Sequentiel PLD (SPLD).
SPLD
(PAL (PLA) + Bascules)
15/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
Même avec les SPLD, le nombre d’équations pouvant être implémenté reste limité
(quelques dizaines)
Ainsi, des circuits CPLD ont été proposées: un circuit qui contient des
dizaines de SPLD et une matrice d’interconnexion programmable.
Bloc Bloc
I/O Matrices d’interconnexion
I/O
Un CLB contient :
De la logique combinatoire configurable sous forme d’un certain nombre de LUTs
(Look Up Tables) à N entrées .
Une LUT étant une mémoire à N lignes d’adresses et 1 ligne de données
Remarque:
• Le nombre des LUTs et leur taille , le nombre de bascules ainsi que l’architecture interne dans un CLB
changent d’un FPGA à un autre.
• Mais le principe reste le même
18/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
Circuits programmables Circuits programmables FPGA: Architecture et
Introduction
pour systèmes combinatoire pour systèmes séquentiels Flot de conception
FPGA: structure
Structure d’un CLB d’un FPGA de la famille XC4000 de Xilinx
19/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
20/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
Circuits programmables Circuits programmables FPGA: Architecture et
Introduction
pour systèmes combinatoire pour systèmes séquentiels Flot de conception
Étude de l’architecture simplifiée et fonctionnement d’un FPGA (1/4 )
Considérons cette architecture d’un FPGA (2*2) contenant:
• 4 CLBs
• 4 Matrices de connexion permettant de router:
- Les entrées externes du FPGA vers les entrées des CLBs
- Les sorties des CLBs vers les entrées des autres CLBs
- Les sorties des CLBs vers les sorties externes du FPGA.
21/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
Le fonctionnement désiré du CLB est assuré en fixant les valeurs des bits :
• Les contenus des LUTs
• Les bits de contrôle des MUX et DMUX.
L’ IM 1 permet de connecter les entrées externes aux entrées des Luts en fonction des
valeurs des bits de configuration ( )
25/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
BITSTREAM
On essaiera par la suite de faire manuellement le travail réalisé par les outils.
26/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
Circuits programmables Circuits programmables FPGA: Architecture et
Introduction
pour systèmes combinatoire pour systèmes séquentiels Flot de conception
Flot de conception : exemple à traiter
Considérons ce schéma en portes logiques (système combinatoire) , et essayons de faire
manuellement les tâches réalisées par les outils afin d’implémenter l’architecture sur le
FPGA (2*2) étudié précédemment.
Sorties
Entrées
27/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
F = fct (A,B,C)
S1 = fct (F,D)
S2 = fct (C,D,E)
28/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
Circuits programmables Circuits programmables FPGA: Architecture et
Introduction
pour systèmes combinatoire pour systèmes séquentiels Flot de conception
Flot de conception: placement & routage
A
S2
B
C
Dans notre cas, D
la décision est E
On va déterminer les bits de configuration relatifs au 1er Sous-circuit F = fct (A, B, C).
30/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
Circuits programmables Circuits programmables FPGA: Architecture et
Introduction
pour systèmes combinatoire pour systèmes séquentiels Flot de conception
Flot de conception: Génération du Bitstream (2/2)
A B C F
11
0 0 0 0
• On commence par les bits A
0 0 1 1 10
0 1 0 1
de configuration du LUT: 0
1
1
0 1 1 1 il s’agit de reproduire les B 1
01 1 1
1 0 0 0 valeurs de la sortie de la 0
1
1 0 1 1 table de vérité. 1
1 1 0 1
C 0
1 1 1 0
Remarque: Les Bitstreams générés par les outils ont un format bien défini par le constructeur du FPGA.
31/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
VHDL
(voir chap 3)
‘Front end’
Netlist
(schéma en portes Logiques)
Génération du BITSTREAM
configuration du FPGA
Test
In circuit
OK 32/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI
Autre chose !!
Les tailles des FPGAs sont devenus assez importantes et permettent ainsi
d’implémenter des systèmes complexes (MPSOC).
Un processeur implémenté sur un FPGA (donc sous forme d’un ensemble de CLBs)
est appelé Soft Processor ou Soft-Core Processor .
Une mémoire construite avec des CLBs est appelée Distributed RAM.
En plus des CLBs, on peut trouver dans les familles actuelles des FPGAs, des circuits
hard-coded (implémentés directement sur le FPGA sans utilisation de CLBs):
- Des Blocs mémoires BRAM (Jusqu’à 16 Mbits pour un Virtex5).
- Des multiplieurs (Jusqu’à 104 pour un spartan III).
- Et même des Processeurs. Dans ce cas, on parle de Hard
Processor ou Hard-coded Processor (La famille Virtex5F comporte 4 Hard-coded 200
MHZ PowerPC processors, en plus des CLBs évidément)
33/61
Chapitre 2: Programmable Logic Devices - Emir DAMERGI