Mémoire
Réseau logique
Programmable
Processeur
Systèmes électroniques numériques
Circuit logique
programmable
PLD FPGA
SPLD CPLD
MATRICE
ET
P1 P2 P3 P4
F1
MATRICE
F2
OU
Systèmes électroniques numériques:
PLD
Réalisation de la matrice ET:
S=E1.E2
Fusible intact
S=E1.E2
Systèmes électroniques numériques:
PLD
Exemple de la matrice ET:
P1= E1.E2.E3
P2= E1
P3=E1.E2
Systèmes électroniques numériques:
PLD
Représentation de la matrice ET:
P3 P2 P1
Systèmes électroniques numériques:
PLD
MATRICE
ET
P1 P2 P3 P4
F1
MATRICE
F2
OU
Systèmes électroniques numériques:
PLD
Réalisation de la matrice OU:
S=E1+E2
Systèmes électroniques numériques:
PLD
EXERCICE: Réalisez un circuit PLD
A B C Y1 Y2
1- Trouver les fonctions Y1 et Y2.
0 0 0 0 0
2- Symbolisez les entrées.
0 0 1 0 0
3- Donnez le schéma des éléments de la 0 1 0 0 0
matrice ET. 0 1 1 0 1
matrice OU. 1 0 1 1 1
1 1 0 0 0
1 1 1 1 1
Systèmes électroniques numériques:
PAL
PLD
SPLD CPLD
Architecture: Entrées
MATRICE
ET
programmable
P1 P2 P3 P4
F1
MATRICE
F2
OU fixe
Systèmes électroniques numériques:
PAL
Architecture: Sorties
Sortie PAL
A B C
Systèmes électroniques numériques:
PAL
Architecture: PAL Combinatoire
Correction 2
Si Ai .Bi .Ri1 Ai .Bi .Ri 1 Ai .Bi .Ri 1 Ai .Bi .Ri 1
Ai Bi Ri-1
Si Ri
Systèmes électroniques numériques:
PAL
Architecture: Sorties
Sortie PAL
Q
D1 Q
h
Q
D2 Q
h
Systèmes électroniques numériques:
PAL
Architecture: PAL Séquentiel
Exemple
• Réalisez un compteur modulo 8 synchrone en
utilisant un PLA séquentiel
Q2 Q1 Q0 D2 D1 D0
0 0 0 0 0 1
0 0 1 0 1 0
0 1 0 0 1 1
0 1 1 1 0 0
1 0 0 1 0 1
1 0 1 1 1 0
1 1 0 1 1 1
1 1 1 0 0 0
Systèmes électroniques numériques:
PAL
Architecture: PAL Séquentiel
Exemple
D0 Q0
D1 Q1.Q0 Q1.Q0
D 2 Q 2.Q1.Q0 Q 2.Q1.Q0 Q 2.Q1.Q0 Q 2.Q1.Q0
Q2 Q1 Q0
D0 Q0
h Q
Q1
D1
h Q
Q2
D2
h Q
Systèmes électroniques numériques:
PAL
PAL 16R8
Systèmes électroniques numériques:
GAL
Systèmes électroniques numériques:
GAL/OLMC (Macro-Cellule)
Systèmes électroniques numériques: GAL
Exemple de brochage g16v8
64*32
Systèmes électroniques numériques:
Programmation PLD
Cahier de charge
Simplification logique
Simulation Logiciel
Generation d’un fichier JEDEC
PLD programmé
Systèmes électroniques numériques:
Programmation PLD: TP1
Wincupl
Ce logiciel permet à partir d’un ficher PLD de créer un fichier
JEDEC permettant de programmer un GAL grâce à un
programmateur universel.
Le fichier PLD décrit:
• le circuit GAL utilisé
• le brochage du GAL
• les équations logiques à réaliser
Systèmes électroniques numériques:
Programmation PLD: TP1
WinCupl
File New Project
Systèmes électroniques numériques:
Programmation PLD: TP1
WinCupl
Systèmes électroniques numériques:
Programmation PLD: TP1
WinCupl
F1=|(a(b+c)+(|a+|b)(b+|c))
P=a&(b#c)
Q=!a#!b
R=b#!c
x=!(P#(Q&R)
F2=|a.|b.c
y=!a&!b&c
Systèmes électroniques numériques:
Programmation PLD: TP1
WinCupl
OLMC OLMC
OLMC OLMC
Systèmes électroniques numériques:
CPLD
Systèmes électroniques numériques:
FPGA
Systèmes électroniques numériques:
FPGA
Réseau
d’interconnexion
Architecture interne
I/O
bloque
CLB CLB CLB CLB CLB
Slice0
cin cin
Systèmes électroniques numériques:
FPGA
CLB (Slice):
LUT
LUT
Systèmes électroniques numériques:
FPGA
LUT
In 0
In 1
In 2
LUT out
In 3
Systèmes électroniques numériques:
FPGA
Exemple d’application
F=|ABCD+A|BCD+AB|CD+ABC|D+ABCD
A
B
C LUT
D
F
LUT
Systèmes électroniques numériques:
FPGA
Bloque de mémoire intégré
Systèmes électroniques numériques:
FPGA
Fonctions arithmétiques avancées
Systèmes électroniques numériques:
FPGA
Génération d’horloge
Systèmes électroniques numériques:
FPGA
Distribution d’horloge
Systèmes électroniques numériques:
FPGA
Microprocesseurs fixes
Systèmes électroniques numériques:
Programmation FPGA
VHDL
Systèmes électroniques numériques:
Programmation FPGA
library IEEE;
Exemple: porte logique ET
Use std_logic_1164.all
Vu de l’extérieur:
Entity porteET is
A port ( A: in std_logic;
S
B ET B: in std_logic;
S: out std_logic);
End porteET;
Vu de l’intérieur:
l’équation logique: Architecture comportement of porteET is
Begin
A.B=S S<=A and B
end comportement
Systèmes électroniques numériques:
Programmation FPGA
library IEEE;
Exemple: porte logique ET
Use std_logic_1164.all
Vu de l’extérieur:
Entity porteET is
A port ( A: in std_logic; OUT
S
B ET B: in std_logic;
IN S: out std_logic);INOUT
End porteET;
Vu de l’intérieur: BUFFER
Correction Exercices:
I/ entity PORTES is port
(A,B :in std_logic;
Y1,Y2,Y3,Y4,Y5,Y6,Y7:out std_logic);
end PORTES;
architecture DESCRIPTION of PORTES is
begin
Y1 <= A and B;
Y2 <= A or B;
Y3 <= A xor B;
Y4 <= not A;
Y5 <= A nand B;
Y6 <= A nor B;
Y7 <= not(A xor B);
end DESCRIPTION;
Systèmes électroniques numériques:
Programmation FPGA
Correction Exercices:
II/
entity DEC7SEG4 is port
(DEC :in std_logic_vector(3 downto 0);
SEG:out std_logic_vector(0 downto 6));
end DEC7SEG4;
architecture DESCRIPTION of DEC7SEG4 is
begin
SEG <= "1111110" when DEC = 0
else "0110000" when DEC = 1
else "1101101" when DEC = 2
else "1111001" when DEC = 3
else "0110011" when DEC = 4
else "1011011" when DEC = 5
else "1011111" when DEC = 6
else "1110000" when DEC = 7
else "1111111" when DEC = 8
else "1111011" when DEC = 9
else "-------";
end DESCRIPTION;