Vous êtes sur la page 1sur 60

Electronique Numérique

Pr. Idrissi Nadia


Systèmes électroniques numériques

Mémoire

Réseau logique
Programmable

Processeur
Systèmes électroniques numériques
Circuit logique
programmable

PLD FPGA

SPLD CPLD

PAL GAL LAB PIA


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 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

4- Donnez le schéma des éléments de la 1 0 0 1 0

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

PAL GAL LAB PIA


Systèmes électroniques numériques:
PAL

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

Combinatoire Séquentielle Versatile


Systèmes électroniques numériques:
PAL

Architecture: PAL Combinatoire


Systèmes électroniques numériques:
PAL

Architecture: PAL Combinatoire


Exemple
F1(a,b,c)=ā.b+a.b.c
-
F2(a,b,c)=a.b.c+0
Systèmes électroniques numériques:
PAL

Architecture: PAL Combinatoire


Exercices

• Exercice 1 : Réaliser les deux fonctions suivantes


avec un PAL qui possède 3 variables d’entrées, et
Deux termes OU avec chaque terme OU comporte 4
termes ET ?

f ( a, b, c)  a.b.c  a.b.c  a.c


f ( a, b, c)  a.b.c  a.b.c

• Exercice 2 : Réaliser un additionneur complet avec un PAL ?


Systèmes électroniques numériques:
PAL
Architecture: PAL Combinatoire
Correction 1
f 1( a, b, c )  a.b.c  a.b.c  a.c  0
f 2( a, b, c )  a.b.c  a.b.c  0  0

A B C
Systèmes électroniques numériques:
PAL
Architecture: PAL Combinatoire
Correction 2
Si  Ai .Bi .Ri1  Ai .Bi .Ri 1  Ai .Bi .Ri 1  Ai .Bi .Ri 1

Ri  Ai Bi Ri1  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

Combinatoire Séquentielle Versatile


Systèmes électroniques numériques:
PAL
Architecture: PAL Séquentiel
Q1 Q0

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

Mise en équation du problème

Résolution du problème sous forme


d’équation logique

Choix du PLD en fonction du nombre


d’entrée et de sortie

Simplification logique

Simulation Logiciel
Generation d’un fichier JEDEC

Programmation des PLD a l’aide du fichier


JEDEC et un programmateur

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

Programmation d’un GAL:


1. Réalisez les fonctions logiques suivantes en utilisant un g16v8

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

Programmation d’un GAL:

2. Réalisez la Porte logique AND en utilisant un g16v8

3. Réalisez les Portes logiques AND et OR en utilisant un g22v10


Systèmes électroniques numériques:
Programmation PLD: TP1
WinCupl
Programmation d’un GAL: g16v8
Systèmes électroniques numériques:
Programmation PLD: TP2
WinCupl
Programmation d’un GAL: g22v10
Réalisez un codeur pour un afficheur 7 segments

La réalisation de ce projet nécessite:


4 entrées (A,B,C,D).
7 sorties(Sa, Sb, Sc, Sd, Se, Sf, Sg).
1. Remplissez les tables de vérité.
2. Déduisez les fonctions logiques.
Systèmes électroniques numériques:
Programmation PLD: TP2
WinCupl
Programmation d’un GAL: g22v10
Réalisez un codeur pour un afficheur 7 segments

Sa = C*B + |D*B + D*|A + |C*|A + |D*C*A + D*|C*|B


Sb = |C*|A + |C*|B + |D*B*A + D*|B*A + |D*|B*|A
Sc = |B*A + |D*A + D*|C + |D*C + |C*|B
Sd = |D*B*|A + |D*|C*B + D*|C*A + C*|B*A + D*C*|A + |C*|B*|A
Se = B*|A + D*B + D*C + |C*|A
Sf = D*B + D*|C + C*|A + |B*|A + |D*C*|B
Sg = D*B + |C*B + D*|C + C*|B*A + |D*C*|A
Systèmes électroniques numériques:
Programmation PLD: TP2
WinCupl
Décodeur pour afficheur 7 segments: g22v10
Systèmes électroniques numériques:
Programmation PLD: TP1
WinCupl/ ISIS
Décodeur pour afficheur 7 segments: g22v10
Systèmes électroniques numériques:
Programmation PLD: TP1
WinCupl/ ISIS
Décodeur pour afficheur 7 segments: g22v10
Systèmes électroniques numériques:
CPLD

OLMC OLMC

I/O Réseau d’interconnexion I/O

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

CLB CLB CLB CLB CLB

I/O
bloque
CLB CLB CLB CLB CLB

CLB CLB CLB CLB CLB


Systèmes électroniques numériques:
FPGA
CLB
cout cout
CLB
slice1
Switch
Matrix

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

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;
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
a0 a1 a2 a3 s0 s1
0 1 0 1 1 1
0 1 1 0 0 1
1 1 0 1 1 0

ENTITY demo IS PORT(


a : in BIT_VECTOR(3 DOWNTO 0);
s : out BIT_VECTOR(1 DOWNTO 0)
);
ARCHITECTURE mydemo OF demo IS
BEGIN WITH a SELECT
s <= "11" WHEN "0101",
"01" WHEN "0110",
"10" WHEN "1101",
"00" WHEN OTHERS;
END mydemo;
Systèmes électroniques numériques:
Programmation FPGA
Exercices:

I/ Décrivez les portes logiques (and;or;xor;not


,nand,nor, not xor), avec le langage VHDL.

II/ Décrivez un afficheur 7 segments avec le


langage VHDL.
Systèmes électroniques numériques:
Programmation FPGA

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;

Vous aimerez peut-être aussi