Fonction Traiter – Programmation des PLDs
Sciences d’Ingénieur – 2ème BAC STE
Introduction
Les PLDs (Programmable Logic Devices) sont des circuits intégrés reconfigurables permettant d’implémenter des fonctions logiques complexes. Ils sont largement utilisés dans les systèmes numériques modernes.
1. Types de PLDs
1.1 Classification
PLDs simples
- PAL (Programmable AND, Fixed OR)
- GAL (Generic Array Logic)
PLDs complexes
- CPLD (Complex PLD)
- FPGA (Field-Programmable Gate Array)
1.2 Caractéristiques comparées
Type | Complexité | Technologie |
---|---|---|
PAL | Faible | Fusibles |
GAL | Moyenne | EEPROM |
FPGA | Élevée | SRAM/Flash |
2. Structure des GAL
2.1 Architecture de base
2.2 Cellule logique typique
Exemple GAL16V8 :
- 16 entrées (dont 8 dédiées)
- 8 sorties logiques macrocells
- 32 termes produits (AND)
- 8 registres (optionnels)
3. Langages de description matérielle
3.1 VHDL vs Verilog
VHDL
- Plus verbeux
- Typage fort
- Standard IEEE 1076
Verilog
- Syntaxe proche du C
- Plus concis
- Standard IEEE 1364
3.2 Exemple en VHDL
entity porte_et is
port (
a, b: in std_logic;
s: out std_logic
);
end porte_et;
architecture comportement of porte_et is
begin
s <= a and b;
end comportement;
port (
a, b: in std_logic;
s: out std_logic
);
end porte_et;
architecture comportement of porte_et is
begin
s <= a and b;
end comportement;
4. Flux de conception
4.1 Étapes de programmation
4.2 Outils courants
- Xilinx ISE/Vivado (FPGA)
- Altera Quartus (CPLD/FPGA)
- Lattice Diamond
- Logiciel WinCUPL (GAL)
5. Programmation en CUPL
5.1 Structure d’un fichier CUPL
/* Exemple pour GAL16V8 */
Name Exemple1 ;
PartNo 00 ;
Date 01/01/2023 ;
Revision 01 ;
Designer SI ;
Company Lycée ;
Assembly None ;
Location None ;
Device g16v8 ;
/* Déclaration des broches */
Pin 1 = A ;
Pin 2 = B ;
Pin 12 = S ;
/* Équations logiques */
S = A & B ; /* Porte ET */
Name Exemple1 ;
PartNo 00 ;
Date 01/01/2023 ;
Revision 01 ;
Designer SI ;
Company Lycée ;
Assembly None ;
Location None ;
Device g16v8 ;
/* Déclaration des broches */
Pin 1 = A ;
Pin 2 = B ;
Pin 12 = S ;
/* Équations logiques */
S = A & B ; /* Porte ET */
5.2 Exemples d’équations
Fonction | Équation CUPL |
---|---|
ET | S = A & B; |
OU | S = A # B; |
Décodeur | S0 = !A & !B; S1 = !A & B; |
6. Applications pratiques
6.1 Exemple de système
6.2 Avantages des PLDs
Avantages
- Flexibilité
- Temps de développement réduit
- Intégration élevée
Limitations
- Coût unitaire
- Consommation
- Performance
Exercice d’application
Implémenter dans un GAL16V8 un système avec :
– 3 entrées A, B, C
– 1 sortie S = (A ET B) OU (nonB ET C)
1. Écrire le fichier CUPL correspondant
2. Dresser la table de vérité