Académique Documents
Professionnel Documents
Culture Documents
GRANVILLE
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 ........................................................................
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
page 2
page 3
* 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.
page 4
C.P.L.D.
L.C.A.
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.
page 6
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.
IO1
Structure de Sortie
IOn
Clock Reset OE
page 7
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.
page 8
page 9
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:
page 10
page 11
III.3 Les rfrences des P.A.L. Les constructeurs de P.A.L. ont standardis le marquage des P.A.L. Chez AMD:
page 12
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.
page 13
Bloc logique
Zone dinterconnexion
Bloc logique
Bloc logique
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.
page 15
1 2
U21 3 1
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
B C
3 4
1 B C D 2
U38
5 3 4 AND4
page 16
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;
page 17
LED_D(6:0)
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
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
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
page 18
RESET='1'
START='0'
IDLE
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/
page 19
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
page 20
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
A B C
1 2 3
INV U20
1 2
NAND2 U22 3 1
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
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
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
Diagramme dtats
VHDL
VHDL
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
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)
page 21
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 ).
page 22
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
page 23