ΜProcessors & ΜControlers-2022

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 240

‫بسم اهلل الرحمن الرحيم‬

µprocesseurs
& µContrôleurs
Pr Abdelmajid HAJAMI
IBIM 2022
Plan
 Electronique numérique
 Rappels des bases de l’électronique numérique
 Langage VHDL et conception de circuits
 Microprocesseur
 Notions de base sur les microprocesseurs
 Système à microprocesseur
 Etude d’un microprocesseur 16 bits
 Techniques de programmation
 Microcontrôleurs
 Architecture d’un microcontrôleur
 Microcontrôleur 68HC11.

2
Pr. Abdelmajid HAJAMI
Evaluation
 Contrôles Continus
 Devoirs

 Travaux de recherche
 Exposés

 assiduité

 Travaux pratiques
 Absence :

3
Pr. Abdelmajid HAJAMI
Règles de travail
 Désigner un représentant de classe
 Durée de la séance : De 9h00 à 12h00. Pause de 10 min.
 Moyens de communication (décisions):
 Contact direct en classe (pas dans les couloires)
 Email du groupe
 Email du représentant
 Pas de téléphone
 Retard tolérable de 10min
 Respect des RDV (changement, remise des travaux, …)

4
Pr. Abdelmajid HAJAMI
Electronique numérique
Rappels

5
Pr. Abdelmajid HAJAMI
Électronique

Partie de la physique appliquée,


traitant de la mise en forme et de
la gestion des signaux électriques,
permettant de transmettre/recevoir
mais aussi traiter et mémoriser
des informations

6
Pr. Abdelmajid HAJAMI
Électronique
Analogique Numérique
 La discipline s’intéresse au  s’intéresse au traitement des
traitement continu des signaux dont l’espace de valeurs
signaux analogiques, c’est-à-dire est discret. Ainsi, le nombre de
ceux évoluant d’une façon valeurs que peuvent prendre ces
continue dans le temps et signaux est limité. Celles-ci sont
considérés comme tels codées par
des nombres binaires.

7
Pr. Abdelmajid HAJAMI
Électronique numérique
 En numérique, les composants électroniques
actifs (Diodes et transistors) fonctionnent en
régime de commutation (bloqué ; saturé = fermé ;
ouvert)

8
Pr. Abdelmajid HAJAMI
Électronique numérique
 Portes logiques
Les portes logiques sont réalisées à partir de composants électroniques
élémentaires (Diodes, Résistances, Transistors),

9
Pr. Abdelmajid HAJAMI
Électronique numérique
 Technologies des portes logiques

TTL CMOS

Conception - Bipolaire + FET

temps propagation + (10 ns) - (40 ns)

consommation - (2 mw) + (10 nw)

Alimentation - (0-5v) + (3-18v)

Sortance - (10) + (50)

10
Pr. Abdelmajid HAJAMI
Électronique numérique
 Portes logiques trois états
En plus des états Haut (1 logique) et Bas (0 logique) , ces portes peuvent être
dans un troisième état appelé Haute Impédance où elles sont considérée comme
un circuit ouvert.

Entrées Porte logique Sortie

‘0’ : Normale
Commande
 ‘1’ : Haute impédance

11
Pr. Abdelmajid HAJAMI
Électronique numérique
 Portes logiques trois états
En plus des états Haut (1 logique) et
Bas (0 logique) , ces portes peuvent
être dans un troisième état appelé
Haute Impédance où elles sont
considérée comme un circuit ouvert.

12
Pr. Abdelmajid HAJAMI
Électronique numérique

 Circuits logiques
Ils réalisent des fonctions logiques en faisant appel à des portes logiques

X
Y X
Circuit S Y
z S
logique z

Circuit logique

S=f(X,Y,Z)

13
Pr. Abdelmajid HAJAMI
Électronique numérique
Circuits logiques

Circuits combinatoires Circuits séquentiels


 Les états des sorties des circuits  L’état actuel des sorties dépend de
dépendent linéairement des états leurs anciens états et des états actuel
des entrées, des entrées
 Additionneur, soustracteur  Bascules : D, RS, T, JK
 Codeurs, décodeurs  Compteurs : synchrones, asynchrones
 Multiplexeurs, démultiplexeurs  Registres à décalages
 UAL  Mémoires
 …

14
Pr. Abdelmajid HAJAMI
Électronique numérique
 Circuits combinatoires : Additionneur complet

Ai Σi AiBi
Bi Σ
Ci-1 Ci Ci-1
00 01 11 10
retenue
0 0 1 0 1
A B Ci-1 Σ C
1 1 0 1 0
0 0 0 0 0
Table de vérité 0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
logigramme 15
Pr. Abdelmajid HAJAMI
Électronique numérique
 Circuits combinatoires : Additionneur complet 5 bits

B4 B3 B2 B1 B0

C C4 C3 C2 C1 C0
Add Add Add Add Add
complet complet complet complet complet
n° 4 n° 3 n° 2 n° 1 n° 0

C S4 S3 S2 S1 S0

A4 A3 A2 A1 A0

16
Pr. Abdelmajid HAJAMI
Électronique numérique
 Circuits combinatoires : Multiplexage
 Le multiplexage est un procédé qui permet de transmettre sur une seule ligne des
informations en provenance de plusieurs sources ou à destination de plusieurs cibles.

X0
X1
X2 Y
X3

B A

Le démultiplexeur réalise le travail inverse -  17


Pr. Abdelmajid HAJAMI
Électronique numérique
 Circuits combinatoires : Multiplexage
 Considérons un multiplexeur à quatre entrées, donc deux lignes d'adressage, et une ligne
de validation.
E

X0
X1
X2 Y
X3

B A

18
Pr. Abdelmajid HAJAMI
Électronique numérique
 Circuits combinatoires : Multiplexage

19
Pr. Abdelmajid HAJAMI
Électronique numérique. TDs
 Systèmes de numération :
 Faites les changements de bases suivants:

N=100111/2= ? /10 39

N=41/8= ? /10 33
N=1F/16= ? /10 31
N=19/10 = ? /2 10011
N=125/10 = ? /8 175
N=475/10 = ? /16 1DB
N=765/8= ? /2 111110101

N=7BF/16= ? /2 11110111111
20
Pr. Abdelmajid HAJAMI
Électronique numérique. TDs
 Systèmes de numération :
 Calculer les résultats des opérations arithmétiques suivantes:

 1 0 0 10 1 + 1 1 1 1 1 1 = ? 1 0 0 11 0 1
+111111
 1011101-101110=?
1100100
 1001 x 101=?
1011101
 11011 ÷ 111=?
- 1 11 01 11 1 1 0
1001 0101111
11011 111 x 101
-1111 11 1001
01101 0000.
111 1001.
0110 101101
21
Pr. Abdelmajid HAJAMI
Électronique numérique
 Circuits séquentiels: Bascule R.S.T ou R.S.Clock

La bascule R.S.T. est une bascule pour laquelle les entrées S et R ne sont prises en
compte qu'en coïncidence avec un signal de commande. Ce signal peut être fourni
par une horloge,

Les valeurs de S et R ne prennent effet que pendant les états actifs de Clk.

22
Pr. Abdelmajid HAJAMI
Électronique numérique
 Circuits séquentiels: Bascule JK

La bascule JK permet de lever l'ambiguïté qui existe dans la table de la bascule SR.

Les entrées asynchrones Pr (Preset) et Cr (Clear) permettent d'assigner l'état initial de


la bascule, par exemple juste après la mise sous tension pour éviter tout aléa.

23
Pr. Abdelmajid HAJAMI
Électronique numérique
 Circuits séquentiels: Compteur asynchrone

 Un compteur asynchrone est constitué de n bascules J-K fonctionnant en mode T.


Le signal d'horloge n'est reçu que par le premier étage .
 Pour chacune des autres bascules le signal d'horloge est fourni par une sortie de la
bascule de rang immédiatement inférieur.

24
Pr. Abdelmajid HAJAMI
Électronique numérique
 Circuits séquentiels: Compteur asynchrone

25
Pr. Abdelmajid HAJAMI
Électronique numérique
 Circuits séquentiels: Compteur asynchrone à cycle incomplet

On peut souhaiter compter jusqu'à un nombre N qui ne soit pas une puissance de 2, par
exemple 10 (système décimal).
Pour cela on utilise un compteur de n bascules, tel que 2n > N. On lui ajoute un
asservissement de l'entrée Clear pour remettre le compteur à zéro tous les N coups.

26
Pr. Abdelmajid HAJAMI
Électronique numérique
 Circuits séquentiels: Registre de mémorisation
Un registre permet la mémorisation de n bits. Il est donc constitué de n bascules,
mémorisant chacune un bit.
La figure suivante donne un exemple de registre 4 bits réalisé avec quatre bascules D.

27
Pr. Abdelmajid HAJAMI
Électronique numérique
 Circuits séquentiels: Registre à décalage
Dans un registre à décalage les bascules sont interconnectées de façon à ce que l'état logique de
la bascule de rang i puisse être transmis à la bascule de rang i+1 (ou i-1) quand un signal
d'horloge est appliqué à l'ensemble des bascules.
L'information peut être chargée de deux manières dans ce type de registre: Entrée parallèle ou
Entrée série
De même l'information peut être lue en série ou en parallèle.

28
Pr. Abdelmajid HAJAMI
Électronique numérique
 Circuits séquentiels: Registre à décalage Entrée série - Sortie parallèle

La figure suivante donne un exemple de registre de 4 bits à entrée série et sortie parallèle réalisé
avec des bascules D

29
Pr. Abdelmajid HAJAMI
Électronique numérique
 Circuits séquentiels: Registre à décalage Entrée parallèle - sortie série

 La figure suivante présente un exemple de registre à décalage à entrée parallèle ou série et


sortie série.
 Si X = 1 l'entrée parallèle est inhibée et l'entrée série est validée.
 Si X = 0 l'entrée série est bloquée par contre le chargement par l'entrée parallèle est autorisé.

30
Pr. Abdelmajid HAJAMI
Électronique numérique
 Circuits séquentiels: Registre à décalage universel

La figure suivante présente un exemple de registre à décalage universel de 4 bits.


Les diverses possibilités sont sélectionnées par les lignes commande S0 et S1.

31
Pr. Abdelmajid HAJAMI
Électronique numérique. TDs
 Circuits combinatoires:
 Faire l’étude et la conception d’un compteur/décodeur BCD pour afficheur 7 segments,
 Le comptage se fait de 0 jusqu’à 9 (utiliser un compteur asynchrone).

a a
Q0 A
b
Q1 c f b
B
d g
Compteur Q2 Décodeur e
C
f
Q3 g
D e c

Horloge
32
Pr. Abdelmajid HAJAMI
Les Mémoires

33
Pr. Abdelmajid HAJAMI
Les mémoires

 Dans un calculateur toutes les informations sont manipulées


sous une forme binaire.
 Ces informations doivent en général être conservées pendant
un certain temps pour permettre leur exploitation.
 Ce rôle est dévolu aux mémoires.
 Nous avons déjà rencontré les registres de mémorisation,
mais ceux-ci ne sont pas adaptés aux grandes capacités de
stockage

34
Pr. Abdelmajid HAJAMI
Les mémoires

– Définitions et terminologie
 Mémoire : On appelle mémoire, tout système permettant de conserver
une information et d'en disposer par la suite : par exemple un bit, un
octet (huit bits) ou plus généralement un mot de n bits ou Byte.

 Capacité : On appelle capacité d'une mémoire le nombre de bits qu'elle


peut conserver : on l'exprime généralement en octets ou en kilooctet
(1024 octets) ou encore en mégaoctet (1024 kilooctets) ou en
gigaoctet (1024 Megaoctets).

35
Pr. Abdelmajid HAJAMI
Les mémoires

– Définitions et terminologie
 Le format des données :
C’est le nombre de bits que l’on peut mémoriser par case mémoire. On
dit aussi que c’est la largeur du mot mémorisable.
 Le débit :
C’est le nombre maximum d'informations lues ou écrites par seconde.
 Volatilité :
Elle caractérise la permanence des informations dans la mémoire.
L'information stockée est volatile si elle risque d'être altérée par un
défaut d'alimentation électrique et non volatile dans le cas contraire.

36
Pr. Abdelmajid HAJAMI
Les mémoires
Cycles de fonctionnement des mémoires
Deux paramètres caractérisent la vitesse d'une mémoire.

 Le temps d'accès (ta): représente le temps qui sépare une demande


de lecture de l'obtention de l'information. Pour une opération
d’écriture, c’est le temps nécessaire pour écrire l’information.

 Le temps de cycle (tc): correspond à l'intervalle de temps minimum


qui sépare deux demandes successives en lecture ou écriture.

37
Pr. Abdelmajid HAJAMI
Les mémoires Cycle de lecture

C'est le plus simple des cycles. La procédure consiste à :


1. Établir l'adresse;
2. Afficher la fonction de lecture;
3. Sélectionner le ou les boîtiers nécessaires;
Après un certain délai, l'information apparaît sur la sortie qui passe en
basse impédance. L'information reste présente jusqu'à la fin du cycle.

38
Pr. Abdelmajid HAJAMI
Les mémoires
Cycle de lecture

39
Pr. Abdelmajid HAJAMI
Les mémoires
Cycle d'écriture

La procédure d'écriture consiste à :


1. Établir l'adresse;
2. Sélectionner le ou les boîtiers nécessaires;
3. Établir la donnée sur l'entrée;
4. Établir une impulsion d'écriture.

40
Pr. Abdelmajid HAJAMI
Les mémoires Cycle d'écriture

41
Pr. Abdelmajid HAJAMI
Les mémoires
Principe :
Entrée

R/ W
Cellule mémoire
Sélection 1 bit

‘0’ : active
‘1’ : inactive
Sortie

Cellule mémoire 1bit

42
Pr. Abdelmajid HAJAMI
Les mémoires
Principe :

Entrées

R/ W
Cellule mémoire Cellule mémoire Cellule mémoire Cellule mémoire
1 bit 1 bit 1 bit 1 bit
Sélection

Sortie

Mot mémoire de 4 bits

43
Pr. Abdelmajid HAJAMI
Les mémoires
Principe : n entrées

mot mémoire n bits

mot mémoire n bits

mot mémoire n bits


Sélections
mot mémoire n bits

mot mémoire n bits

mot mémoire n bits


R/ W

n sorties
Mémoire de 6 mots de n bits  taille = 6*n bits 44
Pr. Abdelmajid HAJAMI
Les mémoires
Adressage / Décodage :

n E/S
k lignes de Décodeur m mots de n bits
sélection 1/m

m = 2k
R/ W

45
Pr. Abdelmajid HAJAMI
Les mémoires
Boîtier final :

k lignes de n E/S
sélection
2k * n bits

R/ W

𝑪𝑺

46
Pr. Abdelmajid HAJAMI
Les mémoires
Adressage par un µProcesseur (Décodage d’adresses):

Clk RAM ROM EPROM

Data Bus
Central @ Bus
Unit
Control Bus

Parallel Serial
CAN Timer
I/O I/O

• Data Bus: bus de données, pour véhiculer les données entre les éléments du système,
• @ Bus: utilisé par la Central Unit pour adresser (sélectionner) le reste des éléments du système,
• Control Bus: utilisé par la Central Unit pour controler le reste des éléments du système,
47
Pr. Abdelmajid HAJAMI
Les mémoires
Adressage par un µProcesseur (Décodage d’adresses):

Clk RAM ROM EPROM

central @ Bus
Unit

Parallel Serial
CAN Timer
I/O I/O

Le but du décodeur d’adresses est de permettre la sélection des différents boîtier électroniques, en
fonction des adresses disponibles sur le bus d’adresse entre les différents composants du système
48
Pr. Abdelmajid HAJAMI
Les mémoires
Adressage par un µProcesseur (Décodage d’adresses):

Considérons un microprocesseur ayant un bus d’adresses de 16 bits et travaillant sur des données de
8 bits. Ce microprocesseur peut donc adresser 64 ko (65536= 216= 26. 210).
Notons A le bus d’adresses (16 bits) A15 à A0.
Notons D le bus de données (8 bits) D7 à D0. A0

A12
μP A13
A14
A15

D0
D7

R/W
49
Pr. Abdelmajid HAJAMI
Les mémoires
Adressage par un µProcesseur (Décodage d’adresses):

• Le schéma représentant les connexions d’un microprocesseur à une mémoire de capacité 8 ko


(213) et pouvant donc être adressée par un bus à 13 bits.
• Les bits qui restent permettront de sélectionner (activer) le boitier de la mémoire adressée.

A0 A0
A12 A12
A13 8KO Memory
μP A14 CS
A15

D0 D0
D7 D7

R/W
50
Pr. Abdelmajid HAJAMI
Les mémoires
Adressage par un µProcesseur (Décodage d’adresses):

• Et si l’on veut augmenter la taille de la mémoire ?

A0 A0 A0 A0
A12 A12 A12 A12
A13 8KO Memory 8KO Memory 2 8KO Memory 3
μP A14 CS CS CS
A15

D0 D0 D0 D0
D7 D7 D7 D7

R/W
51
Pr. Abdelmajid HAJAMI
Les mémoires
Adressage par un µProcesseur (Décodage d’adresses):

En fait avec les bits A15, A14 et A13 nous pouvons adresser 8 (23 ) mémoires de 8 ko en
effectuant un décodage d’adresses. Ceci est le maximum théorique permis avec 16 bits.
En effet : 8 * 8ko = 64 ko.
Pour cela on utilise un circuit décodeur avec
3 entrées : A13, A14 et A15
8 sorties : une des 8 sorties est activée selon la valeur de A15 A14 A13.
Adresses des 8 mémoires : A0 A0 A0 A0
A12 A12 A12 A12
Mém 0 : 0 à 1FFFH Mém 4 : 8000H et 9FFFH A13 8KO Memory 8KO Memory 2 8KO Memory 3
A14
μP A15
CS

Mém 1 : 2000H et 3FFFH Mém 5 : A000H et BFFFH


CS CS

D0
D7

Mém 2 : 4000H et 5FFFH Mém 6 : C000H et DFFFH D0


D7
D0
D7
D0
D7

R/W
Mém 3 : 6000H et 7FFFH Mém 7 : E000H et FFFFH
52
Pr. Abdelmajid HAJAMI
Les mémoires
Extension de la taille mémoire :
Extension de la longueur des mots
La figure suivante montre qu'il est aisé d'associer deux boîtiers de 2k
mots de n bits pour obtenir un bloc de 2k mots de 2*n bits.
L'adressage doit être appliqué simultanément aux deux circuits, l'un
fournissant les n bits de poids faible et l'autre les n bits de poids fort.
Les Mémoires

53
Pr. Abdelmajid HAJAMI
Les mémoires
Extension de la taille mémoire :
Extension du nombre de mots
la figure suivante montre la réalisation d'un bloc de 4 x 2k mots de n bits à l'aide de 4 boîtiers de
2k x n bits. Il nous faut k+2 lignes d'adresse. Les k bits de poids faible de l'adresse sont
appliqués simultanément sur les 4 boîtiers. Les deux bits de poids fort attaquent un décodeur à
quatre sorties. Chacune de ces quatre lignes permet de sélectionner un boîtier (entrée de
validation du boîtier : CS). Un seul boîtier
Lesest alors connecté aux lignes de sortie.
Mémoires

54
Pr. Abdelmajid HAJAMI
Les mémoires Extension de la taille mémoire
TD 1

Soit un boîtier mémoire de 3 lignes d’adressage et 8 lignes de données.


1. Calculer la taille en octet de ce boîtier.
2. En utilisant plusieurs boîtiers, réaliser une mémoire de 16 Octet.
3. En utilisant plusieurs boîtiers, réaliser une mémoire de 32 Octet où
les mots font 16 bits de taille . Les Mémoires

PS :penser à utiliser des circuits annexes.

55
Pr. Abdelmajid HAJAMI
Les mémoires Extension de la taille mémoire
TD 1

2. En utilisant plusieurs boîtiers, réaliser une mémoire de 16 Octet.

@bus : A0,A1,A2

R/W R/W

RAM1 RAM 2
A3 CS CS

Les Mémoires

Data bus : D0….D7


Data bus : D0….D7

56
Pr. Abdelmajid HAJAMI
Les mémoires Extension de la taille mémoire
TD 1
3. En utilisant plusieurs boîtiers, réaliser une mémoire de 32 Octet où les mots font 16
bits de taille

@bus : A0,A1,A2 @bus : A0,A1,A2

R/W R/W R/W R/W

RAM11 RAM 21 RAM12 RAM 22


A3 CS CS CS CS

Les Mémoires Les Mémoires

Data bus : D0….D7 Data bus : D8….D15


Data bus :
D0….D15

57
Pr. Abdelmajid HAJAMI
Les mémoires Extension de la taille mémoire
TD 2
On dispose d’un boitier mémoire de 16 lignes d’adresses et des mots de 8bits.
1- Calculer la taille de ce boitier.
2- Combien de boitiers mémoires sont nécessaires pour avoir une taille de 256KO?
3- Quel est le nombre de bits d’adresses requis?
4- Donner le schéma détaillé de câblage de cette mémoires de 256KO,

58
Pr. Abdelmajid HAJAMI
Les mémoires Extension de la taille mémoire
TD 3
Un système à microprocesseur comprend :
 Une RAM de 8KO (2 boitiers de 4KO ).
 Une EPROM2 de 4KO
 Une EPROM1 de 8KO
 Les CSi des boitiers RAM et les OEi des boitiers EPROM sont valides sur un niveau bas.
Les Mémoires

 On donne :
 L’@i de la RAM1 est $0000
 L’@i de la RAM2 Just après l’@f de la RAM1
 L’@i de l’EPROM1 Just après l’@f de la RAM2
 L’@i de l’EPROM2 Just après l’@f de l’EPROM1.
 Compléter le tableau ci-dessous
59
Pr. Abdelmajid HAJAMI
Les mémoires Extension de la taille mémoire
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 @Hex

@i
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000
RAM1

@f
1
@i Les Mémoires
0
RAM2

@f
1
@i
0
EPROM1

@f
1
@i
0
EPROM2

@f
Pr. Abdelmajid HAJAMI
1 60
Les mémoires Extension de la taille mémoire
TD 4
On considère le schéma partiel d’un système à µC,
1- Quelle est la condition de sélection des mémoires RAM et ROM?
2- Quelles sont les plages mémoires de chacune de ces mémoires?
@bus : A0….A11

R/W R/W

A12
A13 RAM ROM
CS CS
A14
A15

Data bus : D0….D7

61
Pr. Abdelmajid HAJAMI
Les mémoires Extension de la taille mémoire
TD 5
On considère le schéma partiel d’un système à µC,
@bus

A13
A14 S0
A15 S1 CS (RAM)
µP S2
Decoder S3 CS (Serial)
S4
S5
S6 CS (ROM)
S7
Data bus

1- Donner la condition de sélection de chaque boitier,


2- En déduire les différents espaces mémoires ainsi réservés.

62
Pr. Abdelmajid HAJAMI
Les mémoires
Types de mémoire :
Mémoire

Volatile Type Non volatile


cellule
RAM ROM

ROM
Statique
PROM
Dynamique
EPROM

EEPROM

63
Pr. Abdelmajid HAJAMI
Les mémoires
Mémoires vives RAM : Random Access memory
Une mémoire vive sert au stockage temporaire de données. Elle doit avoir un temps de
cycle très court pour ne pas ralentir le microprocesseur. Les mémoires vives sont en
général volatiles : elles perdent leurs informations en cas de coupure d'alimentation.
Certaines d'entre elles, ayant une faible consommation, peuvent être rendues non
volatiles par l'adjonction d'une batterie. Il existe deux grandes familles de mémoires RAM
(Random Acces Memory : mémoire à accès aléatoire) :
Les RAM statiques
Les RAM dynamiques

64
Pr. Abdelmajid HAJAMI
Les mémoires
Mémoires RAM : RAM statique
Le bit mémoire d'une RAM statique (SRAM) est composé d'une bascule.
Chaque bascule contient entre 4 et 6 transistors.

65
Pr. Abdelmajid HAJAMI
Les mémoires
Mémoires RAM : RAM dynamique
Dans les RAM dynamiques (DRAM), l'information est mémorisée sous la
forme d'une charge électrique stockée dans un condensateur (capacité
grille substrat d'un transistor MOS).

66
Pr. Abdelmajid HAJAMI
Les mémoires
Mémoires RAM : RAM dynamique

Avantages
Cette technique permet une plus grande densité
d'intégration, car un point mémoire nécessite
environ quatre fois moins de transistors que dans
une mémoire statique. Sa consommation s’en
retrouve donc aussi très réduite.

67
Pr. Abdelmajid HAJAMI
Les mémoires
Mémoires RAM : RAM dynamique
Inconvénients
La présence de courants de fuite dans le condensateur contribue à sa décharge.
Ainsi, l’information est perdue si on ne la régénère pas périodiquement (charge du
condensateur). Les RAM dynamiques doivent donc être rafraîchies régulièrement
pour entretenir la mémorisation : il s'agit de lire l'information et de la recharger.
Ce rafraîchissement indispensable a plusieurs conséquences :
- il complique la gestion des mémoires dynamiques car il faut tenir compte des
actions de rafraîchissement qui sont prioritaires.
- la durée de ces actions augmente le temps d'accès aux informations.
- la lecture de l’information est destructive. Elle se fait par décharge de la
capacité du point mémoire lorsque celle-ci est chargée. Donc toute lecture
doit être suivie d’une réécriture. 68
Pr. Abdelmajid HAJAMI
Les mémoires
Mémoires RAM : dynamique Vs statique

• En général les mémoires dynamiques, qui offrent une


plus grande densité d'information et un coût par bit
plus faible, sont utilisées pour la mémoire centrale,

• Alors que les mémoires statiques, plus rapides, sont


utilisées lorsque le facteur vitesse est critique,
notamment pour des mémoires de petite taille comme
les caches et les registres.

69
Pr. Abdelmajid HAJAMI
Les mémoires
Mémoires Mortes ROM : Read Only Memory
Pour certaines applications, il est nécessaire de pouvoir conserver des informations de façon
permanente même lorsque l'alimentation électrique est interrompue. On utilise alors des mémoires
mortes ou mémoires à lecture seule (ROM : Read Only Memory). Ces mémoires sont non volatiles.

Ces mémoires, contrairement aux RAM, ne peuvent être que lue. L’inscription en mémoire des
données restent possible mais est appelée programmation. Suivant le type de ROM, la méthode de
programmation changera. Il existe donc plusieurs types de ROM :

 ROM
 PROM
 EPROM
 EEPROM
70
Pr. Abdelmajid HAJAMI
Les mémoires
Mémoires Mortes ROM : Read Only Memory
 Elle est programmée par le fabricant et son contenu
ne peut plus être ni modifié, ni effacé par l'utilisateur.

71
Pr. Abdelmajid HAJAMI
Les mémoires
Mémoires Mortes ROM : Read Only Memory
Structure :
 Composée d'une matrice dont la programmation
s’effectue en reliant les lignes aux colonnes par des
diodes. L'adresse permet de sélectionner une ligne
de la matrice et les données sont alors reçues sur les
colonnes (le nombre de colonnes fixant la taille des
mots mémoire).
Programmation :
 L'utilisateur doit fournir au constructeur un masque
indiquant les emplacements des diodes dans matrice.
Avantages :
- Densité élevée - Non volatile - Mémoire rapide

72
Pr. Abdelmajid HAJAMI
Les mémoires
Mémoires Mortes ROM : Read Only Memory
Inconvénients :
 Écriture impossible
 Modification impossible (toute erreur est fatale).
 Délai de fabrication (3 à 6 semaines)
 Obligation de grandes quantités en raison du coût
élevé qu'entraîne la production du masque et le
processus de fabrication.

73
Pr. Abdelmajid HAJAMI
Les mémoires
PROM : Programmable ROM
C’est une ROM qui peut être programmée une seule fois par
l'utilisateur (Programmable ROM). La programmation est réalisée à
partir d’un programmateur spécifique.
Structure :
 Les liaisons à diodes de la ROM sont remplacées par des fusibles
pouvant être détruits ou des jonctions pouvant être court-circuitées

74
Pr. Abdelmajid HAJAMI
Les mémoires
PROM : Programmable ROM
Programmation :
 Les PROM sont livrées avec toutes les lignes connectées aux
colonnes (0 en chaque point mémoire).
 Le processus de programmation consiste donc à programmer
les emplacements des ‘’1’’ en générant des impulsions de
courants par l’intermédiaire du programmateur ; les fusibles
situés aux points mémoires sélectionnés se retrouvant donc
détruits.

75
Pr. Abdelmajid HAJAMI
Les mémoires
PROM : Programmable ROM
Avantages :
 idem ROM
 Claquage en quelques minutes
 Coût relativement faible

Inconvénients :
 Modification impossible (toute erreur est fatale).

76
Pr. Abdelmajid HAJAMI
Les mémoires
EPROM : Erasable Programmable ROM

EPROM EEPROM

principe MOS à grille flottante

Effacement UV Tension

+ RAM non volatile


+ Programmable non volatile
+ Effacement par mot
- efface toute la mémoire.
-Lente / RAM
- - effacé hors circuit
- écriture lente
- coût de réalisation
77
Pr. Abdelmajid HAJAMI
Les mémoires
hiérarchie mémoire

78
Pr. Abdelmajid HAJAMI
Langage VHDL et conception de circuits
 LES CIRCUITS LOGIQUES PROGRAMMABLES (PAL, GAL, CPLD, FPGA)
 Le langage VHDL

79
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
Soit la fonction logique suivante :
F= 𝑎𝑏𝑐𝑑 + 𝑎bcd
ത + ab𝑐ҧ
Sa réalisation en portes logique est la suivante : assurez-vous !!
a
b
C
d
F

Et si jamais
le circuit est

!
déjà réalisé
? X
X

80
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables

Solutions :

ROM PLA
Read Only Memory Programmable Logic Array

81
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables

Solutions : ROM PLA


Read Only Memory Programmable Logic Array

82
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables

Solutions : ROM
Read Only Memory

 ത + 𝑎bcd
Soit la fonction logique : F= a𝑏𝑐𝑑 ത + ab𝑐d
ҧ
Pensez à réaliser cette fonction par une mémoire ROM.

 Peut on la réaliser en utilisant un autre circuit?

83
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables

Solutions :
On utilise une représentation compact PLA
Programmable Logic Array
des portes logiques avec plusieurs entrées

84
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables

 L’implémentation de circuits logiques avec des circuits SSI, MSI et LSI nécessite
beaucoup de travail pour choisir, disposer et relier les composantes discrètes.
 Certaines fonctions logiques complexes peuvent être remplacées par des PROM,
mais une mémoire est en général trop grande et pas assez flexible pour bien
convenir à la tâche.
 Les PLA (1970), et PAL (1978) étaient plus efficaces que les PROM; ils pouvaient
être programmés chez le manufacturier ou une fois par l’utilisateur.
 Les GAL sont la version améliorée des PLA et PAL et sont programmés par
l’utilisateur.

85
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables

Basis for comparison PLA PAL


Programmable Logic
Stands for Programmable Array Logic
Array
Programmable array of AND
Programmable array of
Construction gates and fixed array of OR
AND and OR gates.
gates.
Availability Less prolific More readily available
Provides more Offers less flexibility, but more
Flexibility
programming flexibility. likely used.
Cost Expensive Intermediate cost
Large number of
Provides the limited number of
Number of functions functions can be
functions.
implemented.
86
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables

 Un PLA (Programmable Logic Array) est similaire à une


ROM, mais il ne réalise pas tous les produits de termes
comme une ROM.
 Un PLA à n entrées et m sorties peut réaliser m
fonctions de n variables, en autant que chacune
requiert un nombre limité de produits des variables en
entrée.
 Un PLA est composé de deux réseaux programmables,
ET et OU. Le réseau ET programmable est
effectivement un décodeur programmable incomplet.

• Chaque intersection d’une ligne horizontale et d’une ligne verticale est programmable.
• Seuls 6 termes (produits – ET logique) peuvent être réalisés à partir des quatre entrées et de leurs compléments.
• Seules trois fonctions de sortie peuvent être réalisées.
• Chaque fonction peut utiliser n’importe lequel des six termes programmables 87
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables

 Le développement des mémoires utilisées en informatique fut à l’origine


des premiers circuits logiques programmables (PLD : Programmable
Logic Device). Ce type de produit peut intégrer dans un seul circuit
plusieurs fonctions logiques programmables par l’utilisateur. Sa mise en
œuvre se fait très facilement à l’aide d’un programmateur, d’un micro-
ordinateur et d’un logiciel adapté.

88
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables

Structure de base d’un PLD


Entrées
 La plupart des PLDs suivent la structure suivante :

 Un ensemble d’opérateurs « ET » sur lesquels viennent se


connecter les variables d’entrée et leurs compléments.

 Un ensemble d’opérateurs « OU » sur lesquels les sorties


des opérateurs « ET » sont connectées.

 Une éventuelle structure de sortie (Portes inverseuses,


logique 3 états, registres...).

Pr. Abdelmajid HAJAMI Sorties 89


Les circuits logiques programmables

Structure de base d’un PLD


 Les deux premiers ensembles forment chacun ce
qu’on appelle une matrice. Les interconnexions de
ces matrices doivent être programmables. C’est la
raison pour laquelle elles sont assurées par des
fusibles qui sont « grillés » lors de la
programmation. Lorsqu’un PLD est vierge toutes les
connexions sont assurées.

Interconnexion programmable
90
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables

PLD : Symbolisation et Représentation


 La programmation s’effectue par destruction de fusible (un fusible détruit équivaut à un circuit
ouvert), voir schéma ci-dessous.

Structure simplifiée d’un PAL 2 entrées 1 sortie


 I1 et I2 sont des entrées (Input), O c’est une sortie (output).

91
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables

PLD : Symbolisation et Représentation


Une autre représentation adoptée.

 a : porte ET à trois entrées.


 b : porte ET à trois entrées : représentation PAL. Les croix représentent les fusibles intacts.
 c : représentation de la structure interne d’un PAL.

92
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables

PLD : Exemple1
 Si on veut obtenir les fonctions
Q0  a.b  a.b et Q1  a. b  a. b

On « grillera » des fusibles de façon à obtenir le schéma suivant :

93
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables

Exemple2
 Un comité composé de quatre personnes a besoin d’un système de
vote secret pour les amendements sur la constitution du comité.
 Un amendement est approuvé si au moins 3 personnes votent pour.
 Concevoir un circuit logique qui accepte 4 entrées représentant les
votes. La sortie du circuit doit indiquer si l’amendement est
accepté.

94
Pr. Abdelmajid HAJAMI
A B C D F
0 0 0 0 0
0 0F = ҧ
𝐴𝐵𝐶𝐷
0 + 𝐴
1

𝐵CD +
0 AB ҧ
𝐶D + ABC𝐷ഥ + ABCD
0 0F = ABC1 + ABD
0 + ACD
0 + BCD
0 0 1 1 0 A B C D
0 1 0 0 0
0 1 0 1 0
0 1 1 0 0
0 1 1 1 1
1 0 0 0 0 F
1 0 0 1 0
1 0 1 0 0
1 0 1 1 1
1 1 0 0 0
1 1 0 1 1
1 1 1 0 1
1
Pr. Abdelmajid HAJAMI 1 1 1 1 95
ҧ
F = 𝐴𝐵𝐶𝐷 ത
+ 𝐴𝐵CD ҧ + ABC𝐷
+ AB𝐶D ഥ + ABCD
F = ABC + ABD + ACD + BCD
 Programmer le circuit PLD 4-3-6 pour implémenter la fonction F
A B C D F = ABC + ABD + ACD + BCD

Étapes:
1. Choisir les ports d’entrée et de sotie.
2. Écrire les équations de sortie en somme de
produits
3. Indiquer quelles connexions établir.

Observations:
• La minimisation des équations n’est pas toujours utile.
• L’ordre dans lequel sont placées les entrées est crucial.
F
96
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables

Familles de PLD
Il existe plusieurs familles de PLD qui sont différenciées par leur
structure interne.
TYPE Nombre de portes intégrées Matrice ET Matrice OU Effaçable
PROM 2 000 à 500 000 Fixe Programmable Non

PAL 10 à 100 Programmable Fixe Non

GAL 10 à 100 Programmable Fixe Electriquement

EPLD 100 à 3000 Programmable Fixe Aux U-V

FPLA 2000 à 3000 Programmable Programmable Electriquement

97
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables

REMARQUE :
Certaines de ces familles possèdent en plus des matrices « ET » et
« OU », de la logique séquentielle (Bascules « D », « JK »...) placée
après les entrées ou avant les sorties du PLD.

98
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
PAL (Programmable Array Logic)

 • Dans un circuit PAL, le réseau ET est programmable et le


réseau OU est fixe.
 • Chaque intersection d’une ligne horizontale et d’une ligne
verticale est programmable.
 • Les portes ET ont une sortie de 0 par défaut.
 • Chaque patte de sortie est menée par un tampon inverseur
contrôlé par une fonction logique.
 • Un PAL16L8 a:
– 10 entrées dédiées ;
– 2 sorties dédiées ;
– 6 pattes pouvant être utilisées comme entrée ou sortie

99
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
PAL (Programmable Array Logic)

 Tout P.A.L. est constitué :


 D'entrées (Input): I1 à In avec 8 < n < 20.

 De sorties (Output) Ou d’entrées / sorties (I/O) de type Trois Etats :

O1 à On ou IO1 à IOn (2<n<15).

 On peut trouver aussi:


 Une entrée d'horloge (Clock): Clk ou Clock.

 Une entrée de validation des sorties trois états: OE (Output Enable)


ou Enable.

 Une entrée de remise à zéro des registres: RESET.


100
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
PAL (Programmable Array Logic)

 les premiers circuits programmables à être utilisés pour réaliser des fonctions
logiques étaient développés par le constructeur AMD

 Ils possèdent des matrices « ET » programmables et des matrices « OU » fixes.

 La fusion des fusibles est obtenue en appliquant à leurs bornes une tension de 11,5
V pendant 10 à 50 µS (leur tension de fonctionnement est environ de 5V).

 Cette opération est bien sûr effectuée en utilisant un programmateur adapté. La


structure de base de ce PLD est présentée par le schéma suivant.

101
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
PAL (Programmable Array Logic)
Structure des PAL

102
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
PAL (Programmable Array Logic)
Configuration des entrées/sorties

• Chaque patte de sortie est menée par un tampon inverseur contrôlé par une fonction logique.
• La sortie peut donc être:
 l’inverse de la porte OU à laquelle elle est relie ; ou
 une haute impédance (HZ ).

‘1’ ‘0’

X (HZ) X X

103
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
PAL (Programmable Array Logic)
Configuration des entrées/sorties

 Certaines broches de ces circuits peuvent être utilisées aussi bien en entrée qu’en sortie grâce à
un système de logique 3 états. La commande de cette dernière est configurée au moment de la
programmation. La structure de sortie permet aussi de réinjecter les sorties en entrée (Feed-
back).
Porte trois états permettant
de déc onnec tée la broc he
de la matric e "ET"

I/O

 Selon le type de PAL la structure de sortie peut être constituée d’une porte « NON», d’une porte
« OU » Exclusive , d’une bascule « D » ou d’une combinaison des trois. Le nombre d’entrées et
de sorties est lui aussi lié à la référence du PAL 104
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
PAL (Programmable Array Logic)
RÉFÉRENCE DES PALS (D’APRÈS AMD).

 Les diverses possibilités de ces circuits et leur standardisation ont conduit les
constructeurs à définir une nomenclature permettant de décoder assez facilement la
référence des PALs.

105
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
PAL (Programmable Array Logic)
RÉFÉRENCE DES PALS (D’APRÈS AMD).

Structure de sortie
Lettre(s) Code(s) Structure de sortie

L Combinatoire active bas


H Combinatoire active haut
C Combinatoire : L et H combinés
R Registre synchrone (bascule D)
RA Registre asynchrone
RP Registre programmable
X Registre et OU exclusif
V Versatile
106
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
PAL (Programmable Array Logic)
RÉFÉRENCE DES PALS (D’APRÈS AMD).

Structure de sortie : 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 -> (Combinée) programmable en type H ou L.

107
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
PAL (Programmable Array Logic)
RÉFÉRENCE DES PALS (D’APRÈS AMD).

Structure de sortie : séquentielle


 R -> Register

108
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
PAL (Programmable Array Logic)
RÉFÉRENCE DES PALS (D’APRÈS AMD).

Structure de sortie : séquentielle


 X -> Register- OR Exclusif

109
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
PAL (Programmable Array Logic)
RÉFÉRENCE DES PALS (D’APRÈS AMD).

Structure de sortie : séquentielle


 RA -> Register Asynchron

Elles peuvent prendre quatre configurations suivant les valeurs de AP et AR

110
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
PAL (Programmable Array Logic)
RÉFÉRENCE DES PALS (D’APRÈS AMD).

Structure de sortie : versatile


 Les structures de sorties dite versatile proposent quatre configurations possibles
suivant les valeurs de S0 et S1.

111
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
PAL (Programmable Array Logic)
RÉFÉRENCE DES PALS (D’APRÈS AMD).

Remarques

 Le nombre d’entrées varie entre 10 et 22.

 Le nombre de sorties varie entre 1 et 10.

 La puissance est indiquée par une lettre code.

 La vitesse indique le temps de propagation en ns.

 Les versions versatiles ont une cellule de sortie programmable permettant d’obtenir n’importe quel
autre type de structure de sortie (L, H, R ...).

 Les versions CMOS (CE) sont effaçables électriquement. Les fusibles sont remplacés par des transistors
de type MOS FET. Ce ne sont ni plus ni moins que des « GALs ».
112
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
PAL (Programmable Array Logic)
RÉFÉRENCE DES PALS (D’APRÈS AMD).

 Exemple

113
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
PAL (Programmable Array Logic)
RÉFÉRENCE DES PALS (D’APRÈS AMD).

 Exemple de PAL : PAL 16L8


 Ce type de circuit est uniquement constitué de logique combinatoire. Il possède 20 broches
agencées de la façon suivante :

 - 10 broches configurables uniquement en entrée

 - 2 broches configurables uniquement en sortie

 - 6 broches configurables en entrée et en sortie

 - 2 broches d’alimentation.

114
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
PAL (Programmable Array Logic)
RÉFÉRENCE DES PALS (D’APRÈS AMD).

 Exemple de PAL : PAL 16L8


 L’ensemble des sorties provient de portes 3 états inverseuses. L’état haute impédance peut être
commandée par l’ensemble des entrées.

 Chaque porte de la matrice « OU » possède 7 entrées. Ceci signifie que chaque sortie peut résulter, au
maximum, d’une fonction « OU » entre 7 termes produits. Chaque porte de la matrice « ET » possède
32 entrées. Ceci signifie que chaque terme produit peut résulter, au maximum, d’une fonction « ET »
entre 16 variables et leurs compléments.

115
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
PAL (Programmable Array Logic)
RÉFÉRENCE DES PALS (D’APRÈS AMD).

 Brochage du PAL 16L8

116
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
PAL (Programmable Array Logic)
RÉFÉRENCE DES PALS (D’APRÈS AMD).

 Exemple de PAL : PAL 16R8


 Ce type de circuit est constitué de logique combinatoire et séquentielle.
 20 broches agencées de la façon suivante :
 8 broches (n° 2 à 9) configurables uniquement en entrée
 1 broche (n° 1) d’entrée d’horloge de l’ensemble des 8 bascules D
 1 broche (n° 11) de validation des 8 sorties (Output Enable)
 8 broches (n° 12 à 19) configurables en sortie et pouvant être réinjecter en entrée
 2 broches d’alimentation (n° 10 et 20).

117
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
PAL (Programmable Array Logic)
RÉFÉRENCE DES PALS (D’APRÈS AMD).

 Exemple de PAL : PAL 16R8


 L’ensemble des sorties provient de portes 3 états inverseuses provenant elles-mêmes de bascules D. L’état
haute impédance est commandée par l’entrée OE (broche n°11).
 Chaque porte de la matrice « OU » possède 8 entrées. Ceci signifie que chaque sortie peut résulter, au
maximum, d’une fonction « OU » entre 8 termes produits.
 Chaque porte de la matrice « ET » possède 32 entrées. Ceci signifie que chaque terme produit peut résulter, au
maximum, d’une fonction « ET » entre 16 variables et leurs compléments.

En résumé on peut dire que les huit sorties de ce circuit proviennent d’un registre trois états. La
mise en haute impédance de ce dernier est commandée par la broche OE et la mémorisation est
activée par les fronts montants de l’horloge CLK.
118
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
PAL (Programmable Array Logic)
RÉFÉRENCE DES PALS (D’APRÈS AMD).

 Brochage du PAL 16R8

119
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
TD 1
PAL (Programmable Array Logic)

 On désire implémenter, à l'aide de ce circuit, les fonctions


suivantes :

O3 = A.B.C.D,

 1- Quels sont les caractéristiques des fonctions que l'on peut


réaliser avec ce PAL (nombre de termes produits) ?

 2- Une croix représente un fusible non-claqué. Supprimer les


croix nécessaires afin de réaliser les fonctions souhaitées.

120
Pr. Abdelmajid HAJAMI
D C B A

Réseau de OU fixe TD 1

Réseau de ET programmable O 3 O 2 O1 O0
121
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
TD 2
PAL (Programmable Array Logic)

On désire réaliser un convertisseur code BCD → code Gray à 4


entrées.

 1- Donner la table de vérité du système.

 2- Simplifier les équations logiques à l’aide des tableaux de


Karnaugh.

 3- On souhaite utiliser le PAL de l'exercice 1. Supprimer les


croix nécessaires afin de réaliser les fonctions souhaitées.

122
Pr. Abdelmajid HAJAMI
D C B A

Réseau de OU fixe TD 2

Réseau de ET programmable O 3 O 2 O1 O0
123
Pr. Abdelmajid HAJAMI
D C B A

Réseau de OU fixe TD 2

Réseau de ET programmable O 3 O 2 O1 O0
124
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
TD 3
PAL (Programmable Array Logic)

On souhaite réaliser un décodeur hexadécimal pour afficheur 7


segments suivant le schéma (les LED réalisant l’afficheur sont
allumées si la cathode est à 0 V) :
 1- Donner la table de vérité du circuit.
 2- Simplifier les équations logiques à l’aide des tableaux de
Karnaugh.
 3- On souhaite utiliser un PAL 16L8 (voir schéma ci-après).
Quelles sont ses caractéristiques ?
 4- Placer les croix nécessaires sur le schéma suivant afin de
réaliser les fonctions souhaitées.

125
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables TD 3
PAL (Programmable Array Logic)

126
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
GAL (Generic Array Logic)

Présentation:

 L’inconvénient des PALs: ne sont programmables qu’une seule fois.

 LATTICE a donc pensé à remplacer les fusibles irréversibles des PALs par des transistors MOS FET pouvant
être régénérés.  Naissance des GALs « Réseau logique Générique ».

 Ces circuits peuvent donc être reprogrammés à volonté sans pour autant avoir une durée de vie restreinte.
 Les GALs sont constitués de transistor CMOS alors que les PALs classiques sont constitués de transistors
bipolaires.
 La consommation des GALs est plus faible.
 d’autres constructeurs les appellent « PAL CMOS ».
 LATTICE a équipé la plupart de ses GALs de macro-cellules programmables permettant d’émuler n’importe
quel PAL. Ces structures de sortie sont donc du type « Versatile » (V). 127
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
GAL (Generic Array Logic)

Circuits GAL (Generic Array Logic):


– dispositifs programmables par l’utilisateur;
– mis en marché par Lattice Semiconductors en 1985;
– peuvent émuler différents types de PAL.
• Les circuits GAL ont longtemps remplacé les
composantes SSI-LSI, mais ne sont plus manufacturés.

128
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
GAL (Generic Array Logic)
Protection contre la duplication

Les GAL sont dotés d’un bit de sécurité qui peut être activé lors de la programmation,

 empêcher toute lecture du contenu du circuit. Ce bit est remis à zéro seulement en
effaçant complètement le GAL.

 Il est aussi constitué d’un ensemble de huit octets, appelé signature électronique,
pouvant contenir des informations diverses sur le produit.

129
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
GAL (Generic Array Logic)
Référence

130
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
GAL (Generic Array Logic)
Types de GALs
Référence Nombre de Vitesse (nS) Consommation Remarque
broches (mA)
GAL 16V8 20 10, 15 ou 20 55 ou 115 Macro-cellule (1)
GAL 18V10 20 15 ou 20 115 //
GAL 20V8 24 10, 15 ou 25 55 ou 115 //
GAL 20RA10 24 15 ou 20 115 Registre asynchrone (1)
GAL 22V10 24 15, 20 ou 25 130 Macro-cellule (1)
GAL 26V12 28 15 ou 20 130 //
GAL 6001 24 30 ou 35 150 Macro-cellule (1) - Type
FPLA (2)
ispGAL 16Z8 24 20 ou 25 90 Macro-cellule (1) -
Programmable en circuit (3)
* (1) : structure de sortie.
* (2) : Matrices « OU » et « ET » programmables.
* (3) : Circuit reprogrammable à tout moment par liaison série.
131
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
GAL (Generic Array Logic)
Cellule OLMC: (Output Logic Macrocell)

Les Circuits GAL montre une cellule OLMC:


(Output Logic Macrocell)
La sortie de la OLMC peut être:
– En haute impédance;
– sortie combinatoire inversée ou non;
– sortie de bascule inversée ou non;
– renvoyée dans le réseau programmable.

132
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
GAL (Generic Array Logic)
Cellule OLMC: (Output Logic Macrocell)
GAL 16V8
Ces structures de sortie sont programmables et permettent d’émuler n’importe quelle autre
structure de sortie. Elles possèdent en tout 2 bits de programmation communs à toutes les
cellules (CG1 et CG0) et 2 bits spécifiques à chaque cellule (CL0x et CL1x).

133
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables
GAL (Generic Array Logic)
Cellule OLMC: (Output Logic Macrocell)
GAL 16V8

Configurations possibles de la macro-cellule pour le GAL 16V8 :

Configuration de la structure de sortie Circuit PAL émulé


Registre synchrone - sortie 3 états (C1) 16R8
Entrée / Sortie combinatoire - sortie 3 états (C2) 16R4 - 16R6
Entrée et/ou Sortie combinatoire (C3) 10L8 - 12H6
Entrée combinatoire (C4) 12L6
Entrée / Sortie combinatoire - sortie 3 états (C2) 16L8 - 16H8

134
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables complexes
CPLD (Complex Prorammable Logic Devices)

 Les ROM, PLA, PAL et GAL sont parfois appelés des circuits logique
programmable simples (Simple Programmable Logic Devices – SPLD).
 Les Complex Programmable Logic Devices – CPLD – sont une extension naturelle
des circuits PAL.
 Un CPLD incorpore plusieurs PAL sur une seule puce avec un réseau
d’interconnexions.
 Le réseau permet de relier les pattes de la puce à différents blocs internes et de
relier les blocs entre eux.

135
Pr. Abdelmajid HAJAMI
Les circuits logiques programmables complexes
CPLD (Complex Prorammable Logic Devices)

Macro-cellules composés de :
- Une zone de portes logiques
- Une bascule

136
Pr. Abdelmajid HAJAMI
Les FPGA (Fields Programmable Gate Array).

 les FPGAs sont aussi des circuits programmables par l’utilisateur.


 La puissance de ces circuits est telle qu’ils peuvent être composés de
plusieurs milliers voire millions de portes logiques et de bascules. Les
dernières générations de FPGA intègrent même de la mémoire vive (RAM).
 Les deux plus grands constructeurs de FPGA sont XILINX et ALTERA.
 Ils sont composés de blocs logiques élémentaires (plusieurs milliers de portes)
qui peuvent être interconnectés.

137
Pr. Abdelmajid HAJAMI
Les FPGA (Fields Programmable Gate Array).

Structure interne d’un FPGA de type XILINX

I/O Bloc

138
Pr. Abdelmajid HAJAMI
Les FPGA (Fields Programmable Gate Array).

Structure interne d’un FPGA de type XILINX

139
Pr. Abdelmajid HAJAMI
Les FPGA (Fields Programmable Gate Array).

Structure interne d’un FPGA de type XILINX

Fin partie 1 140


Pr. Abdelmajid HAJAMI
Langage VHDL et conception de circuits
VHDL VHSIC Hardware Description Language

VHSIC :Very High Speed Integrated Circuit

141
Pr. Abdelmajid HAJAMI
Le langage VHDL
Introduction
 Écrit dans les années 70 pour réaliser la simulation de circuits électroniques.
 On l’a ensuite étendu en lui rajoutant des extensions pour permettre la conception
(synthèse) de circuits logiques programmables (P.L.D. (Programmable Logic Device).
 Auparavant on utilisait des langages de bas niveau (ABEL, PALASM, ORCAD/PLD,..)pour
décrire le fonctionnement d’un circuit électronique programmable.
 Actuellement il n’est plus possible d’utiliser ces outils car la densité de fonctions logiques
(portes et bascules) intégrée dans les PLDs est grande(plusieurs milliers de portes voire
millions de portes).
 Les sociétés de développement et les ingénieurs ont créé des langages dits de haut niveau
(VHDL et VERILOG). Ces deux langages font abstraction des contraintes technologiques des
circuits PLDs.
 Ils permettent au code écrit d’être portable, c’est à dire qu’une description écrite pour un
circuit peut être facilement utilisée pour un autre circuit

142
Pr. Abdelmajid HAJAMI
Le langage VHDL
Introduction

 Le Verilog et le VHDL ont des capacités techniques équivalentes. Le choix du langage


est souvent dicté par la "culture« de l’équipe de développement ou de l’équipe de
recherche.

 En vue de l’implantation des circuits numériques, le choix du langage VHDL semble


incontournable, puisque quelque soit la cible choisie, ce langage est supporté par la
quasi-totalité des logiciels de CAO.

143
Pr. Abdelmajid HAJAMI
Le langage VHDL
Introduction
VHDL est utilisé pour :

 concevoir des ASIC (application-specific integrated circuits, circuits spécialisés),

 programmer des composants programmables du type PLD, CPLD et FPGA,

 concevoir des modèles de simulations numériques ou des bancs de tests.

• Principe de base: Définir un langage de description de matériel qui puisse être


utilisé pour simuler du matériel numérique
• Extension: Utilisation du même langage pour la synthèse automatique de circuits

144
Pr. Abdelmajid HAJAMI
Le langage VHDL
Langage de description VS Langage de programmation
 VHDL n’est pas un langage de programmation comme le C, c’est un langage de
description matériel.

 un langage de programmation est destiné à être traduit en langage machine puis à


être exécuté par un microprocesseur.

 un langage de description matériel comme VHDL décrit une réalité matérielle, c’est-
à-dire le fonctionnement d’un système numérique. Il va être traduit (synthétisé) en un
ensemble de circuits logiques combinatoires et séquentiels qui vont être implémentés
dans un circuit intégré.

145
Pr. Abdelmajid HAJAMI
Le langage VHDL
Langage de description VS Langage de programmation
comparaison des conceptions pour processeur
et pour circuit logique programmable

146
Pr. Abdelmajid HAJAMI
Le langage VHDL
Description VHDL & PLD

Exemple d’implantation de descriptions VHDL ou de blocs


fonctionnels implantés dans un PLD
147
Pr. Abdelmajid HAJAMI
Le langage VHDL
Description VHDL & PLD

Lors de la phase de synthèse chaque bloc sera matérialisé par des portes et/ou des
bascules. La phase suivante sera d’implanter les portes et les bascules à l’intérieur du
circuit logique.
Cette tâche sera réalisée par le logiciel placement/routage («Fitter»), au cours de laquelle
les entrées et sorties seront affectées à des numéros de broches.
On peut remarquer sur le schéma la fonction particulière du bloc VHDL N°5.
En effet dans la description fonctionnelle d’un PLD on a souvent besoin d’une fonction qui
sert à cadencer le fonctionnement de l’ensemble

148
Pr. Abdelmajid HAJAMI
Le langage VHDL
Organisation fonctionnelle de développement d’un PLD.

Entrée syntaxique
Entrée schématique Langage: Diagrammes d’états
- VHDL
149
Pr. Abdelmajid HAJAMI
150
Pr. Abdelmajid HAJAMI
Le langage VHDL
Structure d’une description VHDL

Une description VHDL est composée de 2 parties indissociables à savoir :

- L’entité (ENTITY), elle définit les entrées et sorties.

- L’architecture (ARCHITECTURE), elle contient les instructions VHDL


permettant de réaliser le fonctionnement attendu.

151
Pr. Abdelmajid HAJAMI
152
Pr. Abdelmajid HAJAMI
Le langage VHDL
Les bases du VHDL
Comme la majorité des langages, le VHDL :
 fait appel à des bibliothèques (library).
 Il utilise des mots clés.
 Les lignes de commandes se terminent par « ; »
 Les commentaires sont précédés par « -- »
 Il utilise indifféremment les majuscules et minuscules.
 Les modèles peuvent être décrits en comportemental, structurel ou mixte
 Il utilise les concepts de base suivant : l’entité (entity), l’architecture (architecture), la
configuration (configuration) et le boitier(Package).
153
Pr. Abdelmajid HAJAMI
Le langage VHDL
Déclaration des bibliothèques
Toute description VHDL utilisée pour la synthèse a besoin de bibliothèques. L’ IEEE les a
normalisées et plus particulièrement la bibliothèque IEEE1164. Elles contiennent les définitions
des types de signaux électroniques, des fonctions et sous programmes permettant de réaliser
des opérations arithmétiques et logiques,...

Library ieee;
Use ieee.std_logic_1164.all;
Use ieee.numeric_std.all;
Use ieee.std_logic_unsigned.all;

-- cette dernière bibliothèque est souvent utilisée pour l’écriture de compteurs

La directive Use permet de sélectionner les bibliothèques à utiliser.

IEEE (Institut of Electrical and Electronics Engineers) 154


Pr. Abdelmajid HAJAMI
Le langage VHDL
Déclaration de l’entité et des E/S (I/O)
Elle permet de définir le NOM de la description VHDL ainsi que les entrées et sorties
utilisées, l’instruction qui les définit c’est port :
Syntaxe:
entity NOM_DE_L_ENTITE is
port ( Description des signaux d’entrées /sorties …);
end NOM_DE_L_ENTITE;

Exemple : Remarque :
entity SEQUENCEMENT is Après la dernière définition de signal de
port ( l’instruction Port il ne faut jamais mettre
CLOCK : in std_logic; de point virgule.
RESET : in std_logic;
Q : out std_logic_vector(1 downto 0)
);
end SEQUENCEMENT;
155
Pr. Abdelmajid HAJAMI
Le langage VHDL
Déclaration de l’entité et des E/S (I/O)
L’instruction port :

Syntaxe:
NOM_DU_SIGNAL : sens type;
Exemple:
CLOCK: in std_logic;
BUS : out std_logic_vector (7 downto 0);

On doit définir pour chaque signal :


Le NOM_DU_SIGNAL, le sens et le type.

156
Pr. Abdelmajid HAJAMI
Le langage VHDL
Déclaration de l’entité et des E/S (I/O)
L’instruction port :

Le nom du signal :
Il est composé de caractères, le premier caractère doit être une
lettre, sa longueur est quelconque, mais elle ne doit pas dépasser une
ligne de code.
VHDL n’est pas sensible à la « casse », c’est à dire qu’il ne fait pas
la distinction entre les majuscules et les minuscules.

157
Pr. Abdelmajid HAJAMI
Le langage VHDL
Déclaration de l’entité et des E/S (I/O)
L’instruction port :

Le sens du signal :
- in : pour un signal en entrée.
- out: pour un signal en sortie.
- inout: pour un signal en entrée sortie
- buffer: pour un signal en sortie mais utilisé comme entrée dans la description.

158
Pr. Abdelmajid HAJAMI
Le langage VHDL
Déclaration de l’entité et des E/S (I/O)
L’instruction port :

Le type du signal :
Le TYPE utilisé pour les signaux d’entrées / sorties est :
- le std_logic pour un signal.
- le std_logic_vector pour un bus composé de plusieurs signaux.

Par exemple un bus bidirectionnel de 5 bits s’écrira :


LATCH : inout std_logic_vector (4 downto 0) ;

LATCH(4) correspond au MSB et LATCH(0) correspond au LSB.

159
Pr. Abdelmajid HAJAMI
Le langage VHDL
Déclaration de l’entité et des E/S (I/O)
L’instruction port :

Les valeurs que peut prendre un signal de type std_logic sont :


- ‘0’ ou ‘L’ : pour un niveau bas.
- ‘1’ ou ‘H’ : pour un niveau haut.
- ‘Z’ : pour état haute impédance.
- ‘-‘ : Quelconque, c’est à dire n’importe quelle valeur.

160
Pr. Abdelmajid HAJAMI
Le langage VHDL
Déclaration de l’entité et des E/S (I/O)
Exemples de description d’entités

entity COUNT is
port(CLK, RST: in std_logic;
CNT : inout std_logic_vector(2 downto 0)
);
end COUNT;

entity COMP4BIT is
port (A,B :in std_logic_vector(3 downto 0);
PLUS,MOINS,EGAL :out std_logic);
end COMP4BIT;

161
Pr. Abdelmajid HAJAMI
Le langage VHDL
Déclaration de l’entité et des E/S (I/O)
Exemples de description d’entités
entity DEC7SEG is
port (
A : in std_logic;
B : in std_logic; entity DEC7SEG4 is
C : in std_logic; port (DEC :in std_logic_vector(3 downto 0);
D : in std_logic; SEG:out std_logic_vector(0 to 6)
SA : out std_logic; );
SB : out std_logic; end DEC7SEG4;
SC : out std_logic;
SD : out std_logic;
SE : out std_logic;
SF : out std_logic;
SG : out std_logic
);
end DEC7SEG;
162
Pr. Abdelmajid HAJAMI
Le langage VHDL
Déclaration de l’entité et des E/S (I/O)
Exemples de description d’entités
Exemple:
Soit le signal d’entrée A de 8 bits, on le déclarera en VHDL comme suit :
A : in std_logic_vector ( 7 downto 0 ) ;
Ou bien : A : in std_logic_vector (0 to 7);
La différence entre les deux expressions est l’indice du MSB et du LSB. Dans la première expression,
l’indice du MSB est A(7), celui du LSB est A(0). Dans la deuxième expression, l’indice du MSB est
A(0), celui du LSB est A(7).

163
Pr. Abdelmajid HAJAMI
Le langage VHDL
Déclaration de l’entité et des E/S (I/O)
Remarque
On peut utiliser le type bit à la place de std_logic, et le type bit_vector à la
place de std_logic_vector,
la différence entre eux est que le type bit ne possède que deux état : ‘0’ et ‘1’
ce qui est très limité car il faut prendre en considération les autres états, c’est
pourquoi on préfère le type std_logic au type bit.

164
Pr. Abdelmajid HAJAMI
Le langage VHDL
Déclaration de l’architecture correspondante à l’entité
description du fonctionnement
L’architecture décrit le fonctionnement souhaité pour un circuit ou une partie du circuit.

En effet le fonctionnement d’un circuit est généralement décrit par plusieurs modules VHDL.
Un module représente le couple ENTITE/ARCHITECTURE.
Dans le cas de simples PLDs on trouve souvent un seul module.

À travers les instructions, l’architecture établit les relations entre les entrées et les sorties.

On peut avoir un fonctionnement purement combinatoire, séquentiel voire les deux séquentiel
et combinatoire.

165
Pr. Abdelmajid HAJAMI
Le langage VHDL
Déclaration de l’architecture correspondante à l’entité
Exemple 1 : Opérateurs logiques de base
-- Opérateurs logiques de base
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; 166
Pr. Abdelmajid HAJAMI
Exemple 2 : Décodeurs 7 segments

-- Décodeurs 7 segments
entity DEC7SEG4 is
port (DEC :in std_logic_vector(3 downto 0);
SEG:out std_logic_vector(0 to 6));
end DEC7SEG4;
architecture DESCRIPTION of DEC7SEG4 is
begin
SEG <= "1111110" when DEC = 0
a
else "0110000" when DEC = 1
else "1101101" when DEC = 2
else "1111001" when DEC = 3 f b
else "0110011" when DEC = 4 g
else "1011011" when DEC = 5
else "1011111" when DEC = 6
else "1110000" when DEC = 7 e c
else "1111111" when DEC = 8
else "1111011" when DEC = 9
else "-------"; d
end DESCRIPTION;
167
Pr. Abdelmajid HAJAMI
Exemple 3/1 : Décodage d’adresses

-- Décodage d’adresses
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;

168
Pr. Abdelmajid HAJAMI
Exemple 3/2 :Décodage d’adresses

-- Décodage d’adresses
architecture DESCRIPTION of DECODAGE is
signal ADRESSE: std_logic_vector(15 downto 0);
begin
ADRESSE <= A15 & A14 & A13 & A12 & A11 & A10 & "----------";
-- définition du bus d’adresses
ROM <= '0' when (ADRESSE >= x"E000") and (ADRESSE <= x"FFFF") else '1';
RAM0 <= '0' when (ADRESSE >= x"0000") and (ADRESSE <= x"03FF") else '1';
RAM1 <= '0' when (ADRESSE >= x"0400") and (ADRESSE <= x"07FF") else '1';
RAM2 <= '0' when (ADRESSE >= x"0800") and (ADRESSE <= x"0BFF") else '1';
RAM3 <= '0' when (ADRESSE >= x"0C00") and (ADRESSE <= x"0FFF") else '1';
INTER1 <= '0' when (ADRESSE >= x"8000") and (ADRESSE <= x"8001") else '1';
INTER2 <= '0' when (ADRESSE >= x"A000") and (ADRESSE <= x"A001") else '1';
INTER3 <= '0' when (ADRESSE >= x"C000") and (ADRESSE <= x"C00F") else '1';
end DESCRIPTION;

169
Pr. Abdelmajid HAJAMI
Le langage VHDL
Les types de base
 Le VHDL est un langage fortement typé. Chaque objet doit être déclaré et appartenir
à un type connu (ensemble de valeurs possibles). Parmi ces types :

 Bit, Boolean, Integer,

 Std_logic (dans la bibliothèque std_logic_1164),

 Bit_vector, Std_logic_vector,

 Signed et Unsigned,(dans la bibliothèque numeric_std),

 Natural (sous type de integer limité aux nombres ≥0),

 Positif ( sous type de integer limité aux nombres >0),

 Character, string 170


Pr. Abdelmajid HAJAMI
Le langage VHDL
Les valeurs explicites
 Entier : codé en binaire sur 23bits

 Entier basé : base#valeur# : 2#11# , 16#1F#

 Valeurs physiques : toujours laisser un espace entre la valeur et l’unité 100 ps 2 ns 5 V

 Caractère : entre apostrophe ‘a’, ‘@’

 Bit : entre apostrophe ‘0’, ‘1’, ‘Z’

 Chaîne de caractères : entre guillemets (attention ici les minuscules et majuscules sont
significatives) "Bonjour "

 Bus : entre guillemets "01111001 "

171
Pr. Abdelmajid HAJAMI
Le langage VHDL
Les instructions de base («mode concurrent ») Logique combinatoire
le mode « concurrent »
 Pour une description VHDL toutes les instructions sont évaluées et
affectent les signaux de sortie en même temps.
 L’ordre dans lequel elles sont écrites les instructions n’a aucune
importance.
 La description VHDL génère des structures électroniques, c’est la
grande différence entre une description VHDL et un langage
informatique classique.
 Dans un système à microprocesseur, les instructions sont exécutées
les unes à la suite des autres
172
Pr. Abdelmajid HAJAMI
Le langage VHDL
Les instructions de base («mode concurrent ») Logique combinatoire
Exemple
architecture DESCRIPTION of DECOD1_4 is
begin
D0 <= (not(IN1) and not(IN0)); -- première instruction
D1 <= (not(IN1) and IN0); -- deuxième instruction
D2 <= (IN1 and not(IN0)); -- troisième instruction
D3 <= (IN1 and IN0); -- quatrième instruction
end DESCRIPTION;
architecture DESCRIPTION of DECOD1_4 is
begin
D1 <= (not(IN1) and IN0); -- deuxième instruction
D2 <= (IN1 and not(IN0)); -- troisième instruction
D0 <= (not(IN1) AND not(IN0)); -- première instruction
D3 <= (IN1 AND IN0); -- quatrième instruction
end DESCRIPTION;
173
Pr. Abdelmajid HAJAMI
Le langage VHDL
Les instructions de base («mode concurrent ») Logique combinatoire
Les opérateurs : l’affectation simple <=
Il permet de modifier l’état d’un signal en fonction d’autres signaux et/ou d’autres
opérateurs.
S1 <= E2 and E1 ;
Les valeurs numériques que l’on peut affecter à un signal sont les suivantes :
- ‘1’ ou ‘H’ pour un niveau haut avec un signal de 1bit.
- ‘0’ ou ‘L’ pour un niveau bas avec un signal de 1bit.
- ‘Z’ pour un état haute impédance avec un signal de 1bit.
- ‘-’ pour un état quelconque, c’est-à-dire ‘0’ ou ‘1’.
- Pour les signaux composés de plusieurs bits on utilise les guillemets " … ",
Les bases numériques utilisées pour les bus peuvent être :
BINAIRE , exemple : BUS <= "1001" ; -- BUS = 9 en décimal
HEXA , exemple : BUS <= X"9" ; -- BUS = 9 en décimal
Pr. Abdelmajid HAJAMI
OCTAL , exemple : BUS <= O"11" ; -- BUS = 9 en décimal 174
Le langage VHDL Les opérateurs : l’affectation simple <=
Library ieee; Les opérateurs d’affectation :
Use ieee.std_logic_1164.all; <= affectation à un signal
entity AFFEC is := affectation à une variable
port (
E1,E2 : in std_logic;
BUS1,BUS2,BUS3 : out std_logic_vector(3 downto 0);
S1,S2,S3,S4 : out std_logic);
end AFFEC;
architecture DESCRIPTION of AFFEC is
begin
S1 <= '1'; -- S1 = 1
S2 <= '0'; -- S2 = 0
S3 <= E1; -- S3 = E1
S4 <= '1' when (E2 ='1') else 'Z'; -- S4 = 1 si E1=1 sinon S4
-- prend la valeur haute impédance
BUS1 <= "1000"; -- BUS1 = "1000"
BUS2 <= E1 & E2 & "10"; -- BUS2 = E1 & E2 & 10
BUS3 <= x"A"; -- valeur en HEXA -> BUS3 = 10(déc)
end DESCRIPTION;
175
Pr. Abdelmajid HAJAMI
Le langage VHDL
Les instructions de base («mode concurrent ») Logique combinatoire
L’opérateur de concaténation : &

Cet opérateur permet de joindre des signaux entre eux .

-- Soit A et B de type 3 bits et S1 de type 8 bits


-- A = "001" et B ="110"
S1 <= A & B & "01" ;
-- S1 prendra la valeur suivante après cette affectation
-- S1 = "00111001"

Valeur de A Valeur de B
"001" « 110"

176
Pr. Abdelmajid HAJAMI
Le langage VHDL
Les instructions de base («mode concurrent ») Logique combinatoire
Les opérateurs logiques
Opérateur VHDL
ET and
NON ET nand
OU or
S1 <= A sll 2 ; -- S1 = A décalé de 2 bits à gauche.
NON OU nor
S2 <= A rol 3 ; -- S2 = A avec rotation de 3 bits à gauche
OU EXCLUSIF xor
S3 <= not (R); -- S3 = R
N OU EXCLUSIF xnor
NON not

DECALAGE A GAUCHE sll


DECALAGE A DROITE srl
ROTATION A GAUCHE rol
ROTATION A DROITE ror
177
Pr. Abdelmajid HAJAMI
Le langage VHDL
Les instructions de base («mode concurrent ») Logique combinatoire
Les opérateurs logiques
Pour réaliser des décalages logiques en synthèse logique,
il est préférable d’utiliser les instructions suivantes

Décalage à droite :
-- Si A est de type std_logic_vector(7 downto 0)
S1 <= ‘0’ & A(7 downto 1); -- décalage d’un bit à droite
S1 <= "000" & A(7 downto 3); -- décalage de trois bits à droite

Décalage à gauche :
-- Si A est de type std_logic_vector(7 downto 0)
S1 <= A(6 downto 0) & ‘0’; -- décalage d’un bit à gauche
S1 <= A(4 downto 0) & "000"; -- décalage de trois bits à gauche
178
Pr. Abdelmajid HAJAMI
Le langage VHDL
Les instructions de base («mode concurrent ») Logique combinatoire
Les opérateurs arithmétiques

Pour pouvoir utiliser les opérateurs ci-dessus il faut rajouter les bibliothèques
suivantes au début du fichier VHDL:
Use ieee.numeric_std.all ;
Use ieee.std_logic_arith.all ;

179
Pr. Abdelmajid HAJAMI
Le langage VHDL
Les instructions de base («mode concurrent ») Logique combinatoire
Les opérateurs relationnels

Ils permettent de modifier l’état d’un signal ou de signaux suivant le résultat d’un
test ou d’une condition. En logique combinatoire ils sont souvent utilisés avec les
instructions :
- when … else …
- with …. Select ….
180
Pr. Abdelmajid HAJAMI
Le langage VHDL
Les instructions de base («mode concurrent ») Logique combinatoire
L’affectation conditionnelle

Cette instruction modifie l’état d’un signal suivant le résultat d’une condition logique
entre un ou des signaux, valeurs, constantes.

SIGNAL <= expression when condition


[else expression when condition]
[else expression];
-- S1 prend la valeur de E2 quand E1=’1’ sinon S1 prend la valeur ‘0’
S1 <= E2 when ( E1= ‘1’) else ‘0’;

181
Pr. Abdelmajid HAJAMI
Le langage VHDL
Les instructions de base («mode concurrent ») Logique combinatoire
L’affectation conditionnelle
-- Structure évoluée d’un multiplexeur 4 vers 1
S2 <= E1 when (SEL="00" ) else
E2 when (SEL="01" ) else
E3 when (SEL="10" ) else
E4 when (SEL="11" )
else ‘0’;

182
Pr. Abdelmajid HAJAMI
Le langage VHDL
Les instructions de base («mode concurrent ») Logique combinatoire
L’affectation sélective
Cette instruction permet d’affecter différentes valeurs à un signal, selon les valeurs
prises par un signal dit de sélection.

with SIGNAL_DE_SELECTION select


SIGNAL <= expression when valeur_de_selection_1,
[expression when valeur_de_selection_2,]
[expression when others];

l’instruction [expression when others] n’est pas obligatoire mais fortement


conseillée, elle permet de définir la valeur du SIGNAL dans le cas où la condition n’est
pas remplie.

183
Pr. Abdelmajid HAJAMI
Le langage VHDL
Les instructions de base («mode concurrent ») Logique combinatoire
L’affectation sélective
-- Multiplexeur 4 vers 1
with SEL select
S2 <= E1 when "00",
E2 when "01",
E3 when "10",
E4 when "11",
'0' when others;

184
Pr. Abdelmajid HAJAMI
Le langage VHDL
Les instructions du mode séquentiel Logique séquentielle

Process
 Un process est une partie de la description d’un circuit dans laquelle les
instructions sont exécutées séquentiellement c’est à dire les unes à la suite
des autres.
 Il permet d’effectuer des opérations sur les signaux en utilisant les instructions
standard de la programmation structurée comme dans les systèmes à
microprocesseurs.
 L’exécution d’un process est déclenchée par un ou des changements d’états
de signaux logiques. Le nom de ces signaux est défini dans la liste de
sensibilité lors de la déclaration du process.

185
Pr. Abdelmajid HAJAMI
Le langage VHDL
Les instructions du mode séquentiel Logique séquentielle

Process
[Nom_du_process :] process(Liste_de_sensibilité_nom_des_signaux)
Begin
-- instructions du process
end process [Nom_du_process] ;
Remarque:
Le nom du process entre crochet est facultatif, mais il peut être très utile pour
repérer un process parmi d’autres lors de phases de mise au point ou de simulations.

186
Pr. Abdelmajid HAJAMI
Le langage VHDL
Les instructions du mode séquentiel Logique séquentielle

Process
Règles de fonctionnement d’un process.
1) L’exécution d’un process a lieu à chaque changement d’état d’un signal de la liste
de sensibilité.
2) Les instructions du process s’exécutent séquentiellement.
3) Les changements d’état des signaux par les instructions du process sont pris en
compte à la fin du process.

187
Pr. Abdelmajid HAJAMI
Le langage VHDL
Les instructions du mode séquentiel Logique séquentielle

Les structures utilisées dans un Process


L’assignation conditionnelle
if condition then
instructions
[elsif condition then instructions]
[else instructions]
end if ;
--Exemple:
if (RESET=’1’) then SORTIE <= ”0000”;
end if ;
188
Pr. Abdelmajid HAJAMI
Le langage VHDL
Les instructions du mode séquentiel Logique séquentielle

Les structures utilisées dans un Process


L’assignation sélective
case signal_de_slection is
when valeur_de_sélection => instructions
[when others => instructions]
end case;

189
Pr. Abdelmajid HAJAMI
Le langage VHDL
Les instructions du mode séquentiel Logique séquentielle

Les structures utilisées dans un Process


--Exemple L’assignation sélective
case SEL is
when “000” => S1 <= E1;
when “001” => S1 <= ‘0’;
when “010” | “011” => S1 <=’1’;
-- La barre | permet de réaliser un ou logique entre les deux
-- valeurs “010” et “011”
when others => S1 <= ‘0’;
end case;
190
Pr. Abdelmajid HAJAMI
Le langage VHDL
Exemple de Process : Déclaration d’une bascule D
Library ieee;
Use ieee.std_logic_1164.all;
Use ieee.numeric_std.all;
Use ieee.std_logic_unsigned.all;
entity BASCULED is
port (
D,CLK : in std_logic;
S : out std_logic);
end BASCULED;
architecture DESCRIPTION of BASCULED is
begin
PRO_BASCULED : process (CLK)
begin
if (CLK'event and CLK ='1') then
S <= D;
end if;
end process PRO_BASCULED;
end DESCRIPTION; 191
Pr. Abdelmajid HAJAMI
Le langage VHDL
Exemple de Process : Déclaration d’une bascule D
Library ieee;
Use ieee.std_logic_1164.all;
Use ieee.numeric_std.all; - Seul le signal CLK fait partie de la liste de
Use ieee.std_logic_unsigned.all; sensibilité. D’après les règles de fonctionnement
entity BASCULED is énoncées précédemment, seul un changement
port ( d’état du signal CLK va déclencher le process et
D,CLK : in std_logic; par conséquent évaluer les instructions de celui-ci.
S : out std_logic);
end BASCULED;
architecture DESCRIPTION of BASCULED is
begin
PRO_BASCULED : process (CLK)
begin
if (CLK'event and CLK ='1') then
S <= D;
end if;
end process PRO_BASCULED;
end DESCRIPTION; 192
Pr. Abdelmajid HAJAMI
Le langage VHDL
Exemple de Process : Déclaration d’une bascule D
Library ieee;
Use ieee.std_logic_1164.all;
Use ieee.numeric_std.all; - L’instruction if (CLK'event and CLK='1') then
Use ieee.std_logic_unsigned.all;
permet de détecter un front montant du signal CLK
entity BASCULED is
. La détection de front est réalisée par l’attribut Event
port (
appliqué à l’horloge CLK
D,CLK : in std_logic;
. Si on veut un déclenchement sur un front descendant, il
S : out std_logic);
faut écrire l’instruction suivante :
end BASCULED; if (CLK'event and CLK='0').
architecture DESCRIPTION of BASCULED is
begin
PRO_BASCULED : process (CLK)
begin
if (CLK'event and CLK ='1') then
S <= D;
end if;
end process PRO_BASCULED;
end DESCRIPTION; 193
Pr. Abdelmajid HAJAMI
Le langage VHDL
Exemple de Process : Déclaration d’une bascule D + RESET + SET

Même exemple que précédemment mais avec des entrées de présélections


de mise à zéro RESET prioritaire sur l’entrée de mise à un SET, toutes les
deux sont synchrones de l’horloge CLK.

194
Pr. Abdelmajid HAJAMI
Library ieee;
Use ieee.std_logic_1164.all;
Use ieee.numeric_std.all;
Use ieee.std_logic_unsigned.all;
entity BASCULEDSRS is
port (
D,CLK,SET,RESET : in std_logic;
S : out std_logic);
end BASCULEDSRS;
architecture DESCRIPTION of BASCULEDSRS is
begin
PRO_BASCULEDSRS : process (CLK)
Begin
if (CLK'event and CLK ='1') then
if (RESET =’1’) then
S <= ‘0’;
elsif (SET =’1’)then
S <= ‘1’;
else
S <= D;
end if;
end if;
end process PRO_BASCULEDSRS;
end DESCRIPTION; 195
Pr. Abdelmajid HAJAMI
Le langage VHDL

Simulation : utilisation de composant

 Pour tester un projet, il faut utiliser un programme de test écrit en langage


VHDL.
 Ce programme contient une déclaration des bibliothèques, la déclaration
de l’entité du module de test à proprement dit et le code correspondant.

Exemple : simulation de la porte ET en VHDL

196
Pr. Abdelmajid HAJAMI
Le langage VHDL

Simulation : Porte ET Step 1

 Déclaration des bibliothèques

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

197
Pr. Abdelmajid HAJAMI
Le langage VHDL

Simulation : Porte ET Step 2

 Déclaration de l’entité test


ENTITY TestPorteET IS
Aucune entrée – Aucune sortie END TestPorteET ;

TestPorteET

198
Pr. Abdelmajid HAJAMI
Le langage VHDL

Simulation : Porte ET Step 3

 Déclaration de l’architecture de test


ARCHITECTURE Test OF TestPorteET IS
SIGNAL s_entree1 : Std_Logic := '0';
Déclaration des signaux internes SIGNAL s_entree2 : Std_Logic := '0';
SIGNAL s_sortie : Std_Logic := 'Z';
TestPorteET

s_entree1
s_sortie
s_entree1, s_entree2 et s_sortie
sont des signaux internes au
programme de test,
s_entree2

199
Pr. Abdelmajid HAJAMI
Le langage VHDL

Simulation : Porte ET Step 4


COMPONENT PorteET
PORT (
 Déclaration d’un composant entree1 : IN Std_Logic ;
entree2 : IN Std_Logic ;
Référence à un composant !! sortie : OUT Std_Logic
) ;
TestPorteET END COMPONENT;
Il s’agit d’une déclaration d’un
s_entree1 composant de type PorteET
s_sortie

PorteET
s_entree2 entree1
sortie
entree2

200
Pr. Abdelmajid HAJAMI
Le langage VHDL

Simulation : Porte ET Step 5

 Instanciation d’un composant porte : PorteET

Instance d’un composant √

TestPorteET
Il s’agit d’une instanciation d’un
s_entree1 PorteET composant de type PorteET
s_sortie
entree1
sortie
entree2
PorteET
s_entree2 Porte
entree1
sortie
entree2

201
Pr. Abdelmajid HAJAMI
Le langage VHDL

Simulation : Porte ET Step 6

 Câblage du composant (maping) porte : PorteET


PORT MAP (s_entree1,
s_entree2,
Instance d’un composant √
s_sortie);
TestPorteET
Le maping s’effectue en prenant
s_entree1 PorteET en compte l’ordre des signaux
s_sortie dans PorteET
entree1
sortie
entree2
PorteET
s_entree2 Porte
entree1
sortie
entree2

202
Pr. Abdelmajid HAJAMI
Le langage VHDL PROCESS
BEGIN
WAIT FOR 10 ns;
s_entree1 <= '0';
Simulation : Porte ET Step 7 s_entree2 <= '0';
WAIT FOR 10 ns;
s_entree1 <= '0';
 Génération des signaux s_entree2 <= '1';
Le mapping s’effectue en WAIT FOR 10 ns;
prenant en compte l’ordre des s_entree1 <= '1';
signaux dans PorteET s_entree2 <= '1';
TestPorteET WAIT FOR 10 ns;
s_entree1 <= '1';
s_entree2 <= '0';
s_entree1 PorteET WAIT FOR 10 ns;
s_sortie
entree1 s_entree1 <= '0';
sortie
entree2 s_entree2 <= '0';
PorteET WAIT FOR 10 ns;
s_entree2 Porte
entree1
sortie WAIT ;
entree2
END PROCESS
Pr. Abdelmajid HAJAMI
END Test; 203
Le langage VHDL

ToDo

204
Pr. Abdelmajid HAJAMI
Le langage VHDL

TD 1

 Donner la description VHDL du circuit combinatoire suivant

A
inter1
B

S
C

D
inter2

205
Pr. Abdelmajid HAJAMI
Le langage VHDL

TD 1

 Donner la description VHDL du circuit combinatoire suivant


A inter1
B
S
C

D inter2

206
Pr. Abdelmajid HAJAMI
Le langage VHDL

TD 2

207
Pr. Abdelmajid HAJAMI
Le langage VHDL

TD 2

208
Pr. Abdelmajid HAJAMI
Le langage VHDL

TD 2

209
Pr. Abdelmajid HAJAMI
Le langage VHDL

TD 2

Fin partie 2 210


Pr. Abdelmajid HAJAMI
Le langage VHDL

TP : ModelSim

211
Pr. Abdelmajid HAJAMI
Le langage VHDL

TP : ModelSim

Fin partie 2

212
Pr. Abdelmajid HAJAMI
Microcontrôleurs
Etudes et programmation

213
Pr. Abdelmajid HAJAMI
Architecture d’un µcontroleur
Définitions : Microprocesseur
 un microprocesseur consiste en une unité centrale de traitement (UAL + registres +
unité de contrôle) entièrement contenue dans un seul circuit intégré.
Data Bus

Flag Register 1
Accumulateur 1 Register 2
Accumulateur 2 Register d’Indexe
ALU
Pointeur de pile
Multiplexeur

Compteur ordinaire

Control unit @
Unité de traitement
ctrl cmd Unité de commande
µprocesseur
214
Pr. Abdelmajid HAJAMI
Architecture d’un µcontroleur
Définitions : Calculateur
 Construit autour d’un microprocesseur il contient :

2
1
215
Pr. Abdelmajid HAJAMI
Architecture d’un µcontroleur
Définitions : microcontrôleur
 Construit autour d’un microprocesseur il contient :

Clk RAM ROM EPROM

Data Bus
central @ Bus
Unit
Control Bus

Parallel Serial
CAN Timer
I/O I/O

216
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11

Structure du 68HC11
Développé par MOTOROLA (devenue Feescale) construit autour d’une UCT 8 bits, il possède :
 un espace adressable de 64 Ko (bus d'adresses de 16 bits).
 Un convertisseur analogique/numérique 8 bits multiplexé sur 8 canaux (8 entrées multiplexées).
 Une interface de communication série asynchrone (RS232) (SCI)
 Une interface de communication série synchrone (SPI)
 Un timer 16 bits avec 3 entrées de capture et 4 sorties de comparaison plus 1 E/S programmable (Port A)
 22 sources d'interruptions (internes et externes)
 38 broches d'E/S polyvalentes réparties sur 5 ports (A, B, C, D).

217
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11
Structure interne du 68HC11

218
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11

Structure du 68HC11
 Ports d’entrées sorties

219
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11

Structure du 68HC11 : Ports d’entrées sorties


 Les échanges des informations entre le µC et l’environnement
extérieure se fait au moyen des ports d ’E/S.
 Le 68HC11 comporte 5 port s d’E/S :
 4 ports de 8 bits (8 lignes E/S) : A, B, C, E A E
 1 ports de 6 bits (6 lignes E/S) : D
B D
C
 Certaines lignes sont des Entrées,
 Certaines lignes sont des Sorties,
 Certaines lignes peuvent être programmées soit en Entrée ou en
Sortie,
220
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11

Structure du 68HC11 : Configuration des entrées sorties

 Le port B (adresse : $1004) : ne se configure pas; toujours ses lignes sont des
sorties
Port B
PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0

 Le port E (adresse : $100A) : ne se configure pas; toujours ses lignes sont des
entrées
Port E
PE7 PE6 PE5 PE4 PE3 PE2 PE1 PE0

221
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11

Structure du 68HC11 : Configuration des entrées sorties

 Le port A (adresse : $1000) : possède 3 lignes d’entrée; 3 lignes de sorties et 2


lignes d’E/S
Port A
PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0

 La programmation des lignes PB3 et PB7 se fait en positionnant les bits DDRA
3 et DDRA7 du registre PACTL (adresse : $1026)
 Un bit à 1  ligne configurée en sortie PACTL
 Un bit à 0  ligne configurée en entrée DDRA7
1
DDRA3
1
0 0
222
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11

Structure du 68HC11 : Configuration des entrées sorties

 Le port C (adresse : $1003) : est entièrement configurable en E/S


Port C
PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0

 La programmation des lignes se fait en positionnant les bits du registre DDRC


(adresse : $1007)
 Un bit à 1  ligne configurée en sortie DDRC
 Un bit à 0  ligne configurée en entrée 1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0

223
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11

Structure du 68HC11 : Configuration des entrées sorties

 Le port D (adresse : $1008) : contient 6 lignes configurable en E/S


Port D
PD5 PD4 PD3 PD2 PD1 PD0

 La programmation des lignes se fait en positionnant les bits du registre DDRD


(adresse : $1009)
 Un bit à 1  ligne configurée en sortie DDRD
 Un bit à 0  ligne configurée en entrée 1
0
1
0
1
0
1
0
1
0
1
0

224
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11
Brochage du 68HC11
Le 68HC11E2 est inclus dans un boitier à 52 broches. En plus des 38 E/S des ports, il possède 14 broches:
 VSS et VDD: alimentation VDD=5V, VSS=0.
 XTAL et EXTAL: connections d'un quartz ou d'une horloge externe.
 E et 4XOUT: sorties d'horloge.
 IRQ et XIRQ: entrées d'interruptions externes.
 VRH et VRL: tension de référence pour la conversion A/N. VRH<VDD.
 MODA et MODB: mode de fonctionnement.
 RESET: signal d'initialisation.
 STRA et STRB: en mode normal (monopuce), signaux de communication avec une interface parallèle

225
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11
Mode de fonctionnement du 68HC11
Le 68 HC 11 est prévu pour fonctionner sous 4 modes qui sont :
 1) Mode circuit seul (Single Chip). (MODA = 0; MODB = 1)
Démarrage en ROM ou EEPROM.
 2) Mode étendu (ou multiplexé). (MODA = 1; MODB = 1)
Adressage sur 16 bits (64ko),possibilité d'ajouter des circuits d'interface.
 4) Mode Spécial Bootstrap. (MODA = 0; MODB = 0)
Le programme est téléchargé en RAM via l'interface série (SCI) puis exécuté.
 3) Mode Spécial Test. (MODA = 1; MODB = 0)
C'est un mode de fonctionnement réservé aux tests en usine, lors de la fabrication.

226
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11
Registres internes du 68HC11

7 A 0 7 B 0
15 D 0

15 IX 0

15 IY 0

15 SP 0

15 PC 0

7 CCR 0

227
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11
Registres internes du 68HC11
Les registres 8 bits :
Accumulateurs A et B deux registres 8 bits chacun, pour manipuler des
données sur 1 Octet,
La concaténation des registre A et B constitue un registre 16 bits appelé B

7 A 0 7 B 0

15 D 0

NB : D ce n’est pas un registre indépendant; c’est la concaténation de A et B.

228
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11
Registres internes du 68HC11
Les registres 8 bits : Le registre d’état CCR
 Il s’agit d’un registre qui est susceptible d’être modifié à chaque fois
qu’une instruction est exécutée,
7 CCR 0

S X H I N Z V C

C; Carry : Mis à 1 en cas de retenue lors d'une opération


arithmétique. Indique un débordement en contexte non-signé.

V; Overfow: Débordement en contexte signé.

Z; Zero: Mis à 1 si le résultat d'une opération vaut zéro.


229
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11
Registres internes du 68HC11
Les registres 8 bits : Le registre d’état CCR
 Il s’agit d’un registre qui est susceptible d’être modifié à chaque fois
qu’une instruction est exécutée,
7 CCR 0

S X H I N Z V C

N; Negative: Mis à 1 pour un résultat négatif (contexte signé).

I; Interrupt mask: Mis à 1 pour interdire les interruptions


masquables.
H; Half-Carry: Demi-retenue. Utilisée pour les opérations
Pr. Abdelmajid HAJAMI
en DCB. 230
Le µcontrôleur 68HC11
Registres internes du 68HC11
Les registres 8 bits : Le registre d’état CCR
 Il s’agit d’un registre qui est susceptible d’être modifié à chaque fois
qu’une instruction est exécutée,
7 CCR 0

S X H I N Z V C

X; X interrupt mask : Interruption non-masquable (entrée


XIRQ). Une fois mis à 0, ne peut plus être mis à 1.

S; Stop disable: mis à 1 pour inactiver l'instruction stop (valeur


par défaut au RESET)

231
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11
Registres internes du 68HC11
Les registres 16 bits

15 D 0 A + B : concaténation de A et B

15 IX 0
Registres indexes
15 IY 0

15 SP 0 Stack pointer : pointeur de pile

15 PC 0 Program pointer : pointeur de programme

232
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11
Registres internes du 68HC11
Les registres 16 bits

15 D 0 A + B : concaténation de A et B
Pour manipuler des données sur 16 bits

233
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11
Registres internes du 68HC11
Les registres 16 bits

15 IX 0
Registres indexes
15 IY 0

Ils peuvent être utilisés pour manipuler des données sur 16 bits; mais ils sont
très utilisés pour l’adressage indexé comme des registre d’indexe pour
manipuler des adresses.

234
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11
Registres internes du 68HC11
Les registres 16 bits

15 SP 0 Stack pointer : pointeur de pile

15 PC 0 Program pointer : pointeur de programme

SP est le pointeur de pile : il indique en permanence la prochaine adresse libre


de la pile.
PC est le compteur ordinal: il contient l’adresse de la prochaine instruction du
programme qui sera exécutée.

235
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11
Plan mémoires du 68HC11

236
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11
Start
Ecriture d’un programme Etablissement du cahier de charge

Décomposition en Sous Problèmes

Concevoir la solution (Organigramme)

Ecrire le programme source (PS)

Assembler en programme objet (CO)

Tester le programme

Non Test
OK ?

Chargement dans EPROM

Pr. Abdelmajid HAJAMI


End 237
Le µcontrôleur 68HC11
Jeux d’instructions du 68HC11 : Familles d’instruction
Classement en 5 grandes familles:
 Instructions de traitement: regroupent les opérations arithmétiques et logiques sur les
données. exécutées entre registres ou entre registre et mémoire, le résultat étant stocké
dans un registre.
 Instructions de chargement/rangement: Pour être traitées, les données doivent être
chargées dans les registres et les résultats stockés en mémoire.
 chargement (load): registre  mémoire.
 rangement (store): mémoire  registre
 Instructions de branchement : Par défaut les instructions s'exécutent séquentiellement
dans l'ordre de rangement en mémoire. Les branchements permettent de dérouter un
programme de manière conditionnelle.
238
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11
Jeux d’instructions du 68HC11 : Familles d’instruction
Classement en 5 grandes familles:
 Sous-programmes, pile et interruptions: Les instructions de cette catégorie
permettent
 de gérer des sous-programmes (instructions d'appel et de retour)
 de gérer des interruptions (sous-programmes particuliers).
 de gérer explicitement une structure de données de type pile (utilisée de manière implicite
par les sous-programmes).
 Instructions diverses : On range dans cette catégorie les instructions systèmes ou des
instructions inclassables par ailleurs (Exemple: l'instruction nop qui ne fait rien!)

239
Pr. Abdelmajid HAJAMI
Le µcontrôleur 68HC11
Jeux d’instructions du 68HC11 : Structure d’une instruction
Une instruction est composée de deux parties distincts et consécutives

Opérateur Opérande (s)


(Obligatoire) (Facultatifs selon le cas)

LDAA # $20

Certains opérateurs ne nécessitent pas d’opérandes. Ce sont des opérations


sur registres
CLRA

240
Pr. Abdelmajid HAJAMI

Vous aimerez peut-être aussi