Vous êtes sur la page 1sur 45

ELEN3:Electronique Numérique

ELEN3-NUM
Département GEII – IUT de NICE

05/03/2023 1
ELEN3:ELECTRONIQUE NUMÉRIQUE

Organisation 2022:
2 cours (2H) + 2 TD (2x2H) + 3TP (3x2H)

Objectifs:
 Comprendre les bases de l’électronique numérique à savoir la logique
combinatoire et séquentielle.
 Utiliser un circuit logique programmable CPLD et FPGA
 Saisir , simuler et flasher des architectures logiques en saisie
graphique.
 Paramétrer des fonctions logiques complexes à partir de modèles
logiques paramétrables (megawizard plug in manager)
 Préparer la SAE roue de vélo électrique pour sa partie autopilotage de
moteur brushless.

05/03/2023 2
Les bases de l’électronique : silicium, Wafer, impuretées

• Le silicium (semi-conducteur)

silicium pur (Wafer)


• Le bore (impuretés P) epaisseur 700um

3 électrons sur la
couche extérieure

• Le phosphore (impuretés N)

5 électrons sur la
couche extérieure

05/03/2023 3
Les bases de l’électronique : les cristaux de silicium

• A l’état pur chaque atome de Silicium est relié à 4 autres


atomes via des liaisons de covalence associés aux électrons
de la couche extérieure.
Vue atomique 2 D
Si Si

Vue atomique 3 D
liaison électrons sur
Si Si
covalente les couches
internes

Noyau

Si Si Si

4 électrons sur la couche


électronique externe

05/03/2023 4
Les bases de l’électronique : dopage du silicium

• Les propriétés des semi-conducteurs (Silicium, Germanium) :


isolant à basse température et conducteur à haute température.
• Avec des impuretés : le semi-conducteur devient passant

05/03/2023 5
Les bases de l’électronique : La diode

• Si l’on place la moitié d’un élément de silicium dopé P à coté


d’un élément dopé N, il va y avoir un phénomène de diffusion
(trop d’électrons coté N et pas assez d’électrons coté P) ce
qui génère un champs électrique dans la zone de transition.
C’est une diode.

05/03/2023 6
Les bases de l’électronique : le transistor NMOS

• transistor Metal Oxyde (isolant) Silicium canal N


G
S D
D
M
O G
N+ S N+
P S

largeur de canal
5nm (Apple), 10nm(Intel),40nm (FPGA), 90nm (arduino)

• Si Vgs=0, le transistor est bloqué ( circuit ouvert entre D et S)


• Si Vgs>Vgsth, apparition de charge négative entre les 2 ilots
N+, le courant Ids peut passer. Vdd
VGS>VGSth G Ids Ids
S D R
Ids D
+++++++ transistor
isolant G NMOS
- --- --- -- -- -- -- -------- -------- -
N+ Ids N+ VGS>VGSth passant
05/03/2023 P S 7
Les bases de l’électronique : le transistor PMOS

• transistor Metal Oxyde (isolant) Silicium canal P

• Si Vgs=0, le transistor est bloqué ( circuit ouvert entre D et S)


• Si Vsg>Vsgth, apparition de charge positive entre les 2 ilots P+,
le courant Isd peut passer.
• On dit que le PMOS est le complément du NMOS
Vdd
VSG>VSGth G Isd VSG>VSGth
S D S
Isd
G
-------
isolant D
+++++++++++ Isd
P+ ++++++++++++ P+
Ids R
N

05/03/2023 8
Les bases de l’électronique numérique : l’inverseur CMOS

• Si Vin=Vdd alors
– Vgs=Vdd (NMOS passant) et Vsg=Vdd-Vin=0V (PMOS bloqué) : Vout=0V
• Si Vin=0V alors
– Vgs=0V (NMOS bloqué) et Vsg=Vdd-Vin=Vdd(PMOS passant) : Vout=Vdd

Vdd
VSG
S

G D
Vin Vout
D

VGS S

in out

05/03/2023 9
Consommation électrique d’une porte CMOS
in out

• Circuit CMOS alimenté : • Consommation au moment de la


pas de consommation au commutation (charge ou décharge
repos d’un condensateur)

passant
i
i=0 i=0
V1 V1
VDD 0V VDD

passant

• Si Vin=0V i=0 • Pour une commutation l’énergie


• Si Vin=5V i=0 consommée est : E=1/2*C*VDD2

05/03/2023 10
Charge et décharge d’un condensateur

• La Grille et la source d’un MOS


i(t)
sont séparées par un isolant : VDD -------
comme un condensateur.
0V
VGS(t) VGS(t)

PMOS passant
i(t) ϱϬё
i(t) G

VDD
VAB(t) isolant
VGS(t)
C=30pF
0V NMOS
S
Chronogramme de Vgs(t) et i(t) : charge et VDD
VAB(t)
décharge d’un condensateur de 30pF au travers VDD
une résistance de 50Ω à la fréquence 50MHz VGS(t)
charge du condensateur
courant de charge du
i(t) condensateur
05/03/2023 11
Les bases de l’électronique numérique : NAND et NOR

• NAND NOR

Vdd
A B Out A B Out
0 0 Vdd B 0 0 Vdd
0 Vdd Vdd 0 Vdd 0
Vdd 0 Vdd A
Out
Vdd 0 0
Vdd Vdd 0 Vdd Vdd 0
A B

Vss

05/03/2023 12
Les bases de l’électronique numérique : wafer et
circuits intégrés
Fabrication d’un wafer (image Intel)
https://www.youtube.com/watch?v=Q5paWn7bFg4

Fabrication d’un transistor NMOS

05/03/2023 13
Electronique combinatoire : l’additionneur

• Addition en décimal • Addition en binaire

retenue
1 0 0 1 1 0 0 0 0
56 0 0 1 1 1 0 0 0
+ 181 +1 0 1 1 0 1 0 1
237 1 1 1 0 1 1 0 1

05/03/2023 14
Electronique combinatoire : l’additionneur 1 bit

• Avec une porte NOT, NAND et NOR on peut faire tout type
de circuits combinatoire, exemple un additionneur 1 bit…

Cin A B S Cout add_1bit


0 0 0 0 0 A
Cout Cin S
0 0 1 1 0 A
B
+ B
0 1 0 1 0 S
Cin Cout
0 1 1 0 1
1 0 0 1 0
1 0 0 1 1 1
1 0 1 0 1
1 0 0
1 1 0 0 1 1 0 1
1 1 1 1 1 0 1 0

05/03/2023 15
Electronique combinatoire : l’additionneur 1 bit

• S = Cin.A.B + Cin.A.B + Cin.A.B + Cin.A.B Nombre impair de 1


• Cout = Cin.A.B + Cin.A.B + Cin.A.B + Cin.A.B
• S = (A + B) + Cin Nombre impair de 1
• Cout = (A + Cin)B + Cin.A

05/03/2023 16
Electronique combinatoire : l’additionneur 1 bit

• Résultat de simulation OK

0 0 1 0 1 1 1 1
0 1 0 1
+1 +1 +1 +1
1 0 0 1

05/03/2023 17
Electronique combinatoire : l’additionneur 8 bits

• input :
– A[7..0]
– B[7..0]
• output
– S[7..0]

Le carry out (Cout) de l’additionneur 1 bit est


connecté au carry in (Cin) de l’additionneur suivant

Exemple : 56 + 181 = 237


0 0 1 1 0 0 0 0
0 0 1 1 1 0 0 0
+1 0 1 1 0 1 0 1
1 1 1 0 1 1 0 1

05/03/2023 18
Electronique combinatoire : le complément A2

• Le complément à 2 permet de trouver la valeur négative d’un


nombre signé (utiliser pour la soustraction)
• CA2 :
• On inverse les bits de l'écriture binaire (opération binaire NON), on
fait ce qu'on appelle le complément à un ;
• On ajoute 1 au résultat (les dépassements sont ignorés).

05/03/2023 19
Electronique combinatoire : Le multiplexeur 2 vers 1

• Un multiplexeur 2 vers 1 permet d’aiguiller via la broche de


sélection l’entrée in0 ou in1 vers la sortie S.
in0
S S = in0.sel + in1.sel
in1
sel

05/03/2023 20
Electronique combinatoire : Le multiplexeur 2 vers 1

• Le multiplexeur 2 vers 1 : 8 bits

• input :
– IN0[7..0]
– IN1[7..0]
– sel
• output
– S[7..0]

05/03/2023 21
Electronique combinatoire : Unité de calcul

• Nous avons maintenant tous les éléments pour créer notre


première unité de calcul pour un microprocesseur…
– Si sel_add_sup=0 alors S=A+B (additionneur) • input :
– Si sel_add_sup=1 alors S=A-B (soustracteur) – A[7..0]
– B[7..0]
– sel_add_sup
• output
– S[7..0]

05/03/2023 22
Electronique séquentielle : La bascule RS à NOR

• La bascule RS est un élément mémoire.


– une impulsion sur S met la sortie Q=1 (et Q=0)
– un impulsion sur R met la sortie Q=0 (et Q=1)

05/03/2023 23
Electronique séquentielle : La bascule D

• Avec une bascule RS et un peut de circuiterie on peut créer


une bascule D
• Sur front montant de l’horloge Q<=D

Q<=D

Schéma interne

05/03/2023 24
Electronique séquentielle : division de fréquence par 2

• A chaque front montant la sortie Q<=D avec D = Q


• Donc la fréquence du signal de sortie fq = fclk/2

05/03/2023 25
Electronique séquentielle : registre 8 bits

• Un registre 8 bits est


constitué de 8 bascules D

• input :
– D[7..0]
– clk
• output
– Q[7..0]

• sur chaque font montant la sortie Q<=D

05/03/2023 26
Electronique séquentielle : compteur 8 bits

• Un compteur 8 bits peut être créé à partir d’un additionneur


8 bits et d’un registre 8 bits.
• A chaque font montant : out<=out+1

05/03/2023 27
Electronique numérique : générer une PWM

• Avec un compteur, un registre et un comparateur, on peut


générer une PWM

05/03/2023 28
ELEN3:Electronique Numérique: généralités

Nous avons crée une unité de calcul (addition/soustraction), nous avons


des registres, nous avons créé un compteur d’instruction… C’est un début
pour créer un microprocesseur…
horloge
8
adresse
compteur
adresse PC
16
programme

A B

données
Gestionnaire
d͛interruption 8 8

Décodeur 8 UAL
instruction RAM
d͛instruction
8
Zone de calcul donnée
mémoire microprocesseur 8
FLASH

05/03/2023 29
microcontrôleur ou microprocesseur ?

05/03/2023 30
ASIC ou FPGA ?

• ASIC FPGA

05/03/2023 31
La carte de développement DE0-Lite et le MAX 10

• De nombreux éléments autour du FPGA MAX 10

05/03/2023 32
La carte de développement DE0-Lite et le MAX 10

• Schéma fonctionnel de la carte de développement

05/03/2023 33
Le circuit 10M50AF484C7G

05/03/2023 34
A l’intérieur du MAX10 : les LAB

• Des LAB : Logic Array Blocs (16 LE par LAB)

05/03/2023 35
A l’intérieur des LAB : 16x LE (Logic Element)

• LE : Un circuit LUT a 4 entrées et une bascule D

05/03/2023 36
Schéma de principe d’un Elément logique dans un FPGA

• Principe d’un LE

05/03/2023 37
ELEN3:La logique COMBINATOIRE: LUT=LOOK UP TABLE:
Exemple de construction d’une LUT: La LUT dispose de 4 entrées D(msb)CBA(lsb)
On veut synthétiser la fonction combinatoire suivante: Y=D.C.B.A+D.C.B.A+D.C.B.A
On en déduit que 3 lignes de la table de
vérité activent la sortie Y à 1.
1 La colonne de sortie Y définit le LUT Mask
0 Le LUT Mask vaut:1000 0000 0000 1001
0 N° ligne D C B A Y
1 0 0 0 0 0 1
1 0 0 0 1 0
0
0 2 0 0 1 0 0
3 0 0 1 1 1
0
0 4 0 1 0 0 0
5 0 1 0 1 0
0 6 0 1 1 0 0
0 7 0 1 1 1 0
0 8 1 0 0 0 0
0 9 1 0 0 1 0
0 10 1 0 1 0 0
0 11 1 0 1 1 0
0 12 1 1 0 0 0
1 13 1 1 0 1 0
Empilage de 14 1 1 1 0 0
05/03/2023
mux 2>1 15
38 1 1 1 1 1
A l’intérieur du MAX 10 (exemple de notre ALU)

2 LABs utilisés (16 bascules D)

05/03/2023 39
AUTRE APPLICATION D’UNE TABLE LUT=LOOK UP TABLE
Exemple d’application avec un décodeur Binaire 4 bits> 7 Segments
On veut synthétiser la fonction combinatoire permettant de sélectionner 7
segments d’un afficheur LED à partir d’une valeur bin.4 bits (sorties actives low)
entrées sorties display
N° ligne D C B A a b c d e f g hexa
0 0 0 0 0 0 0 0 0 0 0 1 0x01
1 0 0 0 1 1 0 0 1 1 1 1 0x48
2 0 0 1 0 0 0 1 0 0 1 0 0x12
3 0 0 1 1 0 0 0 0 1 1 0 0x06
4 0 1 0 0 1 0 0 1 1 0 0 0x4C
5 0 1 0 1 0 1 0 0 1 0 0 0x28
6 0 1 1 0 0 1 0 0 0 0 0 0x20
7 0 1 1 1 0 0 0 1 1 1 1 0x3F
8 1 0 0 0 0 0 0 0 0 0 0 0x00
9 1 0 0 1 0 0 0 1 1 0 0 0x0C
10 1 0 1 0 0 0 0 1 0 0 0 0x08
11 1 0 1 1 1 1 0 0 0 0 0 0x60
12 1 1 0 0 0 1 1 0 0 0 1 0x31
13 1 1 0 1 1 0 0 0 0 1 0 0x42
14 1 1 1 0 0 1 1 0 0 0 0 0x30
15 1 1 1 1 0 1 1 1 0 0 0 0x38
La LUT est en fait une mémoire accessible en lecture seule (ROM) dont les données
représentent chaque sorties des lignes de la table de vérité à synthétiser. Un fichier
05/03/2023
Intel.mif sert au remplissage de cette mémoire ROM 40
LA LOGIQUE SÉQUENTIELLE: REGISTRES DE BASCULES D FLIP FLOP SÉRIE
• Ces bascules peuvent être montées en série avec une horloge commune.
• On fabrique ainsi un registre à décalage. L « entre de la première bascule
propagera de gauche à droite dans le registre à chaque front actif d’horloge.

Sens de transit dans le registre

Au niveau des sorties du registre:


Q[0] désigne la valeur de D au coup d’horloge actif précédent. C’est D n
Q[1] est la valeur de D au moment des 2 coups d’horloge actifs précédents c’est D n-1.
Q[2] est la valeur de D au moment des 3 coups d’horloge actifs précédents c’est D n-2
Q[3] est la valeur de D au moment des 4 coups d’horloge actifs précédents c’est D n-3
LA LOGIQUE SÉQUENTIELLE: REGISTRES DE BASCULES D FLIP FLOP EN SÉRIE

Simulation du fonctionnement d’un registre à décalage 4 bits vers la droite

Instants de propagation de l’entrée D


dans le registre Force1
La fonction réalisée avant une entée D unique Force0
Et 4 bits de sorties Q[3..0] en //

Q sorties en //
Il s’agit en fait d’un dé-sérialisateur. Série=> //

Entrée D unique arrivée


des bits en série
Axe du temps
ELEN3:LA LOGIQUE SÉQUENTIELLE: REGISTRE À DÉCALAGE: SÉRIALISATEUR 4
Simulation du fonctionnement d’un sérialisateur // >série 4 bits avec préchargement (load).

c
D[3] D[2] D[1] D[0]
Axe du temps
Préchargement //
asynchrone du registre
de sérialisation
ELEN3:LA LOGIQUE SÉQUENTIELLE: REGISTRE À DÉCALAGE: SÉRIALISATEUR 4
Applications des sérialisateurs /désérialisateur sont les ports de communication série RS232
Les uC peuvent communiquer entre eux par une seule ligne série à l’aide d’une UART
(Universal Asynchronous Receiver Transceiver)

Un registre à décalage sérialise le mot


1001 011 binaire // présent dans le transmit register
en direction du port TX de sortie.
Partie
transmission

Partie
réception
Un autre registre à décalage désérialise
une trame série qui arrive via l’entrée
1001010 RX et la stocke dans le receive register
ELEN3:ÉVOLUTION DES CIRCUITS LOGIQUES: FPGA
Les FPGA contiennent des millions de portes logiques permettant de réaliser des
fonctions arithmétiques et des automates complexes comme des
microprocesseurs.
Ces microprocesseurs programmables basés sur des FPGA sont évolutifs (leur
micro code interne peut être mis à jour à postériori) pour éliminer des bugs de
conception ou rajouter des fonctionnalités nouvelles au registre d’instruction du uP
On peut créer des architectures logiques à partir de schémas graphiques ou à l’aide
de langages de description hardware (comme le langage VHDL par exemple).

Exemple
Code VHDL

Dans tous les cas il s’agit d’un schéma


de câblage ou de configuration et pas
d’un code qui s’exécute (!= microproc)
05/03/2023 45

Vous aimerez peut-être aussi