Université de Carthage SEIOT2
FSB - Dép. Info.
Conception des circuits
logiques
& Synthèse VHDL
Abdelaziz Sahbani
Textbooks
2
Contacts
▪ Google Classroom :
• Espace de cours : VHDL
• Code :rpml5kt
▪ Emails :
• [Link]@[Link]
3
Objectifs du module
Au terme de ce module, les étudiants seront capables de :
▪ Acquérir une connaissance approfondie des concepts de base des circuits
programmables
▪ Comprendre l'architecture interne des FPGA, les blocs logiques programmables, les
interconnexions, et le processus de programmation des FPGA.
▪ Maîtriser l'utilisation des langages de description matérielle tels que VHDL
▪ Apprendre à concevoir des circuits numériques en utilisant les outils de conception
de circuits programmables, en mettant l'accent sur la logique combinatoire et
séquentielle.
▪ S’engager dans un projet pratique où ils auront l'occasion de concevoir, programmer
et tester un système embarqué utilisant des circuits programmables, mettant ainsi
en pratique les connaissances acquises.
▪ Comprendre comment intégrer différents périphériques et interfaces dans un
système embarqué, en mettant l'accent sur la communication entre les composants
matériels.
4
Plan du module
Chapitre 1 : Les circuits logiques programmables
▪ Structure de base d’un PLD
▪ Différentes familles de PLD VHDL
▪ Architecture interne d'un FPGA
Chapitre 2 : Introduction au langage VHDL
▪ Introduction à la Machine learning
▪ Apprentissage Supervisé
❑ La régression
❑ La classification
▪ Apprentissage non supervisé
5
▪ Application (construction d’un modèle de la ML) 5
Plan du module
Chapitre 3 : Machines d'État avec VHDL
▪ Introduction
▪ Types de Machines d'État VHDL
❑ Machine de Mealy
❑ Machine de Moore
▪ Modélisation de problèmes mathématiques et réels par
Machines à états
▪ Implémentation de machines à états finis en VHDL
▪ Exemple Concret de Machine d'État en VHDL
Implémentation Pratique
6
6
Chapitre 1 :
LES CIRCUITS LOGIQUES
PROGRAMMABLES
Objectifs du chapitre
Au terme de ce chapitre, les étudiants seront capables de :
▪ Se familiariser avec les concepts de base des circuits programmables , y
compris les FPGA (Field-Programmable Gate Arrays) et les CPLD (Complex
Programmable Logic Devices).
▪ Comprendre l'architecture interne des FPGA, les éléments logiques
configurables, les ressources de mémoire et les blocs spécifiques, ainsi que
leur rôle dans la programmation des circuits.
8
Plan du chapitre
▪ Définition d’un PLD
▪ Structure de base d’un PLD
▪ Différentes familles de PLD
❑ PALs : Programmable Array Logic
• PAL 16L8
• PAL 16R8
❑ GALS : Generic Array Logic
▪ CPLD : Complex Programmable Logic Devices
▪ FPGA : Field Programmable Gate Array
▪ Architecture interne d'un FPGA
9
Introduction
▪ Le développement des mémoires utilisées en informatique fut à l’origine des
premiers circuits logiques programmables (PLD : programmable logic device)
▪ La plupart des PLDs suivent la structure suivante :
❑ Un ensemble d’opérateurs « ET » sur lesquels viennent se connecter les variables
d’entrée et leurs compléments.
❑ Un ensemble d’opérateurs « OU » sur lesquels les sorties des opérateurs « ET »
sont connectées.
❑ Une éventuelle structure de sortie (Portes inverseuses, logique 3 états, registres...).
Les deux premiers ensembles forment chacun ce qu’on appelle une matrice.
Les interconnexions de ces matrices doivent être programmables.
Elles sont assurées par des fusibles qui sont « grillés » lors de la programmation.
Lorsqu’un PLD est vierge toutes les connexions sont assurées.
10
Structure de base d’un PLD
Structure de base avec les normes
des constructeurs
PLD programmé
Q0 = a.b + a.b Q1 = a.b + a.b
Structure de base d’un PLD 11
Différentes familles de PLD
▪ Il existe plusieurs familles de PLD qui sont différenciées par leur structure
interne. Le tableau suivant présente certaines de ces familles.
TYPE Nombre de portes Matrice ET Matrice OU Effaçable
PROM intégrées
2 000 à 500 000 Fixe Programmable Non
PAL 10 à 100 Programmable Fixe Non
GAL 10 à 100 Programmable Fixe Electriquement
EPLD 100 à 3000 Programmable Fixe Aux U-V
FPLA 2000 à 3000 Programmable Programmable Electriquement
▪ Certaines de ces familles possèdent en plus des matrices « ET » et « OU », de
la logique séquentielle (Bascules « D », « JK »...) placée après les entrées ou
avant les sorties du PLD.
12
PALs : Programmable Array Logic
▪ Ils possèdent des matrices « ET » programmables et des
matrices « OU » fixes.
▪ La fusion des fusibles est obtenue en appliquant à leurs I/O
bornes une tension de 11,5 V pendant 10 à 50 µS (leur
tension de fonctionnement est environ de 5V).
▪ Certaines broches de ces circuits peuvent être utilisées
aussi bien en entrée qu’en sortie grâce à un système de Configuration des entrées/sorties
logiques 3 états. La commande de cette dernière est
configurée au moment de la programmation.
▪ Selon le type de PAL la structure de sortie peut être
constituée d’une porte « NON», d’une porte « OU »
Exclusive, d’une bascule « D » ou d’une combinaison des
trois.
13
Structure de base d’un PAL
Exemple : PAL 16L8
▪ Ce type de circuit est uniquement constitué de logique combinatoire. Il
possède 20 broches agencées de la façon suivante :
❑ 10 broches configurables uniquement en entrée
❑ 2 broches configurables uniquement en sortie
❑ 6 broches configurables en entrée et en sortie
Brochage du PAL 16L8
14
Exemple : Le PAL 16R8
15
Brochage du PAL 16R8
GALS : Generic Array Logic
▪ L’inconvénient majeur des PALs est qu’ils ne sont programmables qu’une
seule fois → Remplacer les fusibles irréversibles des PALs par des transistors
MOSFET pouvant être régénérés
▪ Un circuit GAL est un composant PAL reprogrammable
▪ Il contient la même architecture ET-OU qu' un élément PAL
Macro-cellule OLMC du GAL 16V8
16
Circuit GAL simplifié brochage du 16V8
CPLD : Complex Programmable Logic Devices
▪ Les ROMs, PLAs, PALs et GALs sont parfois appelés des circuits logiques
programmables simples (Simple Programmable Logic Devices –SPLD).
▪ Un CPLD incorpore donc plusieurs PALs ou PLAs sur une seule puce avec un
réseau d’interconnexions.
PAL ou PLA PAL ou PLA
E/S MATRICE D’INTERCONNECTIONS E/S
PAL ou PLA PAL ou PLA
PAL
17
Architecture de base d’un CPLD
FPGA : Field Programmable Gate Array
▪ Un circuit FPGA (Field Programmable Gate Array) est un type de circuit
logique programmable, souvent utilisé pour l’implémentation de systèmes
numériques :
❑ lorsque l’application à développer est complexe,
❑ lorsque l’utilisation d’un microcontrôleur classique présente des limites.
▪ Un FPGA est composé à la base de :
❑ un réseau de blocs de logique programmable (Configurable Logic Block CLB)
❑ un réseau d’interconnexions programmables entre les blocs
❑ des blocs spéciaux d’entrée et de sortie avec le monde extérieur (Input/Output
Block – IOB).
18
Classification des FPGA selon leur Architecture Interne
▪ Les FPGA peuvent être classés en différentes catégories en fonction de leur
architecture interne : Fabricants Architecture
Symmetrical Array (Matrice Symétrique) Column-Base Architecture (Architecture en Colonne) Altera (Intel)
Interconnexions
Symétrique
Cyclone
Symétrique /
Altera (Intel) Arria
Hiérarchique
Altera (Intel) Stratix Hiérarchique
Actel (Microchip)
Mers de Portes
IGLOO
Configurable Logic
Block ( CLB ) Actel (Microchip) Hybride (FPGA +
SmartFusion ARM)
Bloc PLD
Symétrique /
Xilinx Spartan
Les Interconnexions Hiérarchique
sont superposées sur Xilinx Artix Symétrique
des blocs logiques Interconnexion
Xilinx Kintex et
Hiérarchique
Xilinx Virtex
19
Sea of Gates (Mers de Portes) Hierarchical PLD (PLD Hiérarchique)
Architecture interne d'un FPGA (1/8)
▪ Un exemple de structure interne d'un FPGA de type matrice symétrique
(l'architecture adoptée par les FPGA de la série XC4000 de Xilinx)
20
Architecture interne d'un FPGA (2/8)
1. Blocs de Logique Configurable (CLB - Configurable Logic Blocks):
▪ Les CLBs constituent la partie centrale de l'architecture CLB
d'un FPGA. A
B
▪ Chaque CLB contient un ensemble de Look-Up Tables C
LUT MUX
O/P
(LUTs) configurables, de Flip-Flops, de multiplexeurs et D
pour certain fabricant un additionneur complet ( FA) CLK
D-Flip
▪ Les LUTs permettent la mise en œuvre de fonctions Flop
logiques complexes,
▪ Les Flip-Flops servent à stocker les résultats Rst
FPGA Logic Block
intermédiaires.
Carry in CLK
CLB
A
B 3-LUT FA MUX
O/P
C MUX
D D-Flip
Flop
3-LUT MUX
FPGA Logic Block 21
Carry out CLK
Architecture interne d'un FPGA (3/8)
Look-Up Tables (LUTs) :
▪ LUT est composée de cellules mémoire, SRAM, de 1 bit (programmables pour contenir soit 0
soit 1) et d’un ensemble de multiplexeurs.
▪ Le nombre d’entrées disponibles pour une LUT détermine Exemple
sa taille.
▪ LUT avec n entrées comprend 2n cellules mémoire de 1 bit
3-LUT S
B
𝑆 = 𝐴.ҧ 𝐵.
ത 𝐶ҧ + 𝐴. 𝐵.
ത 𝐶ҧ + 𝐴.ҧ 𝐵. 𝐶 + 𝐴. 𝐵. 𝐶
22
SRAM (Static Random Access Memory) est un type de mémoire vive utilisant des bascules pour mémoriser les données
Architecture interne d'un FPGA (4/8)
2. Bloc d’entrée/sortie (IOB)
▪ Utilisés pour assurer la communication entre
le circuit FPGA et d’autres périphériques
d’entrée/sortie.
▪ Les ports d'entrée/sortie des circuits FPGA
sont entièrement programmables:
❑ inversion ou non du signal avant son
application à l’IOB
❑ synchronisation du signal sur des fronts
montants ou descendants d'horloge,
❑ mise en place d'un " pull-up " ou " pull-
down " dans le but de limiter la
consommation des entrées sorties
inutilisées,
❑ signaux en logique trois états ou deux
états. Exemple des IOB XC4000 de XILINX 23
Architecture interne d'un FPGA (5/8)
3. Les interconnexions
Leur rôle est de définir une direction entre les différents blocs logiques
programmable, dans l’objectif de pour mettre en œuvre la logique définie
par l’utilisateur.
4. Matrice de commutation (Switch Matrix :SM)
Les Matrice de commutation (SM) assure une éventuelle commutation entre
les interconnexions de façon à assurer la logique définie par l’utilisateur.
24
Architecture interne d'un FPGA (6/8)
Blocs DSP (Traitement du Signal Numérique) :
Les FPGA avancés incluent souvent des blocs DSP dédiés. Ces blocs sont optimisés pour effectuer des
opérations de traitement du signal numérique telles que les multiplications et les accumulations de manière
efficace. Ils sont particulièrement utiles dans les applications nécessitant un traitement intensif du signal, comme
le traitement d'images ou de vidéos.
Modules Spécialisés (IP Blocks) :
Certains FPGA permettent l'intégration de modules spécialisés prédéfinis appelés IP Blocks (Intellectual
Properties). Ces modules peuvent inclure des processeurs embarqués, des contrôleurs de communication, des
interfaces standard, etc. L'intégration de ces modules facilite le développement de systèmes complexes.
Gestion de l'Alimentation :
Les FPGA intègrent souvent des circuits de gestion de l'alimentation pour optimiser la consommation d'énergie.
Cela peut inclure des modes de veille, des ajustements dynamiques de la fréquence d'horloge, et d'autres
techniques avancées pour économiser l'énergie lorsque cela est possible.
25
Architecture interne d'un FPGA (7/8)
Exercice :
Schématiser la structure interne d’un LUT (à base des multiplexeurs 2 vers 1) pour
avoir l’équation logique suivante :
𝐹 = 𝑥3 . 𝑥2 . 𝑥1 + 𝑥3 . 𝑥2 . 𝑥1 + 𝑥3 . 𝑥2 . 𝑥1 + 𝑥3 . 𝑥2 . 𝑥1
26
Architecture interne d'un FPGA (8/8)
Solution de l’exercice : Schématiser la structure interne d’un LUT (à base des multiplexeurs 2 vers 1)
pour avoir l’équation logique suivante : 𝐹 = 𝑥3 . 𝑥2 . 𝑥1 + 𝑥3 . 𝑥2 . 𝑥1 + 𝑥3 . 𝑥2 . 𝑥1 + 𝑥3 . 𝑥2 . 𝑥1
27
SEIOT2
Merci pour votre
attention
VHDL
Des questions ?