td2 vhdl et logique programmable

Click here to load reader

Post on 13-Aug-2015

104 views

Category:

Documents

18 download

Embed Size (px)

TRANSCRIPT

TD2 VHDL et logique programmable

1

TD2 VHDL et logique programmableL'objectif de ce chapitre est d'introduire rapidement les notions matrielles pour les circuits simples programmables ou PLA. Les documentations de ces circuits peuvent encore tre apprhendes par des schmas logiques simples, mais ce ne sera plus le cas si l'on dsire s'intresser aux Complex Programmable Logic Devices ou aux FPGA. Nous aborderons aussi quelques notions lies aux FPGA en fin de chapitre.

GnralitsNous commenons par prsenter les conventions de la reprsentation des circuits programmables : regardez l'image ci-dessous avec gauche la convention schmatique habituelle et droite la nouvelle convention.

Convention des schmas internes des composants logiques programmables

On voit sur cette image que les entres des portes ET sont, par convention, ramenes sur un fil. Pour connatre le nombre d'entres des portes ET ainsi dessines, il vous faut compter le nombre d'intersections avec des fils perpendiculaires et de diviser par deux. Par exemple sur l'image, le fil d'entre (vertical) de la porte ET de gauche rencontre 6 fils (horizontaux), ce qui signifie que la porte ET comporte trois entres (ce qui correspond bien au schma de gauche). Une division par deux est ralise car en gnral il arrive la variable et son complment. Nous avons utilis ici la mme convention pour le OU logique qui suit le ET. Mais, en gnral, pour les circuits simples, on dessine toutes les entres des OU comme ce sera fait dans les schmas internes dcrits plus loin dans ce chapitre. Les croix indiquent les liaisons sur des fils qui se croisent. Cette convention n'est utile qu'avec les circuits programmables simples (PLD, PAL et PLA)''

Remarque : un rseau PLA ne contient que rarement tous les "minterms" (termes produits) contrairement une mmoire. Dans l'exemple de la figure ci-dessus, le fait que le OU ne contient que 4 entres veut dire que seulement quatre termes produits sont ralisables simultanment. Pourtant, avec trois entres, il existe huit termes produits.

TD2 VHDL et logique programmable

2

Correspondance entre les variables logiques et les broches physiquesLors de la programmation de composants, il nous faut tablir une correspondance entre les variables logiques dclares dans l'entit et les broches physiques d'un composant. Il existe plusieurs techniques pour cela : Avec Warp2 (Cypress [1]) on utilise un attribut : ATTRIBUTE pin_numbers of mydesign:ENTITY IS "x:1 y:2 clk:3 a(0):4 "; avant de fermer la dclaration d'entit (qui s'appelle dans ce cas "mydesign"). Cette faon de faire est trs peu portable. Avec Xilinx on utilise un fichier spar (appel fichier ucf voir exemple ici). C'est un peu plus adapt aux FPGA qui ont facilement un nombre de broches important (suprieur 256).

Nomenclature des circuits programmablesLes circuits programmables ont des noms dans lesquels au moins deux chiffres apparaissent spars par une ou plusieurs lettres. le premier chiffre donne le nombre d'entres des ET logiques utiliss, le dernier chiffre donne en gnral le nombre de sorties. Si ce nombre N est infrieur 8, il y aura 8 sorties en tout dont N qui seront de type dtermin par la lettre, la lettre sera L pour combinatoire, R pour logique squentielle, V pour Versatile que l'on peut traduire par configurable. Remarque : sachant que la reprsentation des entres des portes ET se fait toujours par un seul fil horizontal, le premier chiffre multipli par deux indiquera toujours le nombre de fil vertical rencontrs par ce fil horizontal. Appliquons tout ceci la PAL 16R4 prsente ci-dessous :

TD2 VHDL et logique programmable

3

Architecture de la PAL 16R4

Son nom indique que l'on 4 sorties squentielles, ce qui n'est pas difficile remarquer. Ces sorties sont compltes par 4 sorties combinatoires. Les 64 termes produits indiqus sur la figure sont rpartis galit sur les 8 sorties, ce qui indique que les OU ont tous 8 entres.

Exercice 1On veut raliser le circuit schmatis ci-contre dans une PAL 16R8 dont le schma partiel est prsent ci-dessous. crire le programme VHDL correspondant en remarquant que la variable Ena n'a pas besoin d'tre dclare dans l'entit. Placez les croix correspondantes au programme sur le schma ci-aprs. Remarque : mme si cette structure (ci-dessous) avec OU nombre d'entres fix est appele PAL, on utilisera indiffremment dans la suite PAL ou PLA.

TD2 VHDL et logique programmable

4

Schma pour la rponse''

Remarque : La PAL tant une 16R8, le schma ci-dessus est incomplet : il manque 7 sorties et aussi 28 fils verticaux (2 x 16 moins les 4 que l'on a). Indication : transformez votre schma en quation de rcurrence. Ce qui se trouve avant Qout dans le schma original est une commande trois tats sans inversion. Quand vous essayez d'implanter votre quation partez de la sortie physique de votre PAL. Pour changer de champ d'application voici un exercice concernant l'arithmtique lmentaire.

TD2 VHDL et logique programmable

5

Exercice 2 (PAL 16X4 spcialis pour arithmtique)On vous prsente le contenu partiel d'une PAL 16X4 destine raliser des oprations arithmtiques.

Schma interne de la PAL 16X4''

Remarque : La PAL tant une 16X4, le schma ci-dessus est incomplet : il manque 6 sorties et aussi 24 fils verticaux (2 x 16 moins les 8 que l'on a). 1) La cellule de base d'un PAL destin l'arithmtique est donne ci-dessus. Reprer 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 raliser . On rappelle les quations de C1 et A1+ une addition 1 bit :

C1 = (A1 xor B1).C0 + A1.B1 A1+ = A1 xor B1 xor C0 En dduire les quations de S1= (sous forme de ou exclusifs et/ou fonctions identits) et de /C1 (sous forme

disjonctive). 3) Calculs intermdiaires : calculer les produits (fonctions ET logique) (8).(9), (9).(11), (9).(10), (8).(11), (8).(9).(11) et (8).(10).(11) et montrer qu'ils interviennent tous dans les quations prcdentes de S1 et de /C1. 4) Dessiner les fusibles non grills sur la figure ci-dessus. Nous allons maintenant nous intresser aux nouvelles catgories de composants programmables, ceux qui utilisent des cellules "versatiles" (configurables) et que l'on appelle parfois GAL.

TD2 VHDL et logique programmable

6

La GAL 20V8On prsente ci-dessous le schma partiel du circuit de la GAL 20V8 (24 broches dont 8 sorties configurables).

Brochage de la 20V8

On peut distinguer 13 entres vritables notes de I1 I13. Chaque sortie est note de I/O0 I/O7. La notation laisse penser, juste titre, que si l'on manque d'entre, on peut transformer des sorties en entres. Si vous n'avez pas d'horloge (en logique combinatoire par exemple), vous pouvez aussi utiliser la broche CLK/I0 en entre.Dfinition On appelle cellule configurable, un cellule, c'est dire un ensemble de circuits, dont le fonctionnement est conditionn par des bits internes. Cet ensemble de circuits reprsente le schma interne de la cellule qui suffit, en gnral, expliquer son fonctionnement.

Chaque sortie est constitue par une cellule configurable l'aide de bits internes. Le schma de cette cellule configurable est donn ci-dessous :

Cellule configurable d'une 20V8

On peut y distinguer des multiplexeurs, commands par les bits SG1 et SL0x (o x est le numro de la sortie correspondante), un ou exclusif command par un bit SL1x. L'objectif de ce ou exclusif est de complmenter ou pas la sortie du ou logique qui le prcde.Dfinition On appelle bit global tout bit dont la deuxime lettre du nom est "G". On appelle bit local tout bit dont la deuxime lettre du nom est un "L".

Un bit global est forcment identique pour les 8 cellules configurables. Un bit local est dpendant de la macrocellule, et c'est pour cela qu'il est termin par un x. Pour terminer sur ce composant on donne un schma interne partiel o l'on reconnat ces cellules configurables :

TD2 VHDL et logique programmable

7

''

Remarque : La PAL tant une 20V8, le schma ci-dessus est incomplet : il manque 4 sorties et aussi 16 fils verticaux (2 x 20 moins les 24 que l'on a).

La GAL 22V10La GAL 22V10 est plus rcente que la 20V8. On pourrait penser que la cellule configurable de ce composant est plus complexe que celle de la 20V8, puisque plus moderne, mais il n'en est rien. Nous commenons par prsenter cette cellule configurable :

Cellule reconfigurable d'une 22V10

TD2 VHDL et logique programmable On distingue sur ce schma une simplification sur les entres du OU logique l'aide de pointills. Cela est d au fait que le nombre de ET logique arrivant sur le OU logique 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 (en taille comme en nombre) ce qui facilite sa comprhension. Voici un exemple de composant 22V10 :

8

Le brochage de ce composant est donn par la figure ci-dessous :

Brochage du composant 22V10

On prsente maintenant un schma interne partiel de ce composant :

TD2 VHDL et logique programmable

9

Schma interne partiel d'un composant 22V10''

Remarque : La PAL tant une 22V10, le schma ci-dessus est incomplet : il manque 6 sorties et aussi 28 fils verticaux (2 x 22 moins les 16 que l'on a). Le schma interne complet est complexe et peut tre simplifi comme sur la figure ci-dessous :

TD2 VHDL et logique programmable

10

Architecture d'une PAL 22V10

Exercice 3La polarit de chaque cellule configurable peut tre programme individuellement pour tre inverse ou non. D'autre part la sortie peut tre combinatoir