Cours
Circuits logiques programmables :
PLD
Chapitre 3
Chapitre 3 :Circuits logiques programmables : PLD
Les circuits programmables PLD
Chapitre 3 :Circuits logiques programmables : PLD
Chapitre 3 :Circuits logiques programmables : PLD
Chapitre 3 :Circuits logiques programmables : PLD
Chapitre 3 :Circuits logiques programmables : PLD
VHDL (VHSIC Hardware Description Language)
Chapitre 3 :Circuits logiques programmables : PLD
Chapitre 3 :Circuits logiques programmables : PLD
Les tâches et les processus
s'exécutent simultanément
Les tâches et les opérations
s'exécutent en séquence
Chapitre 3 :Circuits logiques programmables : PLD
Chapitre 3 :Circuits logiques programmables : PLD
 Circuits logiques programmables : PLD
Un circuit logique programmable (réseau logique programmable): est un circuit intégré qui
fonctionne de manière logique et qui permet sa reprogrammation à volonté même après sa
fabrication.
Chapitre 3 :Circuits logiques programmables : PLD
 Circuits logiques programmables : PLD
• La plupart de ces composants sont constitués d'une matrice d'opérateurs ET qui génère les
produits des variables d'entrées et de leurs compléments et d'une matrice d'opérateurs OU qui
somme les produits.
D'après le cours de systèmes logiques : Toute fonction logique se représente sous forme d'une
expression de somme de produits ou de produit sommes.
Chapitre 3 :Circuits logiques programmables : PLD
 Circuits logiques programmables : PLD
On utilise une représentation compacte des portes logiques avec plusieurs entrées.
Chapitre 3 :Circuits logiques programmables : PLD
 Circuits logiques programmables : PLD
• Réalisation de la matrice ET
On utilise le principe de portes ET à
diodes. La programmation s’effectue
grâce à des fusibles placés en série avec
des diodes.
Chapitre 3 :Circuits logiques programmables : PLD
 Circuits logiques programmables : PLD
• Réalisation de la matrice OU
On utilise le principe d’une porte OU à diode. La programmation se fait de la même manière
que pour le ET
Chapitre 3 :Circuits logiques programmables : PLD
Les PROM
Les PLE ou PROM (Programmable Logic Elements ou Programmable Read Only Memory)
Ces circuits disposent :
• D'une matrice ET fixé et complète. Donc le nombre de termes produits est égal à 2" pour n
entrées. La matrice ET a la structure d'un décodeur binaire à n bits.
• D'une matrice OU programmable.
• D'un circuit de sortie trois états à commande unique.
Chapitre 3 :Circuits logiques programmables : PLD
Type de ROM:
Il existe trois sorte de mémoire ROM, différenciées par leurs
technologies de programmation:
• PROM, programmable une seule fois,
• Une mémoire EPROM est programmable à plusieurs
reprises, et effaçable en exposant son réseau de connexions
à des rayons ultraviolets
• Les mémoires EEPROM et Flash sont similaires aux
mémoires EPROM, mais peuvent être effacées
électriquement (impulsions électriques), sans rayons
ultraviolets.
EPROM 32kB, STMicroelectronics M27C256B
Chapitre 3 :Circuits logiques programmables : PLD
• Mémoire morte programmable
(Programmable Read Only Memory – PROM)
une seule fois
(One Time Programmable – OTP).
• Une PROM consiste en :
- un décodeur avec n signaux d'entrée et 2"
sorties; - un réseau d'interconnexions
programmables entre 2" rangées et m
colonnes; et,
- m portes OU à 2" entrées.
On indique une connexion entre une ligne
horizontale et une ligne verticale par un
point.
Chapitre 3 :Circuits logiques programmables : PLD
 Décodeur
Un décodeur active une sortie unique qui correspond à la valeur du code binaire en entrée.
Chapitre 3 :Circuits logiques programmables : PLD
 PROM : exemple 1 – analyse des fonctions logiques réalisées
Donner les fonctions logiques réalisées par cette mémoire PROM.
Chapitre 3 :Circuits logiques programmables : PLD
F = A'BCD + AB'CD + ABC' D + ABCD'+ ABCD
= BCD+ ACD+ ABD+ ABC
Un comité composé de quatre personnes a besoin d’un mécanisme de vote secret pour les
amendements sur la constitution du comité. Un amendement est approuvé si au moins 3
personnes votent pour.
 Le problème du vote
Chapitre 3 :Circuits logiques programmables : PLD
 PROM : exemple 2 – implémentation d’une fonction logique
Programmer la PROM 16 × 8 pour implémenter le circuit du problème du vote. Étapes:
1. Choisir les ports d’entrée et de sortie.
2. Écrire les équations de sortie en somme de produits
3. Indiquer quelles connexions établir.
Chapitre 3 :Circuits logiques programmables : PLD
• Certaines fonctions logiques complexes peuvent être remplacées par des PROM, mais une
mémoire est en général trop grande et pas assez flexible pour bien convenir à la tâche.
Les PAL (1978) étaient plus efficaces que les PROM; ils pouvaient être programmés chez le
manufacturier ou une fois par l'utilisateur.
Réseaux de logiques programmable : PAL
Chapitre 3 :Circuits logiques programmables : PLD
 Circuits logiques programmables : PLD
• Les PAL (Programmable Array Logic)
La structure de base d’un PAL est l’opposée de celle d’une PROM. Il dispose d’une matrice ET
programmable et d’une matrice OU figée
Chapitre 3 :Circuits logiques programmables : PLD
 Les différents types de PAL
Exemple : PAL 12 H 6
Le PAL 12H6 comprend 12 entrées, 6 sorties dont 4 possèdent deux termes produits et deux
possèdent quatre termes produits.
Les PAL se différencient par :
• Le nombre d'entrées,
• Le nombre de fonctions de sortie
• Le nombre de termes produits par sortie
• La polarité des sorties.
• Les circuits à polarité de sortie directe:
Chapitre 3 :Circuits logiques programmables : PLD
• L’inconvénient majeur des PALs est qu’ils ne sont programmables qu’une seule fois. Ceci
impose un gaspillage important de ces circuits lorsqu’on veut développer un nouveau produit.
• Ceci a donc donné naissance aux GALs que l’on pourrait traduire par « Réseau logique
Générique ». Ces circuits peuvent donc être reprogrammés à volonté sans pour autant avoir une
durée de vie restreinte.
• On peut aussi noter que dans leur structure interne les GALs sont constitués de transistor
CMOS alors que les PALs classiques sont constitués de transistors bipolaires.
• LATTICE a équipé la plupart de ses GALs de macro cellules programmables permettant
d’émuler n’importe quel PAL. Ces structures de sortie sont donc du type « Versatile » (V).
LES GALS (GENERIC ARRAY LOGIC).
Chapitre 3 :Circuits logiques programmables : PLD
• REFERENCE DES GAL.
Le nombre de types de GAL est de 8.
Ils possèdent une structure de sortie soit du type « Versatile » soit du type « Registre asynchrone».
LES GALS (GENERIC ARRAY LOGIC).
* (1) : structure de sortie.
* (2) : Matrices « OU » et « ET » programmables.
* (3) : Circuit reprogrammable à tout moment par liaison série.
Chapitre 3 :Circuits logiques programmables : PLD
Les CPLD (Complex Programmable Logic Devices).
• Les ROMs, PLAs, PALs et GALs sont parfois appelés des circuits logique programmable
simples (Simple Programmable Logic Devices – SPLD).
Les CPLD sont une extension naturelle des circuits PAL. À mesure que leur complexité
grandissait, la taille des PALs était limitée par le nombre de pattes pouvant être placées sur la
puce. Un CPLD incorpore donc plusieurs PALs ou PLAs sur une seule puce avec un réseau
d’interconnexions. Le réseau permet de relier les pattes de la puce à différents blocs internes,
mais aussi à relier les blocs entre eux. Il est donc possible de composer des fonctions logiques
très complexes incluant des machines à états et de petites mémoires. Ces circuits ont une capacité
en nombre de portes et en possibilités de configuration très supérieure à celle des PALs. Leurs
architectures sont basées sur celles des PALS. Un CPLD c’est l’équivalent de plusieurs PALs
mis dans le même circuit associé à une zone d’interconnexion. Le nombres de portes peut varier
entre 100 et 100 000 portes logiques et entre 16 et 1000 bascules voir plus.
Chapitre 3 :Circuits logiques programmables : PLD
Les CPLD (Complex Programmable Logic Devices).
• Structure générale d’un CPLD
Chapitre 3 :Circuits logiques programmables : PLD
Les CPLD (Complex Programmable Logic Devices).
• Structure générale d’un CPLD
Architecture d’un CPLD de Xilinx
Le système comprend quatre blocs fonctionnels qui sont des PALs à 36 entrées et 16 sorties.
Les sorties proviennent de macro-cellules contenant un élément programmable à mémoire.
Le réseau d’interconnexions permet d’établir des connexions entre les blocs d’entrées
sorties, les blocs fonctionnels et les macro-cellules.
Chapitre 3 :Circuits logiques programmables : PLD
Les CPLD (Complex Programmable Logic Devices).
Détails d’un CPLD
On voit les 36 entrées en versions naturelle et complémentée qui alimentent 48 portes ET à
connexions programmables. Les 48 portes ET alimentent 16 portes OU à connexions
programmables. La macro-cellule permet d’activer ou non la bascule avec un signal naturel ou
complémenté. La cellule de sortie contient un tampon à trois états.
Chapitre 3 :Circuits logiques programmables : PLD
Les FPGA (Field Programmable Gate Array).
• Les FPGAs à la différence des CPLDs sont assimilables à des A.S.I.C. (Application
Specific Integrated Circuit) programmables par l’utilisateur. La puissance de ces
circuits est telle qu’ils peuvent être composés de plusieurs milliers voire millions de
portes logiques et de bascules qui peuvent être interconnectés.
• Les dernières générations de FPGA intègrent même de la mémoire vive (RAM). Les
deux plus grands constructeurs de FPGA sont XILINX et ALTERA.
• Ils sont composés de blocs logiques élémentaires (plusieurs milliers de portes) qui
peuvent être interconnectés.
Les blocs logiques sont plus nombreux et plus simples que pour les CPLDs, mais cette fois
les interconnexions entre les blocs logiques ne sont pas centralisées.
Chapitre 3 :Circuits logiques programmables : PLD
Les FPGA (Field Programmable Gate Array).
Structure d’un FPGA
Chapitre 3 :Circuits logiques programmables : PLD
Les FPGA (Field Programmable Gate Array).
Le passage d'un bloc logique à un autre se fera par un nombre de points de connexion
(responsables des temps de propagation) fonction de la position relative des deux blocs
logiques et de l'état "d'encombrement" de la matrice. Ces délais ne sont donc pas
prédictibles (contrairement aux CPLDs) avant le placement routage.
De la phase de placement des blocs logiques et de routage des connexions dépendront
donc beaucoup les performances du circuit en terme de vitesse. Sur la figure suivante, pour
illustrer le phénomène, on peut voir
• une liaison entre deux blocs logiques (BA et BL) éloignés, mais passant par peu de
points de connexion, donc introduisant un faible retard.
• une liaison entre deux blocs proches (BD et BH) mais passant par de nombreux points de
connexion, donc introduisant un retard important.
Chapitre 3 :Circuits logiques programmables : PLD
Les FPGA (Field Programmable Gate Array).
L'utilisation optimale des potentialités d'intégration d'un FPGA conduira à un routage délicat et
pénalisant en termes de vitesse. Il convient de noter que ces retards sont dus à l'interaction de la
résistance de la connexion et de la capacité parasite; cela n'a rien à voir avec un retard dû à la
propagation d'un signal sur une ligne tel qu'on le voit en haute fréquence.
Ces composants permettent une forte densité d'intégration. La petitesse des blocs logiques
autorise une meilleure utilisation des ressources du composant (au prix d'un routage délicat) Il
devient alors possible d'implanter dans le circuit des fonctions aussi complexes qu'un micro-
contrôleur. Ces fonctions sont fournies sous forme de programme (description VHDL du
composant) par le constructeur du composant et appelées "megafunction" ou "core". Le terme
générique classiquement utilisé pour les désigner est "propriété intellectuelle" ou IP (Intelectual
Property).
Les FPGAs utilisent généralement les technologies SRAM ou antifusible, selon les fabricants,
Xilinx utilisant la technologie SRAM et ACTEL tout comme ALTERA la technologie anti
fusible de préférence.

Chap_3_Circuits Programmablesééééééé.pdf

  • 1.
  • 2.
    Chapitre 3 :Circuitslogiques programmables : PLD
  • 3.
    Les circuits programmablesPLD Chapitre 3 :Circuits logiques programmables : PLD
  • 4.
    Chapitre 3 :Circuitslogiques programmables : PLD
  • 5.
    Chapitre 3 :Circuitslogiques programmables : PLD
  • 6.
    Chapitre 3 :Circuitslogiques programmables : PLD
  • 7.
    VHDL (VHSIC HardwareDescription Language) Chapitre 3 :Circuits logiques programmables : PLD
  • 8.
    Chapitre 3 :Circuitslogiques programmables : PLD
  • 9.
    Les tâches etles processus s'exécutent simultanément Les tâches et les opérations s'exécutent en séquence Chapitre 3 :Circuits logiques programmables : PLD
  • 10.
    Chapitre 3 :Circuitslogiques programmables : PLD  Circuits logiques programmables : PLD Un circuit logique programmable (réseau logique programmable): est un circuit intégré qui fonctionne de manière logique et qui permet sa reprogrammation à volonté même après sa fabrication.
  • 11.
    Chapitre 3 :Circuitslogiques programmables : PLD  Circuits logiques programmables : PLD • La plupart de ces composants sont constitués d'une matrice d'opérateurs ET qui génère les produits des variables d'entrées et de leurs compléments et d'une matrice d'opérateurs OU qui somme les produits. D'après le cours de systèmes logiques : Toute fonction logique se représente sous forme d'une expression de somme de produits ou de produit sommes.
  • 12.
    Chapitre 3 :Circuitslogiques programmables : PLD  Circuits logiques programmables : PLD On utilise une représentation compacte des portes logiques avec plusieurs entrées.
  • 13.
    Chapitre 3 :Circuitslogiques programmables : PLD  Circuits logiques programmables : PLD • Réalisation de la matrice ET On utilise le principe de portes ET à diodes. La programmation s’effectue grâce à des fusibles placés en série avec des diodes.
  • 14.
    Chapitre 3 :Circuitslogiques programmables : PLD  Circuits logiques programmables : PLD • Réalisation de la matrice OU On utilise le principe d’une porte OU à diode. La programmation se fait de la même manière que pour le ET
  • 15.
    Chapitre 3 :Circuitslogiques programmables : PLD Les PROM Les PLE ou PROM (Programmable Logic Elements ou Programmable Read Only Memory) Ces circuits disposent : • D'une matrice ET fixé et complète. Donc le nombre de termes produits est égal à 2" pour n entrées. La matrice ET a la structure d'un décodeur binaire à n bits. • D'une matrice OU programmable. • D'un circuit de sortie trois états à commande unique.
  • 16.
    Chapitre 3 :Circuitslogiques programmables : PLD Type de ROM: Il existe trois sorte de mémoire ROM, différenciées par leurs technologies de programmation: • PROM, programmable une seule fois, • Une mémoire EPROM est programmable à plusieurs reprises, et effaçable en exposant son réseau de connexions à des rayons ultraviolets • Les mémoires EEPROM et Flash sont similaires aux mémoires EPROM, mais peuvent être effacées électriquement (impulsions électriques), sans rayons ultraviolets. EPROM 32kB, STMicroelectronics M27C256B
  • 17.
    Chapitre 3 :Circuitslogiques programmables : PLD • Mémoire morte programmable (Programmable Read Only Memory – PROM) une seule fois (One Time Programmable – OTP). • Une PROM consiste en : - un décodeur avec n signaux d'entrée et 2" sorties; - un réseau d'interconnexions programmables entre 2" rangées et m colonnes; et, - m portes OU à 2" entrées. On indique une connexion entre une ligne horizontale et une ligne verticale par un point.
  • 18.
    Chapitre 3 :Circuitslogiques programmables : PLD  Décodeur Un décodeur active une sortie unique qui correspond à la valeur du code binaire en entrée.
  • 19.
    Chapitre 3 :Circuitslogiques programmables : PLD  PROM : exemple 1 – analyse des fonctions logiques réalisées Donner les fonctions logiques réalisées par cette mémoire PROM.
  • 20.
    Chapitre 3 :Circuitslogiques programmables : PLD F = A'BCD + AB'CD + ABC' D + ABCD'+ ABCD = BCD+ ACD+ ABD+ ABC Un comité composé de quatre personnes a besoin d’un mécanisme de vote secret pour les amendements sur la constitution du comité. Un amendement est approuvé si au moins 3 personnes votent pour.  Le problème du vote
  • 21.
    Chapitre 3 :Circuitslogiques programmables : PLD  PROM : exemple 2 – implémentation d’une fonction logique Programmer la PROM 16 × 8 pour implémenter le circuit du problème du vote. Étapes: 1. Choisir les ports d’entrée et de sortie. 2. Écrire les équations de sortie en somme de produits 3. Indiquer quelles connexions établir.
  • 22.
    Chapitre 3 :Circuitslogiques programmables : PLD • Certaines fonctions logiques complexes peuvent être remplacées par des PROM, mais une mémoire est en général trop grande et pas assez flexible pour bien convenir à la tâche. Les PAL (1978) étaient plus efficaces que les PROM; ils pouvaient être programmés chez le manufacturier ou une fois par l'utilisateur. Réseaux de logiques programmable : PAL
  • 23.
    Chapitre 3 :Circuitslogiques programmables : PLD  Circuits logiques programmables : PLD • Les PAL (Programmable Array Logic) La structure de base d’un PAL est l’opposée de celle d’une PROM. Il dispose d’une matrice ET programmable et d’une matrice OU figée
  • 24.
    Chapitre 3 :Circuitslogiques programmables : PLD  Les différents types de PAL Exemple : PAL 12 H 6 Le PAL 12H6 comprend 12 entrées, 6 sorties dont 4 possèdent deux termes produits et deux possèdent quatre termes produits. Les PAL se différencient par : • Le nombre d'entrées, • Le nombre de fonctions de sortie • Le nombre de termes produits par sortie • La polarité des sorties. • Les circuits à polarité de sortie directe:
  • 25.
    Chapitre 3 :Circuitslogiques programmables : PLD • L’inconvénient majeur des PALs est qu’ils ne sont programmables qu’une seule fois. Ceci impose un gaspillage important de ces circuits lorsqu’on veut développer un nouveau produit. • Ceci a donc donné naissance aux GALs que l’on pourrait traduire par « Réseau logique Générique ». Ces circuits peuvent donc être reprogrammés à volonté sans pour autant avoir une durée de vie restreinte. • On peut aussi noter que dans leur structure interne les GALs sont constitués de transistor CMOS alors que les PALs classiques sont constitués de transistors bipolaires. • LATTICE a équipé la plupart de ses GALs de macro cellules programmables permettant d’émuler n’importe quel PAL. Ces structures de sortie sont donc du type « Versatile » (V). LES GALS (GENERIC ARRAY LOGIC).
  • 26.
    Chapitre 3 :Circuitslogiques programmables : PLD • REFERENCE DES GAL. Le nombre de types de GAL est de 8. Ils possèdent une structure de sortie soit du type « Versatile » soit du type « Registre asynchrone». LES GALS (GENERIC ARRAY LOGIC). * (1) : structure de sortie. * (2) : Matrices « OU » et « ET » programmables. * (3) : Circuit reprogrammable à tout moment par liaison série.
  • 27.
    Chapitre 3 :Circuitslogiques programmables : PLD Les CPLD (Complex Programmable Logic Devices). • Les ROMs, PLAs, PALs et GALs sont parfois appelés des circuits logique programmable simples (Simple Programmable Logic Devices – SPLD). Les CPLD sont une extension naturelle des circuits PAL. À mesure que leur complexité grandissait, la taille des PALs était limitée par le nombre de pattes pouvant être placées sur la puce. Un CPLD incorpore donc plusieurs PALs ou PLAs sur une seule puce avec un réseau d’interconnexions. Le réseau permet de relier les pattes de la puce à différents blocs internes, mais aussi à relier les blocs entre eux. Il est donc possible de composer des fonctions logiques très complexes incluant des machines à états et de petites mémoires. Ces circuits ont une capacité en nombre de portes et en possibilités de configuration très supérieure à celle des PALs. Leurs architectures sont basées sur celles des PALS. Un CPLD c’est l’équivalent de plusieurs PALs mis dans le même circuit associé à une zone d’interconnexion. Le nombres de portes peut varier entre 100 et 100 000 portes logiques et entre 16 et 1000 bascules voir plus.
  • 28.
    Chapitre 3 :Circuitslogiques programmables : PLD Les CPLD (Complex Programmable Logic Devices). • Structure générale d’un CPLD
  • 29.
    Chapitre 3 :Circuitslogiques programmables : PLD Les CPLD (Complex Programmable Logic Devices). • Structure générale d’un CPLD Architecture d’un CPLD de Xilinx Le système comprend quatre blocs fonctionnels qui sont des PALs à 36 entrées et 16 sorties. Les sorties proviennent de macro-cellules contenant un élément programmable à mémoire. Le réseau d’interconnexions permet d’établir des connexions entre les blocs d’entrées sorties, les blocs fonctionnels et les macro-cellules.
  • 30.
    Chapitre 3 :Circuitslogiques programmables : PLD Les CPLD (Complex Programmable Logic Devices). Détails d’un CPLD On voit les 36 entrées en versions naturelle et complémentée qui alimentent 48 portes ET à connexions programmables. Les 48 portes ET alimentent 16 portes OU à connexions programmables. La macro-cellule permet d’activer ou non la bascule avec un signal naturel ou complémenté. La cellule de sortie contient un tampon à trois états.
  • 31.
    Chapitre 3 :Circuitslogiques programmables : PLD Les FPGA (Field Programmable Gate Array). • Les FPGAs à la différence des CPLDs sont assimilables à des A.S.I.C. (Application Specific Integrated Circuit) programmables par l’utilisateur. La puissance de ces circuits est telle qu’ils peuvent être composés de plusieurs milliers voire millions de portes logiques et de bascules qui peuvent être interconnectés. • Les dernières générations de FPGA intègrent même de la mémoire vive (RAM). Les deux plus grands constructeurs de FPGA sont XILINX et ALTERA. • Ils sont composés de blocs logiques élémentaires (plusieurs milliers de portes) qui peuvent être interconnectés. Les blocs logiques sont plus nombreux et plus simples que pour les CPLDs, mais cette fois les interconnexions entre les blocs logiques ne sont pas centralisées.
  • 32.
    Chapitre 3 :Circuitslogiques programmables : PLD Les FPGA (Field Programmable Gate Array). Structure d’un FPGA
  • 33.
    Chapitre 3 :Circuitslogiques programmables : PLD Les FPGA (Field Programmable Gate Array). Le passage d'un bloc logique à un autre se fera par un nombre de points de connexion (responsables des temps de propagation) fonction de la position relative des deux blocs logiques et de l'état "d'encombrement" de la matrice. Ces délais ne sont donc pas prédictibles (contrairement aux CPLDs) avant le placement routage. De la phase de placement des blocs logiques et de routage des connexions dépendront donc beaucoup les performances du circuit en terme de vitesse. Sur la figure suivante, pour illustrer le phénomène, on peut voir • une liaison entre deux blocs logiques (BA et BL) éloignés, mais passant par peu de points de connexion, donc introduisant un faible retard. • une liaison entre deux blocs proches (BD et BH) mais passant par de nombreux points de connexion, donc introduisant un retard important.
  • 34.
    Chapitre 3 :Circuitslogiques programmables : PLD Les FPGA (Field Programmable Gate Array). L'utilisation optimale des potentialités d'intégration d'un FPGA conduira à un routage délicat et pénalisant en termes de vitesse. Il convient de noter que ces retards sont dus à l'interaction de la résistance de la connexion et de la capacité parasite; cela n'a rien à voir avec un retard dû à la propagation d'un signal sur une ligne tel qu'on le voit en haute fréquence. Ces composants permettent une forte densité d'intégration. La petitesse des blocs logiques autorise une meilleure utilisation des ressources du composant (au prix d'un routage délicat) Il devient alors possible d'implanter dans le circuit des fonctions aussi complexes qu'un micro- contrôleur. Ces fonctions sont fournies sous forme de programme (description VHDL du composant) par le constructeur du composant et appelées "megafunction" ou "core". Le terme générique classiquement utilisé pour les désigner est "propriété intellectuelle" ou IP (Intelectual Property). Les FPGAs utilisent généralement les technologies SRAM ou antifusible, selon les fabricants, Xilinx utilisant la technologie SRAM et ACTEL tout comme ALTERA la technologie anti fusible de préférence.