Anda di halaman 1dari 23

LES CIRCUITS LOGIQUES PROGRAMMABLES

M. Philippe LETENNEUR Lyc Julliot de la Morandi e re

GRANVILLE

Les Circuits Logiques Programmables (P.L.D.)

SOMMAIRE
I. PRSENTATION DE LA LOGIQUE PROGRAMME. ..............................................3 ..............................................3 II LA CLASSIFICATION DES PLDS............................................................................3 PLDS ............................................................................3
II.1 Liste de toutes les familles de P.L.D. ............................................................................... 3 ............................................................................... II.2 Rsum graphique des familles de P.L.D......................................................................... 5 ........................................................................

III LES PALS (PROGRAMMABLE ARRAY LOGIC) ....................................................6 ....................................................6


III.1 La symbolisation et la reprsentation............................................................................. 6 reprsentation. ............................................................................ III.2 Les diffrentes structures. .............................................................................................. 7 .............................................................................................. III.2.1 Structure gnrale. ...............................................................................................................7 III.2.2 Combinatoire.........................................................................................................................8 III.2.3 Squentielle. ..........................................................................................................................9 III.2.4 Les versatiles. .....................................................................................................................10 III.3 Les rfrences des P.A.L. .............................................................................................. 12 .............................................................................................. III.4 La duplication de P.A.L. et le bit de scurit. ............................................................... 13 ...............................................................

IV LES C.P.L.D.S (COMPLEX PROGRAMMABLE LOGIC DEVICE)......................... 14 DEVICE).........................14 V LES F.P.G.A.S (FIELDS PROGRAMMABLE GATE ARRAY)................................. 15 ARRAY).................................15 VI LES OUTILS DE DVELOPPEMENTS.................................................................16 DVELOPPEMENTS. ................................................................ 16
VI.1 Le systme de dveloppement...................................................................................... 16 dveloppement. ..................................................................................... VI.2 Description gnral de la chane des outils utiliss pour mettre au point des circuits logiques programmables. ..................................................................................................... 20 ..................................................................................................... VI.2.1 Pour les PALs. ....................................................................................................................20 VI.2.1.1 Le programmateur...........................................................................................................20 VI.2.1.2 Schma fonctionnel d'un outil de dveloppement de PAL. ........................................20 VI.2.2 Pour les CPLDs et FPGAs........................................................................................... 21 FPGAs........................................................................................... VI.2.2.1 Schma fonctionnel d'un outil de dveloppement de FPGA /CPLD...........................21

VII) LEXIQUE ........................................................................................................... 22 ...........................................................................................................22 VIII) BIBLIOGRAPHIE ..............................................................................................23 .............................................................................................. 23 IX) ILLUSTRATIONS . ..............................................................................................23 .............................................................................................. 23

S.T.S. GRANVILLE Philippe LETENNEUR

page 2

Les Circuits Logiques Programmables (P.L.D.)

I. Prsentation de la Logique Programme.


Actuellement les Objets Techniques (O.T.) utilisent de plus en plus la logique programme (P, Mmoires, C, ...). Ces structures ont besoin de s'interfacer entre elles. Elles utilisent gnralement pour raliser ces interfaces des fonctions base de fonctions logiques lmentaires, compteurs, registres , .... Le nombre de circuits ncessaires pour remplir ces fonctions peut devenir trs vite important. Pour diminuer les cots de fabrication, de dveloppement et de maintenance, les fabricants de circuits intgrs ont donn naissance aux Circuits Logique Programmable ou encore P.L.D. (Programmable Logic Device). Programmable Device Ces circuits sont capables pour un O.T. de raliser plusieurs fonctions logiques dans un seul circuit. Si ces fonctions taient ralises base circuits de logique classique, il en faudrait plusieurs circuits. Un autre avantage, l'volution des fonctions d'un l'O.T. s'effectue par programmation compare une solution classique o il faut refaire un circuit imprim si on veut modifier le fonctionnement.

II La classification des P.L.D.


II.1 Liste de toutes les familles de P.L.D. Les constructeurs de P.L.D. se livrent entre eux une guerre commerciale et sur les appellations, ce qui explique la difficult tablir la classification des P.L.D. La plus ancienne et la plus connue est certainement la famille des P.A.L. Le nom a t donn par la socit M.M.I (Fusion depuis avec A.M.D.), c'est une appellation dpose, comme Walkman pour Sony ou Rfrigrateur pour Frigidaire. * P.A.L. signifie Programmable Array Logic, c'est dire rseau logique Logic programmable. La programmation de ces circuits s'effectue par destruction de fusibles. Une fois programms on ne peut plus les effacer. On distingue deux sous familles: - Les P.A.L. combinatoires ou P.A.L. simples. Ils sont constitus de fonctions de logique combinatoire. - Les P.A.L. registres ou F.P.L.S. Field Programmable Logic Squencer pour squenceur logique programmable. Ils sont constitus de logique combinatoire et squentielle (Registre).

S.T.S. GRANVILLE Philippe LETENNEUR

page 3

Les Circuits Logiques Programmables (P.L.D.)

* Les P.A.L. effaables: E.P.L.D. Les E.P.L.D. Ce qui signifie Erasable Programmable Logic Device, c'est Device dire circuit logique programmable et effasable et qui sont aux P.A.L. ce que sont les U.V.P.R.OM. aux P.R.O.M. Les E.P.L.D. peuvent tre effacs par U.V. ou lectriquement. Ils sont encore appels P.A.L. CMOS. CMOS * Les G.A.L. Les G.A.L. Ce qui signifie Generic Array Logic ou encore rseau logique gnrique ce qui veut dire pas grand chose mais qui sont aux P.A.L. ce que sont les E.E.P.R.O.M aux P.R.O.M. Le nom de G.A.L. a t dpos par LATTICE SEMICONDUCTOR. Leur fonctionnement est identique aux P.A.L. CMOS, ils sont programmables et effaables lectriquement. CMOS * Les C.P.L.D. Les C.P.L.D. Ce qui signifie Complex Programmable Logic Device. Ces Device circuits sont composs de plusieurs P.A.L.s lmentaires (Par exemple lquivalent de P.A.L.s 22V10) relis entre-eux par une zone dinterconnexion. Grce cette architecture, ils permettent datteindre des vitesses de fonctionnement leves (plusieurs centaine de Mhz). * Les L.C.A. & F.P.G.A. anti-fusible. - Les L.C.A. Ce qui signifie Logic Cell Array ou encore rseau de cellules logiques. Ces circuits sont composs de blocs logiques lmentaires de 2000 10000 portes que l'utilisateur peut interconnecter. - Les F.P.G.A. anti fusibles sont identiques aux L.C.A sauf qu'ils permettent une plus grande intgration de portes et ils ne sont pas effaables lectriquement. Le nom anti-fusible vient de la programmation des connexions qui s'effectue par fermeture de circuits, compar aux fusibles o l'on ouvre les circuits.

S.T.S. GRANVILLE Philippe LETENNEUR

page 4

Les Circuits Logiques Programmables (P.L.D.)

II.2 Rsum graphique des familles de P.L.D.

P.L.D. Circuit Logique Programmable

P.A.L & F.P.L.S.

P.A.L. Fusibles Bipolaires

P.A.L. CMOS Effaable Electriquement

G.A.L. Effaable Electriquement

P.A.L. Effaable aux U.V.

C.P.L.D.

L.C.A.

F.P.G.A. anti fusible

S.T.S. GRANVILLE Philippe LETENNEUR

page 5

Les Circuits Logiques Programmables (P.L.D.) III Les P.A.L. (Programmable Array Logic)
L'invention des P.A.L. date d'une vingtaine d'annes, ce sont les ingnieurs de chez M.M.I qui ont eu l'ide d'utiliser la technologie des fusibles. La programmation seffectue par destruction de fusible (un fusible dtruit quivaut un circuit ouvert), voir schma ci-dessous.

I1 et I2 reprsentent des entres (I:Input). O reprsente une sortie (O:Output). A partir de cette structure de base il va tre possible de raliser de nombreuses fonctions logiques. La programmation va constituer dtruire les fusibles pour obtenir les fonctions dsires, en sachant que lors de l'achat d'un P.A.L. tous les fusibles sont vierges ou pas dtruits. III.1 La symbolisation et la reprsentation. La reprsentation schmatique de la prcdente structure demande beaucoup d'espace pour reprsenter un P.A.L. en entier. Les industriels ont adopt une autre reprsentation voir ci-dessous.

a: Porte ET 3 entres. b: Porte ET 3 entres reprsentation P.A.L. les croix reprsentent les fusibles intacts. c: Reprsentation de la structure interne dun P.A.L.. P.A.L.

S.T.S. GRANVILLE Philippe LETENNEUR

page 6

Les Circuits Logiques Programmables (P.L.D.)

Exemple: Reprsentation d'un Ou Exclusif. I1 + I2 = I1 . I2 + I1 . I2 Cette quation se reprsente de la faon suivante:

III.2 Les diffrentes structures. III.2.1 Structure gnrale. Tout P.A.L. est constitu : - D'entres (Input): I1 In avec 8<n<20. - De sorties (Output) Ou dentres / sorties (I/O) de type Totem Ple ou Trois Etats : O1 On ou IO1 IOn (2<n<15). On peut trouver aussi: - Une entre d'horloge (Clock): Clk ou Clock. - Une entre de validation des sorties trois tats: OE (Output Enable) ou Enable. - Une entre de remise zro des registres: RESET. D'un point de vue fonctionnel un P.A.L. est constitu d'une zone d'entre de fusibles ou matrice de programmation et une structure de sortie non programmable dterminant le type de circuit voir schma ci-dessous.

I1 Zone de fusibles ou matrice de programmation In

IO1

Structure de Sortie

IOn

Clock Reset OE

S.T.S. GRANVILLE Philippe LETENNEUR

page 7

Les Circuits Logiques Programmables (P.L.D.)

Symbolisation normalise : Clock Reset OE I1 IO1

In

IOn

Remarque: Sur un schma comportant un P.A.L., on doit crire les quations P.A.L. qui relient les entres aux sorties ou le nom du document contenant les quations du P.A.L. Dans l'exemple au paragraphe III.1, la programmation du Ou Exclusif tait facilement ralisable, ce n'est pas toujours le cas. C'est pourquoi il existe un grand nombre de P.A.L. utilisant des structures de sorties diffrentes. On peut distinguer trois types de structures de base: - Combinatoire. - Squentielle. - Versatile. III.2.2 Combinatoire. Il existe trois types: - H -> (High) Porte ET suivit d'une Porte OU. Sortie active l'tat haut. - L -> (Low) Porte ET suivit d'une Porte NON OU. Sortie active l'tat bas. - C -> (Combine) programmable en type H ou L.

S.T.S. GRANVILLE Philippe LETENNEUR

page 8

Les Circuits Logiques Programmables (P.L.D.)


III.2.3 Squentielle. Il existe trois types: - R -> (Register): Registre. Ces circuits sont composs de bascule D. Les sorties des bascules sont de type trois tats contrles par un signal de validation Enable ou OE, et une horloge est commune toutes les bascules (clock).

- X -> (Register Or Exclusif): Ou Exclusif et Registre.

- RA -> (Register Asynchron): Registre asynchrone.

S.T.S. GRANVILLE Philippe LETENNEUR

page 9

Les Circuits Logiques Programmables (P.L.D.)

Les structures de sorties sont beaucoup plus volues par rapport aux autres P.A.L., elles se rapprochent des P.A.L. de type versatile. P.A.L. Elles peuvent prendre quatre configurations suivant les valeurs de AP et AR.

III.2.4 Les versatiles. Ce type de structure reprsente les P.A.L. les plus volues, car les structures de sorties dite versatile proposent quatre configurations possibles. suivant les valeurs de S0 et S1.

Ce qui donne:

S.T.S. GRANVILLE Philippe LETENNEUR

page 10

Les Circuits Logiques Programmables (P.L.D.)


Le plus clbre des circuits versatile est certainement le P.A.L. 22V10 de chez AMD. Il permet d'muler pratiquement tout les autres types de P.A.L. et dispose d'un circuit de remise zro des registres la mise sous tension du circuit. Schma interne dun PAL 22V10 : ( GAL22V10 Lattice Semiconductor).

S.T.S. GRANVILLE Philippe LETENNEUR

page 11

Les Circuits Logiques Programmables (P.L.D.)

III.3 Les rfrences des P.A.L. Les constructeurs de P.A.L. ont standardis le marquage des P.A.L. Chez AMD:

Chez TEXAS INSTRUMENTS:

S.T.S. GRANVILLE Philippe LETENNEUR

page 12

Les Circuits Logiques Programmables (P.L.D.)


Exemples: Un PAL 16L8 : 16 entres maximum, 8 sorties maximum et il dispose dune structure de sortie active sur niveau bas.
PAL 10H8 12H6 14H4 16H2 10L8 12L6 14L4 16L2 16C1 16L8 16R8 16R6 16R4 16X4 16A4 Entres max Input (I) 10 12 14 16 10 12 14 16 16 10 8 8 8 8 8 Sorties max Output (O) 8 6 4 2 8 6 4 2 1 8 8 8 8 8 8 Entres / Sorties (I/O) Registres Fonction AND OR AND OR AND OR AND OR AND OR INVERT AND OR INVERT AND OR INVERT AND OR INVERT AND-OR /AND OR-INVERT AND OR INVERT AND OR INVERT-REGISTER AND OR INVERT-REGISTER AND OR INVERT-REGISTER AND OR INVERT-XOR-REGISTER AND CARRY-OR-XOR-INVERT-REGISTER

6 2 4 4 4 8 6 4 4 4

III.4 La duplication de P.A.L. et le bit de scurit. Un circuit P.A.L. peut tre dupliqu comme une EPROM, pour le protger les constructeurs ont ajout un bit dit de scurit. Si ce bit est programm alors le circuit ne peut plus tre relu.

S.T.S. GRANVILLE Philippe LETENNEUR

page 13

Les Circuits Logiques Programmables (P.L.D.)

IV LES C.P.L.D.s (Complex Programmable Logic Device). (Complex


Ces circuits ont une capacit en nombre de portes et en possibilits de configuration trs suprieure celle des PALs. Leurs architectures sont bases sur celles des PALS. Un CPLD cest lquivalent de plusieurs PALs mis dans le mme circuit associ une zone dinterconnexion. Le nombres de portes peut varier entre 100 et 100 000 portes logiques et entre 16 et 1000 bascules voir plus. Structure gnrale dun CPLD.
Macro cellules composes de: - une zne de portes logiques - une bascule

Bloc logique

Zone dinterconnexion

Bloc logique

Bloc logique

Exemple de CPLD le circuit Isp1016 de LATTICE :

S.T.S. GRANVILLE Philippe LETENNEUR

page 14

Les Circuits Logiques Programmables (P.L.D.) V LES F.P.G.A.s (Fields Programmable Gate Array).
les FPGAs la diffrence des CPLDs sont assimilables des A.S.I.C. (Application Specific Integrated Circuit) programmables par lutilisateur. Application La puissance de ces circuits est telle quils peuvent tre composs de plusieurs milliers voire millions de portes logiques et de bascules. Les dernires gnrations de FPGA intgrent mme de la mmoire vive (RAM). Les deux plus grands constructeurs de FPGA sont XILINX et ALTERA. Ils sont composs de blocs logiques lmentaires (plusieurs milliers de portes) qui peuvent tre interconnects.

De plus en plus les capacits des CPLDs et des FPGAs se rapprochent. Le principal critre de choix entre les deux familles est la vitesse de fonctionnement. En effet les CPLDs acceptent des frquences de fonctionnement beaucoup plus leves que les FPGAs.

S.T.S. GRANVILLE Philippe LETENNEUR

page 15

Les Circuits Logiques Programmables (P.L.D.)

VI Les outils de dveloppements.


Ils sont composs en gnral de deux outils: - Le systme de dveloppement. - Le programmateur. VI.1 Le systme de dveloppement. Ces systmes produisent une table reprsentant les fusibles dtruire en fonction des quations logiques, diagramme d'tats et tables de vrits crit dans le langage propre au systme, c'est le rle du compilateur ou synthtiseur. La description du fonctionnement des circuits peut se faire de plusieurs faons, soit : Par un schma base de fonctions logique lmentaires (Portes ET,OU,NON, bascules, compteurs, registres dcalages).
U10 CLK 1 67 IB11 2 COMPTEUR U15 CLK Q3 Q2 Q1 Q0 D C B A 1 1 1 1 U16 OB11 U17 OB11 U18 OB11 OB11 COMPTEURP 2 3 2 4 2 5 2 6 Q3 Q2 Q1 Q0

U19 INV U20

1 2

U21 3 1

U23 2 78 OB11 U24 3 1 OB11 2 13 ROUGE2 ROUGE1

A B C D

1 2 3

1 2

NAND2 U22

NAND3

NAND2

B C

1 2

U25 3 1 2 NAND2 NAND2 1 U27 3 2 INV NAND2 OB11 1 U29 2 1 INV OB11 U26 3 1 U28 2 1 U30 2 76 VERT1

U31 2 11 VERT2

U32 INV

1 2

U37 U35 5 1 OB11 AND4 U36 1 OB11 2 12 ORANGE2 2 77 ORANGE1

B C

3 4

1 B C D 2

U38

5 3 4 AND4

S.T.S. GRANVILLE Philippe LETENNEUR

page 16

Les Circuits Logiques Programmables (P.L.D.)


- En utilisant un langage de description comportementale H.D.L. (Hardware H Description Language). Les plus anciens sont PALASM, ORCAD/PLD et le PALASM plus connu et utilis est sans conteste ABEL (utilis par la plus part des systmes de dveloppements). Enfin les langages dit de haut niveau, VHDL (Very high speed Hardware Description Language) et VERILOG sont en V gnral utiliss pour des circuits complexes. Le langage VHDL est trs utilis en Europe.
ORCAD/PLD :
|GAL16V8 in:(A15,A14,A13,A11,A10), | io:(RAM0,RAM1,RAM2,RAM3,ROM,INTER1,INTER2,INTER3) | | RAM0 = (A15' & A11' & A10')' | RAM1 = (A15' & A11' & A10)' | RAM2 = (A15' & A11 & A10')' | RAM3 = (A15' & A11 & A10)' | ROM = (A15 & A14 & A13)' | INTER1 = (A15 & A14' & A13')' | INTER2 = (A15 & A14 & A13)' | INTER3 = (A15 & A14 & A13')'

ABEL :
module tp1 title 'decodage d adresse' declarations A15,A14,A13,A11,A10 pin; RAM0, RAM1, RAM2, RAM3, ROM, INTER1, INTER2, INTER3 pin istype 'com'; x =.X.; adresse = [A15,A14,A13,x, A11,A10,x,x, x,x,x,x, x,x,x,x]; equations !RAM0 !RAM1 !RAM2 !RAM3 !ROM !INTER1 !INTER2 !INTER3 end; = = = = = = = = (adresse (adresse (adresse (adresse (adresse (adresse (adresse (adresse >=^h0000) >=^h0400) >=^h0800) >=^h0C00) >=^hE000) >=^h8000) >=^hA000) >=^hC000) & & & & & & & & (adresse (adresse (adresse (adresse (adresse (adresse (adresse <=^h03FF); <=^h07FF); <=^h0BFF); <=^h0FFF); <=^hFFFF); <=^h8001); <=^hA001);

(adresse <=^hC00F);

VHDL :
-- VHDL created by OrCAD Express Library ieee; Use ieee.std_logic_1164.all; Use ieee.numeric_std.all; ENTITY DECODAGE is PORT ( A15, A14, A13, A12, A11, A10 : IN STD_LOGIC; RAM0 : OUT STD_LOGIC; RAM1 : OUT STD_LOGIC; RAM2 : OUT STD_LOGIC; RAM3 : OUT STD_LOGIC; ROM : OUT STD_LOGIC; INTER1 : OUT STD_LOGIC; INTER2 : OUT STD_LOGIC; INTER3 : OUT STD_LOGIC); END DECODAGE; ARCHITECTURE behavior OF DECODAGE IS SIGNAL ADRESSE: STD_LOGIC_VECTOR(15 downto 0); BEGIN ADRESSE <= A15 & A14 & A13 & A12 & A11 & A10 & "----------"; ROM <= '0' when (ADRESSE >= x"E000") and (ADRESSE <= x"FFFF") RAM0 <= '0' when (ADRESSE >= x"0000") and (ADRESSE <= x"03FF") RAM1 <= '0' when (ADRESSE >= x"0400") and (ADRESSE <= x"07FF") RAM2 <= '0' when (ADRESSE >= x"0800") and (ADRESSE <= x"0CFF") RAM3 <= '0' when (ADRESSE >= x"0D00") and (ADRESSE <= x"0FFF") INTER1 <= '0' when (ADRESSE >= x"8000") and (ADRESSE <= x"8001") INTER2 <= '0' when (ADRESSE >= x"A000") and (ADRESSE <= x"A001") INTER3 <= '0' when (ADRESSE >= x"C000") and (ADRESSE <= x"C00F") END behavior;

else else else else else else else else

'1'; '1'; '1'; '1'; '1'; '1'; '1'; '1';

S.T.S. GRANVILLE Philippe LETENNEUR

page 17

Les Circuits Logiques Programmables (P.L.D.)

En utilisant un schma et des descriptions en langage de haut niveau de type VHDL. U2


BCD_D(3:0)
HEX(3:0) LED(6:0)

LED_D(6:0)

hex2led F_INPUT F_PATTERN RESET START U0


F_PATTERN RESET START GATE END_RESET

U1
CLK BCD_D(3:0) BCD_C(3:0) BCD_B(3:0) BCD_A(3:0)

U3
BCD_C(3:0)
HEX(3:0) LED(6:0)

LED_C(6:0)

GATE END_RESET

GATE RESET

hex2led U4
BCD_B(3:0)
HEX(3:0)

LED(6:0)

LED_B(6:0)

CONTROL
Description schmatique du module de comptage

CNT_BCD
BCD_A(3:0)

hex2led U5
HEX(3:0) LED(6:0)

LED_A(6:0)

hex2led

Description VHDL du module de dcodage 7 segments


BCD_D(3:0) CLK RESET CLK RESET U1
CLK ENABLE RESET FULL Q(3:0)

BCD_C(3:0) U2
CLK ENABLE RESET FULL Q(3:0)

U3
CLK ENABLE RESET FULL Q(3:0)

U4
CLK ENABLE RESET FULL Q(3:0)

BCD_B(3:0)

BCD_A(3:0)

cnt_4b U0
A0

cnt_4b U5
Y A0 A1 Y

cnt_4b U6
A0 A1 Y

cnt_4b

library IEEE; use IEEE.std_logic_1164.all; entity hex2led is port ( HEX: in STD_LOGIC_VECTOR (3 downto 0); LED: out STD_LOGIC_VECTOR (6 downto 0) ); end hex2led; --}} End of automatically maintained section architecture hex2led of hex2led is -- segment encoding -0 ----- 5 | | 1 ---<- 6 -- 4 | | 2 ----3 begin with HEX select LED <= "1111001" "0100100" "0110000" "0011001" "0010010" "0000010" "1111000" "0000000" "0010000" "0001000" "0000011" "1000110" "0100001" "0000110" "0001110" "1000000" end hex2led;

GATE

A1

and2

and2

and2

Description VHDL du module de comptage BCD

library IEEE; use IEEE.std_logic_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; entity CNT_4B is port ( CLK: in STD_LOGIC; RESET: in STD_LOGIC; ENABLE: in STD_LOGIC; FULL: out STD_LOGIC; Q: out STD_LOGIC_VECTOR (3 downto 0) ); end CNT_4B; architecture CNT_4B of CNT_4B is signal Qint: STD_LOGIC_VECTOR(3 downto 0); begin process (CLK, RESET) begin if RESET = '1' then Qint <= (others => '0'); elsif CLK='1' and CLK'event then if ENABLE = '1' then if Qint = 9 then Qint <= (others => '0'); else Qint <= Qint + 1; end if; end if; end if; end process; Q <= Qint; FULL <= '1' when (Qint = 9) else '0'; end CNT_4B;

when when when when when when when when when when when when when when when when

"0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111", others;

--1 --2 --3 --4 --5 --6 --7 --8 --9 --A --b --C --d --E --F --0

S.T.S. GRANVILLE Philippe LETENNEUR

page 18

Les Circuits Logiques Programmables (P.L.D.)


Par lutilisation de graphes dtats. (FSM : Flow States Machines)

RESET='1'

START='0'

IDLE

GATE <= '0'; END_RESET <= '1';

START='0'

START='1'

START='1' GATE <= '0'; END_CYCLE END_RESET <= '0'; GATE <= '1'; OPEN_GATE END_RESET <= '0';

Quelques systmes de dveloppements connus : 1) Synario de LATTICE SEMI CONDUCTOR (Schma, ABEL et VHDL) WEB : http://www.latticesemi.com 2) Express dORCAD (Schmas, VHDL) WEB : http://www.orcad.com/ pour la France WEB : http://www.alsdesign.fr/ 3) ViewPLD de VIEW LOGIC (schmas, ABEL et VHDL) WEB : http://www.viewlogic.com 4) StateCad de STATECAD (Graphes dtats). WEB : http://www.statecad.com/ 5) Active VHDL de ALDEC (Schmas, VHDL et Graphes dtats ). WEB : http://www.aldec.com/ 6) Warp de CYPRESS (VHDL et graphes dtats). WEB : http://www.cypress.com/ 7) MaxPlus dALTERA (Schmas, VHDL et Graphes dtats). WEB : http://www.altera.com/ 8) Foundation dXILINX (Schmas, VHDL et Graphes dtats). WEB : http://www.xilinx.com/

S.T.S. GRANVILLE Philippe LETENNEUR

page 19

Les Circuits Logiques Programmables (P.L.D.)

VI.2 Description gnrale de la chane des outils utiliss pour mettre au point des circuits logiques programmables. VI.2.1 Pour les PALs. Ces outils peuvent possder d'un simulateur logique pour vrifier la programmation du circuit. Le format de la table des fusibles dtruire a t normalis par les constructeurs de circuits pour qu'il puisse tre accept par le programmateur de P.A.L., c'est le format JEDEC (Format de fichier de programmation des circuits P.A.L. logiques : image des fusibles griller). VI.2.1.1 Le programmateur. Il permet de: - Vrifier la virginit du circuit. - Lire le fichier au format JEDEC. - Programmer le circuit. - Vrifier la programmation. Il se prsente souvent par une carte insrer dans le PC relie un support de programmation et d'un logiciel permettant le dialogue entre lui et l'utilisateur. VI.2.1.2 Schma fonctionnel d'un outil de dveloppement de PAL.
Equation, table de vrit , Diagramme d'tat exprim dans le langage du systme de dv eloppeme nt Compte re ndu de compilation

Utilisateur
Circuit PAL programm Directive et compte rendu de simulation

Compilateur

Simulateur
Systme de dveloppeme nt

Programmateur
Fichier au format JEDEC

S.T.S. GRANVILLE Philippe LETENNEUR

page 20

Les Circuits Logiques Programmables (P.L.D.)

VI.2.2 Pour les CPLDs et FPGAs. VI.2.2.1 Schma fonctionnel d'un outil de dveloppement de FPGA /CPLD.
U10 CLK 1 67 IB11 2 COMPTEUR U15 CLK Q3 D 1 U16 OB11 U17 OB11 U18 OB11 2 3 2 4 2 5 2 6 Q3 Q2 C 1 Q2

Q1

Q1

Q0

Q0

RESET='1'

OB11 COMPTEURP

U19

1 2

U21 3 1

U23 2 78 OB11 ROUGE1

A B C

1 2 3

INV U20

1 2

NAND2 U22 3 1

U24 2 13 OB11 ROUGE2

library IEEE; use IEEE.std_logic_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; entity CNT_4B is port ( CLK: in STD_LOGIC; RESET: in STD_LOGIC; ENABLE: in STD_LOGIC; FULL: out STD_LOGIC; Q: out STD_LOGIC_VECTOR (3 downto 0) );

START='0'

IDLE

GATE <= '0'; END_RESET <= '1';

NAND3

NAND2

B C

1 2

U25 3 1 2 NAND2 NAND2 U27 3 2 INV NAND2 OB11 1 U29 2 1 INV OB11 U26 3 1 U28 2 1 U30 2 76 VERT1

START='0'

START='1'

1 D

U31 2 11 VERT2

U32

1 2

U37 U35 5 1 OB11 U36 1 OB11 2 12 ORANGE2 2 77 ORANGE1

INV B C

3 4 AND4

START='1' GATE <= '0'; END_CYCLE END_RESET <= '0'; GATE <= '1'; OPEN_GATE END_RESET <= '0';

1 B C D 2

U38

5 3 4 AND4

Entre schmatique

Entre syntaxique langages: - VHDL VHDL

Diagramme dtats

VHDL

VHDL

Vrification des erreurs: de schma et de syntaxe

STILMULI ou TESTBENCH

Simulation comportementale

VHDL

SYNTHETISEUR
SYNTHETISEURS CONNUS: -FPGA Expres (Synosys). (Synosys). -EXEMPLAR (Exemplar). -SYNPLICITY (Synplicity). (Synplicity). Il convertit en fonction du ciruit cible (CPLD ou FPGA: suivant le modle choisit) le projet en portes logiques et bascules de bases. De plus on peut lui spcifier des contraites de technologies, par exemple la vitesse de fonctionnement EDIF, XNF Outils de placement et routage interne au circuit. Cet outil est propre chaque fabriquant

VITAL, VHDL STILMULI ou TESTBENCH

Simulation aprs synthse

Optimisation Placement / routage dans le circuit choisit

VITAL, VHDL, SDF STILMULI ou TESTBENCH

Simulation temporelle

JEDEC

La programmation du circuit peut se faire soit: - En utilisant un programmateur. - En tlchragement le code JEDEC directement sur lobjet technique (JTAG ou ISP)

CIRCUIT FPGA CPLD

S.T.S. GRANVILLE Philippe LETENNEUR

page 21

Les Circuits Logiques Programmables (P.L.D.)

VII) Lexique
ASIC (Application Specific Integrated Circuit) : Circuit non programmable configur lors de sa fabrication pour une application spcifique. CPLD (Complex Programmable Logic Device) : Dsigne des PLD ayant un haut (Complex niveau d'intgration. EEPROM ou E2PROM (Electrical Erasable Programmable Read-Only Memory) : (Electrical Read-Only Mmoire programmable lecture seule, effaable lectriquement. EPLD (Erasable (Erasable Programmable Logic Device) : Circuits logiques reprogrammables. EPROM (Erasable Programmable Read-Only Memory) : Mmoire programmable (Erasable Read-Only lecture seule, effaable par ultraviolets. FPGA (Forecasting Programmable Gate Array) : Rseau de portes programmables (Forecasting la demande. Technologie qui utilise des circuits encapsuls comportant des rseaux de portes logiques non relies : lutilisateur ralise les interconnexions ncessaires par programmation. FPLS (Field Programmable Logic Sequencer) : Ancien nom donn aux PAL registres. GAL (Generic Array Logic) : Circuits logiques PAL reprogrammables technologie (Generic CMOS. ISP (In System Programmable) : Circuit que lon peut programmer (et donc effacer) mme lorsquil est en place sur lapplication. JEDEC : Format de fichier de programmation des circuits logiques (image des fusibles griller). LSI (Large Scale Integration) : Intgration grande chelle : circuits regroupant quelques centaines quelques milliers de portes logiques (CI de tlcommande, dcodeur de code barre, etc ). MSI (Medium Scale Integration) : Intgration chelle moyenne : circuits (Medium regroupant quelques dizaines de portes logiques (dcodeurs, multiplexeurs, bascules ). PAL (Programmable Array Logic) : Circuits logiques programmables dans lesquels seules les fonctions ET sont programmables, les fonctions OU ne le sont pas. PAL CMOS ou PAL EECMOS : c.f. GAL. PLD (Programmable Logic Device) : Famille des circuits programmables qui comprend les PAL, GAL, EPLD et FPGA. SSI (Small Scale Integration) : Intgration petite chelle : circuit ne regroupant que quelques portes logiques (fonctions de base des sries 74 ou 4000). VHDL : Langage de programmation utilis pour programmer les PLD. VLSI (Very Large Scale Integration) : Intgration trs grande chelle : circuits (Very regroupant quelques dizaines de milliers de portes logiques (microprocesseurs ).

S.T.S. GRANVILLE Philippe LETENNEUR

page 22

Les Circuits Logiques Programmables (P.L.D.)

VIII) BIBLIOGRAPHIE
Circuits logiques programmables (Christian Tavernier - DUNOD, Paris, 1996) Guide du technicien en lectronique (C. Cimelli, R. Bourgeron - HACHETTE, Paris, 1995) Electronique Radio-Plans (n 567). Radio-Plans Elektor (n 197, novembre 1994). Lexique lectronique (P. Roussel - NATHAN, 1996).

IX) ILLUSTRATIONS .
Circuits logiques programmables (Christian Tavernier - DUNOD, Paris, 1996) Guide du technicien en lectronique (C. Cimelli, R. Bourgeron - HACHETTE, Paris, 1995) Document raliss par L.P. AMPERE - 13010 MARSEILLE

S.T.S. GRANVILLE Philippe LETENNEUR

page 23