TD2 VHDL et logique programmable
Un livre de Wikibooks.
Sections |
[modifier] Généralités
Conventions de la représentation des circuits programmables : regardez l'image ci-dessous avec à gauche la convention schématique habituelle et à droite la nouvelle convention.
On voit sur cette image que les entrées des portes ET sont, par convention, ramenées sur un fil. En général ce n'est pas le cas pour les OU logiques (même si l'image ci-dessus l'utilise). Les croix indiquent les liaisons sur des fils qui se croisent. Cette convention n'est utilie qu'avec les circuits programmables simples (PLD, PAL et PLA)
Lors de la programmation de composants, un problème important consiste à relier les variables VHDL aux broches physiques du circuit. Il existe plusieures techniques pour cela :
- Avec Warp2 (Cypress) on utilise un attribut :
ATTRIBUTE pin_numbers of mydesign:ENTITY IS "x:1 y:2 clk:3 a(0):4 ";
avant de fermer la déclaration d'entité (qui s'appelle dans ce cas "mydesign").
[modifier] Exercice
[modifier] Exercice (PAL 16X4 spécialisé pour arithmétique)
1°) La cellule de base d'un PAL destiné à l'arithmétique est donnée ci-dessus. Repérer et exprimer les valeurs logiques des fils internes 8, 9, 10 et 11 en fonction de A1 et B1. A quoi sert I ?
2°) On cherche à utiliser ce genre de cellule pour réaliser une addition 1 bit :
. On rappelle les équations de C1 et A1+
C1 = (A1 xor B1).C0 + A1.B1
A1+ = A1 xor B1 xor C0
En déduire les équations de S1 (sous forme de ou exclusifs et/ou fonctions identités) et de /C1 (sous forme disjonctive).
3°) Calculs intermédiaires : calculer les produits (fonctions ET logique) (8).(9), (9).(11), (9).(10) et (8).(11) et montrer qu'ils interviennent tous dans les équations précédentes de S1 et de /C1.
4°) Dessiner les fusibles non grillés sur la figure ci-dessus.
[modifier] La GAL 20V8
On présente ci-dessous le schéma partiel de la GAL 20V8 (24 broches dont 8 sorties configurables).
Chaque sortie est constituée par une cellule configurable (à l'aide de bits) dont le schéma est donné ci-dessous :
On peut y distinguer des multiplexeurs, commandés par les bits SG1 et SL0x (où x est le numéro de la sortie correspondante), un ou exclusif commandé par un bit SL1x. L'objectif de ce ou exclusif est de complémenter ou pas la sortie du ou logique. Le nom des bits a son importance : si la deuxième lettre est un G, le bit est global, c'est à dire qu'il est forcément identique pour les 8 cellules configurables, si la deuxième lettre est un L, le bit est local et c'est pour cela qu'il est terminé par un x.
Pour terminer sur ce composant on donne un schéma interne partiel où l'on reconnait ces cellules configurables :
[modifier] La GAL 22V10
La GAL 22V10 est plus récente que la 20V8. On pourrait penser que la cellule configurable de ce composant est plus complexe que celle de la 20V8 mais il n'en est rien. Nous commençons par présenter cette cellule configurable :
On voit sur ce schéma que nous avons simplifié en remplaçant les entrées du OU par des pointillés. Cela est dû au fait que le nombre de ET arrivant sur le OU est variable suivant la cellule configurable : les broches 14 et 23 ont en 8, les broches 15 et 22 ont en 10, les broches 21 et 16 ont en 12, les broches 17 et 20 ont en 14 et enfin les broches 18 et 19 ont en 16. Le nombre de multiplexeurs a franchement diminué ce qui facilite sa compréhension.
Le brochage de ce composant est donné par la figure ci-dessous :
On présente maintenant un schéma interne partiel de ce composant :
[modifier] Exercice
La polarité de chaque cellule configurable peut être programmée individuellement pour être inversée ou non. D'autre part la sortie peut être combinatoire ou séquentielle.
1°) Lequel des deux bits bits (S0 et S1) détermine la polarité ?
2°) Dessinez les quatre circuits équivalents à la cellule configurable.
[modifier] Les CPLD
Un CPLD peut être défini comme un assemblage de PLDs de type 22V10. Nous en donnons la structure ci-dessous :
[modifier] Retour au début du document
Retour à conception et VHDL










