Professional Documents
Culture Documents
ElecNum T4
ElecNum T4
Electronique Numérique
4ème tome
Systèmes séquentiels avancés
MSS complexes
Etienne Messerli
Sylvain Krieg
Mars 2013
Version 0.4b
Mise à jour de ce manuel
Je remercie tous les utilisateurs de ce manuel de m’indiquer les erreurs qu’il comporte. De mê-
me, si des informations semblent manquer ou sont incomplètes, elles peuvent m’être transmi-
ses, cela permettra une mise à jour régulière de ce manuel.
Etienne Messerli
Contact
Coordonnées à la HEIG-VD :
Institut REDS
HEIG-VD
Haute Ecole d'Ingénierie et de Gestion du Canton de Vaud
Route de Cheseaux 1
CH-1400 Yverdon-les-Bains
Tél : +41 (0)24 / 55 76 330
R DS
Reconfigurable &embedded
Internet : http://www.heig-vd.ch Digital Systems
Institut REDS
Internet : http://www.reds.ch
I
Table des matières Vesion du 4 mars 2013
Fonctionnement désiré. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Collecteur de monnaie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Échangeur de monnaie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Description des signaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Mécanisme distributeur de billets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4-2. Schéma-bloc général et organigramme grossier ......................................... 46
4-3. Partition commande / traitement .................................................................. 48
4-4. Exercices ......................................................................................................... 51
4-5. Organigramme détaillé .................................................................................. 52
4-6. UC câblée ........................................................................................................ 57
Description VHDL de l’UC câblée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4-7. Exercices ......................................................................................................... 61
II
Chapitre 1
1
Chapitre 1: Décomposition machine séquentielle complexe Version du 4 mars 2013
commande1 Sous-machine 1
quittance1
Sous-machine 0
entrées (machine sorties
principale) commande2
quittance2
Sous-machine 2
2
Electronique numérique Systèmes séquentiels avancés, Tome 4
Unité de
commandes sorties
commande
entrées quittances
Unité de
traitement
3
Chapitre 1: Décomposition machine séquentielle complexe Version du 4 mars 2013
Ei-1 Ei-1
0 0
Fini
Ei Ei Unité de
1 1 séquencement
Fini
Sortie Ei+1
active 1
pendant
n états
Compteur
Ei+n
Enable Décodeur
1 Fini
Sortie
Ei+n+1 Ei+1
0 0
Unité de traitement
a) b) c)
4
Electronique numérique Systèmes séquentiels avancés, Tome 4
H1 H2 H3
Décodage
Calcul et sorties
entrées Calcul des synchro. des
Multiplex. et Générateur
commandes de sorties et des
synchro. d’états
séquencement commandes de
l’UT
État de la séquence
Quittances ou Commandes
états de l’UT vers l’UT
5
Chapitre 1: Décomposition machine séquentielle complexe Version du 4 mars 2013
6
Electronique numérique Systèmes séquentiels avancés, Tome 4
H1 H2 H3
Calcul et
Décodage condition synchro. des
sorties
entrées
Multiplex. Calcul des Compteur adresse Mémoire de sorties et
et synchro. commandes de micro- micro- des
du µPC programme programme commandes
de l’UT
Commande de séquencement
Quittances ou Commandes
états de l’UT Sélection des entrées (conditions) vers l’UT
Les deux blocs regroupés dans un traitillé constituent ce que l'on appelle
un micro-séquenceur. Son rôle est de générer l'adresse de la prochaine mi-
croinstruction, en fonction de la commande de séquencement et de l'entrée
de condition (il n'y a normalement qu'une entrée de condition, connectée à
la sortie du multiplexeur de conditions). Le bloc de calcul des commandes
du uPC décode les commandes de séquencement provenant de la microins-
truction en cours et en tire les signaux de commande du uPC, tenant comp-
7
Chapitre 1: Décomposition machine séquentielle complexe Version du 4 mars 2013
8
Electronique numérique Systèmes séquentiels avancés, Tome 4
entrées
inter
fonction 1 action fonction 2 fonction n
(ex: ctr ) (ex: comp)
sorties
Horloge
9
Chapitre 1: Décomposition machine séquentielle complexe Version du 4 mars 2013
H
entrées Opérande A
MUX Registres ALU
(RAM à Opérande B (unité résultats
double arithmétique
accès) report et logique)
sorties
Avec les deux structures de base définies pour les UC d'une part et les
UT d'autre part, nous obtenons quatre combinaisons UC+UT possibles:
1)UC câblée et UT spécialisée
-avec circuits discrets (exemple TTL): pratiquement plus utilisé.
-avec PLD, très utilisé depuis l’arrivée de PLD "Low cost".
2)UC microprogrammable et UT spécialisées
10
Electronique numérique Systèmes séquentiels avancés, Tome 4
Coût
production UC câblée & UT spécialisée
dans PLD
UC câblée - UT spécialisée
(circuits TTL)
UC microprogrammée Micro-contrôleur
(UT universelle)
complexité
11
Chapitre 1: Décomposition machine séquentielle complexe Version du 4 mars 2013
12
Chapitre 2
Méthode de conception
1) Établir les spécifications ou, si elles sont déjà données, les étudier
d'un oeil critique pour s'assurer qu'elles sont complètes, qu'elles correspon-
dent bien aux besoins à couvrir, et qu'elles n'introduisent pas des contrain-
tes superflues.
13
Chapitre 2: Méthode de conception Version du 4 mars 2013
2) Définir les relations temporelles désirées liant les entrées et les sor-
ties de notre machine, ceci à l'aide de chronogrammes. Prendre aussi note
de toute les contraintes spéciales de fréquence, débit d'information ou
temps de réponse.
14
Electronique numérique Systèmes séquentiels avancés, Tome 4
15
Chapitre 2: Méthode de conception Version du 4 mars 2013
16
Chapitre 3
17
Chapitre 3: Application de la méthodologie de conception à la multiplication Version du 4 mars 2013
Schéma-bloc général
Start
Multiplicateur Done
4
Multiplication
Multiplicande Resultat
séquentielle
4
Reset 8
Clk
18
Electronique numérique Systèmes séquentiels avancés, Tome 4
clk
Start
Done
Algorithme
La première phase de la conception consiste à établir un algorithme ré-
pondant au cahier des charges. Cet algorithme a été étudié lors du chapitre
sur la numération et l'arithmétique. Voici celui-ci:
Resultat_Haut := 0;
Resultat_Bas := Multiplicateur;
Resultat := Resultat_Haut & Resultat_Bas;
19
Chapitre 3: Application de la méthodologie de conception à la multiplication Version du 4 mars 2013
Dans ce qui suit, nous allons utiliser une autre forme de représentation
graphique, appelée "organigramme" ("flow-chart" ou "flow diagram", en
anglais), qui offre l'avantage d'être utilisable, non seulement pour décrire
l'algorithme de fonctionnement général, mais aussi pour décrire une réali-
sation à l'aide d'un microprocesseur ou d'une unité de commande micro-
programmée. Contrairement à un graphe d'états, un organigramme met
l'accent sur la séquence des actions qu'il faut commander, plutôt que sur
une séquence d'états. Une action pourra par la suite être une suite d’états
ou nécessiter du matériel dans l’UT.
I=0
ACTIVER DONE Une boîte rectangulaire désigne un ensemble d'ac-
tions ou opérations s'effectuant simultanément;
Déterminer la valeur par exemple : Initialisation de la variable I à zéro
de la pièce reçue
et activation du signal Done.
Oui
LSB=’1'
Non
Une boîte en forme de losange ou d'hexagone dé-
signe une condition binaire qui modifie le déroule-
ment des opérations, selon que cette condition est
Oui
LSB = ‘1’ remplie ou non
Non
Nous allons débuter par représenter l'algorithme sous forme d'un orga-
nigramme. À partir de celui-ci, il est possible de réaliser la partition des tâ-
ches entre l'unité de traitement et l'unité de commande. Le premier
organigramme sera nommé organigramme grossier de la multiplication sé-
quentielle. Il ne comprend, dans les boîtes, que des textes/actions ou fonc-
tions générales.
Nous allons maintenant présenter la construction de l’organigramme
pour notre exemple.
Lors du démarrage de tout système séquentiel, une remise à zéro est in-
dispensable. Dans l’organigramme grossier, l’action d’un Reset sera visua-
lisée par une bulle arrondie avec RAZ.
20
Electronique numérique Systèmes séquentiels avancés, Tome 4
21
Chapitre 3: Application de la méthodologie de conception à la multiplication Version du 4 mars 2013
RAZ
a) Flanc NON
montant(START)
OUI
Multiplicateur := Multiplicateur
Multiplicande := Multiplicande
b) Resultat_haut := 0
i := 0
Désactiver Done
c) LSB(Multiplicateur) = OUI
1?
NON
d) Resultat_haut := Resultat_haut :=
Resultat_haut+0 Resultat_haut+Multiplicande
i := i+1
f)
I = nombre bits
NON
OUI
Resultat :=
g)
Resultat_haut&Resultat_bas
h) Activer Done
22
Electronique numérique Systèmes séquentiels avancés, Tome 4
Non
Entrée A=1?
Oui
Non
Entrée B=1?
Oui
Non
Entrée C=1?
Oui
Sortie = 0 Sortie = 1
23
Chapitre 3: Application de la méthodologie de conception à la multiplication Version du 4 mars 2013
24
Electronique numérique Systèmes séquentiels avancés, Tome 4
RAZ
NON
Flanc_montant(START)
OUI
Multiplicateur := Multiplicateur
Multiplicande := Multiplicande
Resultat_haut := 0
Done := 0
OUI
LSB(Multiplicateur) = 1?
NON
Resultat_haut := Resultat_haut :=
Resultat_haut+0 Resultat_haut+Multiplicande
OUI
LSB(Multiplicateur) = 1?
NON
Resultat_haut := Resultat_haut :=
Resultat_haut+0 Resultat_haut+Multiplicande
OUI
LSB(Multiplicateur) = 1?
NON
Resultat_haut := Resultat_haut :=
Resultat_haut+0 Resultat_haut+Multiplicande
OUI
LSB(Multiplicateur) = 1?
NON
Resultat_haut := Resultat_haut :=
Resultat_haut+0 Resultat_haut+Multiplicande
Resultat :=
Resultat_haut&Resultat_bas
Done := ‘1’
25
Chapitre 3: Application de la méthodologie de conception à la multiplication Version du 4 mars 2013
26
Electronique numérique Systèmes séquentiels avancés, Tome 4
Unité de traitment
En résumé l'unité de traitement comporte les composants suivants:
• 2 registres, Result_H et Result_B_Mteur, avec chargement paral-
lèle et décalage à droite
• 1 registre, Mcande, avec chargement parallèle
• 1 additionneur de 4 bits avec report
• 1 multiplexeur 2 à 1 sur 4 bits pour sélectionner la valeur de
chargement pour le registre Result_H
• 1 bascule DFF pour mémoriser le report
‘0000’
1 0 1,2 D
MUX
G1 Q
C2
REG4
SRG4
G1[EN]
M1[Load]
M2[Shift]
C2
G3
C4 \ 2,3
Mcande
Cn
2,3,4 D(3) Multiplicande 1,2 D P
Q
4 4
Result_H ADD_Fct
Q
1,4 D 4
4
4 Q
4
(0)
SRG4
M1[Load]
QplusP_nQplus0
M2[Shift]
G3
C4 \ 2,3
_Mteur
Q 8
Load_ResH
Multiplicateur 1,4 D
Init_nAdd
(0) 4 4
Decale
4
Load
LSB_Mteur
UC
27
Chapitre 3: Application de la méthodologie de conception à la multiplication Version du 4 mars 2013
Unité de commande
L'unité de commande gère les signaux de contrôle de l'UT. Il s'agit des
signaux Load, Load_ResH, Decale et LSB_Mteur. Elle gère aussi les si-
gnaux de sortie du système soit Done. Les signaux d'entrée Start et nReset
aggissent aussi sur l'UC. La figure 3- 7 nous montre l’ensemble des signux
connectés sur l’UC.
Start Done
nReset UC
QplusP_nQplus0
Load_ResH
Init_nAdd
LSB_Mteur
Decale
Load
UT
28
Electronique numérique Systèmes séquentiels avancés, Tome 4
/CONT
N CONT? CONT
(b) (b)
O
(b) (b)
a) b)
(a) /X • /Y (a)
N O
X
/X • Y • /Z X • /W
N O O N
Y W
/X • Y • Z # X • W
N O
Z
(b) (d)
(c)
(b) (c) (d)
c)
règle n°2: Les conditions d'entrée qui font passer d'un état à un autre
dans un graphe peuvent être retrouvées dans un organigramme en suivant
les chemins possibles à travers les boîtes de condition entre deux boîtes
d’actions.
La figure 3- 8(c) met en évidence les différents chemins qui mènent de
l'état (a) aux états (b), (c) ou (d), ainsi que les différentes conditions dont
dépendent ces transitions.
Dans une MSS ayant beaucoup de variables d'entrée (c'est le cas si cette
MSS est une unité de commande d'une machine complexe), il est évident
qu'il ne faut pas mettre une flèche dans le graphe pour chaque combinaison
des variables d'entrée, à partir de chaque état. Désormais, nous reporterons
sur une flèche non pas une combinaison des variables d'entrée, mais l'ex-
29
Chapitre 3: Application de la méthodologie de conception à la multiplication Version du 4 mars 2013
(a)
rappel : un seul état !
(a) RUN↑↓ <= GO
O
GO
GO /GO
RUN↑↓
30
Electronique numérique Systèmes séquentiels avancés, Tome 4
quelle une action a lieu: 99?? pour une impulsion à l'état actif, ??pour une
impulsion à l'état inactif, ?pour l'activation, ?pour la désactivation. Lors-
que l'activation et la désactivation d'une sortie ne se font pas dans le même
état de l'UC, il faut soit maintenir celle-ci dans tous les états intermédiaires
soit conserver la valeur de la sortie, entre deux changements, à l'aide d'une
bascule (UT).
Remarque importante
Il faut éviter de créer des sorties conditionnelles dépendant d'une entrée
asynchrone, à cause de la possibilité d'avoir une impulsion de sortie de du-
rée infinitésimale. Si cela ne peut pas être évité, il faut s'assurer que l'état
actif ou inactif de l'entrée dure plus d'une période d'horloge (afin qu'elle
soit vue dans cet état lors du flanc actif de l'horloge) et introduire un état
supplémentaire pendant lequel cette impulsion sera prolongé. Ainsi, l'orga-
nigramme de la figure 3- 10 (a) doit être adapté comme l'indique la
figure 3- 10 (b), d'où le graphe de la figure 3- 10 (c). Les codes des états
(a) et (a') doivent bien sur être adjacents.
* *
START START
NON NON
OUI
(a’) RUN
OUI
RUN RUN
(b)
(a’)
(b)
RUN__
(a)
(b) (c)
(b)
31
Chapitre 3: Application de la méthodologie de conception à la multiplication Version du 4 mars 2013
Le problème est le même lorsque ce n'est pas le début mais la fin d'une
impulsion de sortie qui dépend d'une entrée asynchrone. Dans ce cas, on
ajoutera l'état supplémentaire avant l'état dans lequel l'impulsion se termi-
ne. Cette situation est illustrée par la figure 3- 11.
ENABLE . STOP
* ENABLE =
ENABLE . (a) (a) (a)&STOP
*
STOP STOP
NON
OUI
*
START
NON
(b) OUI (b)
(a) (b)
(b) (c)
Non Non
Condition Condition
Condition
Oui Oui Condition
32
Electronique numérique Systèmes séquentiels avancés, Tome 4
Start = ‘0’?
NON
OUI
Flanc_montant(Start)
NON
OUI
Start = ‘1’?
NON
OUI
33
Chapitre 3: Application de la méthodologie de conception à la multiplication Version du 4 mars 2013
RAZ
S ta rt = ‘0 ’?
NON
OUI
S ta rt = ‘1 ’?
NON
OUI
Done .
Load .
Load_Rhaut .
In it_ n A d d = ‘1 ’
L S B _ M te u r = ‘1 ’? OUI
NON
Load_Rhaut Load_Rhaut
In it_ n A d d = ‘0 ’ In it_ n A d d = ‘0 ’
Q p lu s P _ n Q p lu s0 = ‘0 ’ Q p lu s P _ n Q p lu s0 = ‘1 ’
D e c a le
OUI
L S B _ M te u r = ‘1 ’?
NON
Load_Rhaut Load_Rhaut
In it_ n A d d = ‘0 ’ In it_ n A d d = ‘0 ’
Q p lu s P _ n Q p lu s0 = ‘0 ’ Q p lu s P _ n Q p lu s0 = ‘1 ’
D e c a le
OUI
L S B _ M te u r = ‘1 ’?
NON
Load_Rhaut Load_Rhaut
In it_ n A d d = ‘0 ’ In it_ n A d d = ‘0 ’
Q p lu s P _ n Q p lu s0 = ‘0 ’ Q p lu s P _ n Q p lu s0 = ‘1 ’
D e c a le
OUI
L S B _ M te u r = ‘1 ’?
NON
Load_Rhaut Load_Rhaut
In it_ n A d d = ‘0 ’ In it_ n A d d = ‘0 ’
Q p lu s P _ n Q p lu s0 = ‘0 ’ Q p lu s P _ n Q p lu s0 = ‘1 ’
D e c a le
Done
34
Electronique numérique Systèmes séquentiels avancés, Tome 4
3-6 UC câblée
Une UC câblée peut être développée avec les méthodes étudiées précé-
demment pour autant qu'elle soit d'un niveau de complexité compatible
avec les PLDs et les outils de CAO dont nous disposons. Avec les FPGA
(réseaux matriciels), le niveau de complexité maximal est très élevé actuel-
lement, et il augmente chaque année.
Dans un organigramme détaillé, chaque boîte d'action ne contienne que
des actions pouvant-être effectuées dans une seule et même période d'hor-
loge. Dans ce cas, chaque boîte d'action correspond à un état interne de la
machine séquentielle, donc à une bulle dans le graphe d'états.
Il faut être attentif au fait qu'il n'est pas possible de tester un signal du-
rant le même cycle d'horloge nécessaire à son établissement. Car durant ce
cycle, l'état est en train de se modifier. Si on test cette valeur, on obtiendra
une valeur erroné. Il faut donc attendre un cycle pour tester un signal.
Prenons l'exemple d'un décompteur 4 bits. Nous souhaitons décompter
celui-ci tant qu’il n’a pas atteint la valeur zéro. Sur le chronogramme de la
figure 3- 15, nous observons un fonctionnement incorrecte du décomptage.
Lorsque nous sommes dans l’état suite, le compteur est finalement à l’état
15 et non 0 comme souhaité.
Sur la figure 3- 15, la condition de sortie de l’état Dec est pourtant bien
Cpt=0. Lorsque cette condition devient active, nous passons, au prochain
flan montant de l’horloge, dans l’état suite. Mais simultanément, le signal
Dec_Cpt est encore actif et le compteur est décrémenté encore une fois.
clk
Dec_Cpt
Dec
Valeur_cpt
2 1 0 15
Cpt /= 0
Cpt = 0 Dec_Cpt
Suite
Dec Dec Dec Suite
35
Chapitre 3: Application de la méthodologie de conception à la multiplication Version du 4 mars 2013
Dec_Cpt
Dec clk
Cpt /= 0
Valeur_cpt
Test
2 1 0
Cpt =
Dec_Cpt
0
Suite
Test Decrem Test Decrem Test Suite
36
Electronique numérique Systèmes séquentiels avancés, Tome 4
RAZ
Start = ‘0’?
NON
OUI
Start = ‘1’?
NON
OUI
Done .
Load .
Load_Rhaut .
Init_nAdd = ‘1’
NON
Load_Rhaut Load_Rhaut
Init_nAdd = ‘0’ Init_nAdd = ‘0’
QplusP_nQplus0 = ‘0’ QplusP_nQplus0 = ‘1’
Decale
NON
Load_Rhaut Load_Rhaut
Init_nAdd = ‘0’ Init_nAdd = ‘0’
QplusP_nQplus0 = ‘0’ QplusP_nQplus0 = ‘1’
Decale
NON
Load_Rhaut Load_Rhaut
Init_nAdd = ‘0’ Init_nAdd = ‘0’
QplusP_nQplus0 = ‘0’ QplusP_nQplus0 = ‘1’
Decale
NON
Load_Rhaut Load_Rhaut
Init_nAdd = ‘0’ Init_nAdd = ‘0’
QplusP_nQplus0 = ‘0’ QplusP_nQplus0 = ‘1’
Decale
37
Chapitre 3: Application de la méthodologie de conception à la multiplication Version du 4 mars 2013
Reset
Start = ‘1’
Load <= ‘1’;
Load_Rhaut <= ‘1’;
Init
Init_nAdd <= ‘1’;
Done <= ‘1’;
Att_Test
_LSB1
LSB_Mteur = ‘0’ LSB_Mteur = ‘1’
AddZero1 Add1
Load_Rhaut <= ‘1’;
Load_Rhaut <= ‘1’;
QplusP_nQplus0 <= ‘1’;
Dec1
Decale <= ‘1’;
Att_Test
_LSB2
LSB_Mteur = ‘1’
AddZero2 Add2
Load_Rhaut <= ‘1’; Load_Rhaut <= ‘1’;
QplusP_nQplus0 <= ‘1’;
Dec2
Decale <= ‘1’;
Att_Test
_LSB3
LSB_Mteur = ‘1’
AddZero3 Add3
Load_Rhaut <= ‘1’; Load_Rhaut <= ‘1’;
QplusP_nQplus0 <= ‘1’;
Dec3
Decale <= ‘1’;
Att_Test
_LSB4
LSB_Mteur = ‘1’
AddZero4 Add4
Load_Rhaut <= ‘1’;
Load_Rhaut <= ‘1’;
QplusP_nQplus0 <= ‘1’;
Dec4
38
Electronique numérique Systèmes séquentiels avancés, Tome 4
3-7 Exercices
1) Réaliser une version permettant la multiplication de deux nombres de
n bits. Proposer une modification de l’organigramme et les évolutions de
l’UT.
2) Etablir le graphe des états correspondant à l'exercice précédent (1.)
Puis proposer une optimisation du décodeur de sorties sachant que les si-
gnaux Init_nAdd et QplusP_nQplus0 ne sont pas toujours utilisés.
3)Trouver un moyen de supprimer le coup d'horloge nécessaire au dé-
calage. Dans la version proposée, il faut 2 coups d'horloge. Le premier mé-
morise le résultat du calcul, le second réalise le décalage. Proposer une
modification permettant de faire ces deux opérations en un coup d'horloge.
4) Etablir le graphe des états correspondant à l'exercice 3.
39
Chapitre 3: Application de la méthodologie de conception à la multiplication Version du 4 mars 2013
40
Chapitre 4
Introduction.
La compagnie des Gyrobus Yverdonnois désire remplacer ses automa-
tes mécaniques de vente de billets par des machines à commande électro-
nique. Nous sommes chargés de développer un prototype d'évaluation de
la commande électronique, l’entreprise Bolomey S.A. est chargée de déve-
lopper un collecteur de monnaie, un échangeur de monnaie et un distribu-
teur de billets. Les spécifications de l’ensemble du système sont données
ci-dessous.
41
Chapitre 4: Exemple :Distributeur automatique de billets Version du 4 mars 2013
Fonctionnement désiré.
L'acheteur va introduire des pièces de monnaie dans le collecteur, pour
un montant supérieur ou égal à 90 centimes. Lors de l'introduction de cha-
que pièce, notre commande doit en enregistrer la valeur et l'additionner au
montant déjà payé, jusqu'à ce qu'il égal ou dépasse les 90 centimes, après
quoi il faudra éjecter un billet et rendre la monnaie s'il y a lieu.
En cas de malfonctionnement, le client doit pouvoir récupérer l'argent
versé, en appuyant sur un bouton poussoir, et remettre du même coup tout
le système dans son état initial. Dans ce but, les pièces introduites sont
d'abord conservées dans un godet intermédiaire du collecteur de monnaie.
Par action mécanique directe, le bouton-poussoir vide ce godet intermé-
diaire dans le godet de retour.
Si tout se passe normalement, lorsque la monnaie a été rendue et le billet
éjecté, la commande doit provoquer le vidage du godet intermédiaire dans
la caisse, et se remettre dans l'état initial.
Collecteur de monnaie.
Le collecteur de monnaie a les caractéristiques suivantes:
a) une seule fente d'introduction des pièces.
b) grandeur de la fente limitant les pièces à 1Fr. maximum.
c) les pièces de 1Fr., 50 ct., 20 ct., et 10 ct. suisses sont reconnues et ac-
ceptées par l'appareil.
d) les fausses pièces ou les pièces endommagées sont automatiquement
rejetées.
e) un godet de collecte intermédiaire peut être vidé dans la caisse en ac-
tionnant un signal de commande appelé ENCAISSE, ou dans le godet de
retour en agissant manuellement sur le bouton-poussoir prévu à cet effet.
42
Electronique numérique Systèmes séquentiels avancés, Tome 4
Bouton
nPCE
poussoir
FRANC
Collecteur DEMI
de
Monnaie VINGT
(CM)
DIX
nENCAISSE
nRAZ
43
Chapitre 4: Exemple :Distributeur automatique de billets Version du 4 mars 2013
nPCE
Échangeur de monnaie.
Les caractéristiques de l'échangeur de monnaie sont les suivantes:
a) ce système électro-mécanique permet d'éjecter des pièces de 10ct
dans le godet de retour.
b) les pièces de 10 ct. sont prises dans un magasin de pièces spéciale-
ment prévu à cet effet.
c) l'éjection est déclenchée par un signal d'entrée impulsionnel.
d) un signal de sortie indique si l'échangeur est prêt à éjecter une nou-
velle pièce.
e) toute commande d'éjection faite pendant que l'échangeur n'est pas
prêt est ignorée.
Echangeur
nEJECTE de EMPRET
monnaie
(EM)
44
Electronique numérique Systèmes séquentiels avancés, Tome 4
gramme de la figure 4- 4.
5 msec MIN
100 msec MAX
nEJECTE
EMPRET
Distributeur DBPRET
nBILLET
de billets
(DB)
45
Chapitre 4: Exemple :Distributeur automatique de billets Version du 4 mars 2013
nPCE
nEJECTE
FRANC
EM
(Echangeur
DEMI de
EMPRET monnaie)
CM VINGT Commande
(Collecteur (System
de monnaie) DIX controller)
nRAZ nBILLET
DB
(Distributeur
nENCAISSE de billets)
DBPRET
46
Electronique numérique Systèmes séquentiels avancés, Tome 4
RAZ
a) Initialise total à 0
b) NON
Reçu nouvelle pièce
OUI
NON
b) Total >= 90ct.
OUI
NON
b) Total = 90ct.
OUI
47
Chapitre 4: Exemple :Distributeur automatique de billets Version du 4 mars 2013
Nous allons dès lors concevoir l’unité de traitement spécialisée pour no-
tre vendeur de billets en choisissant tout d'abord de favoriser la vitesse de
fonctionnement. Nous pouvons dès lors lister les éléments nécessaires:
-un additionneur pour effectuer l'addition.
-un registre pour mémoriser le total (ou un compteur chargeable).
-un comparateur pour comparer le total avec le prix
-un soustracteur pour décompter le total (ou un compteur-décompteur).
Le schéma bloc de la figure 4- 8 représente une des solutions possible.
La soustraction et la mémorisation seront faites à l'aide d'un compteur-dé-
compteur chargeable. Le total et la valeur des pièces seront exprimés en
nombre équivalent de pièces de 10ct. (10ct. est l'unité de mesure).
48
Electronique numérique Systèmes séquentiels avancés, Tome 4
CHARGE
DECOMPTE
TOT_A_ZERO
Étant donné qu'un seul des signaux FRANC, DEMI, VINGT ou DIX
sera actif à un instant donné, l'encodeur peut être réalisé très simplement
comme nous le montre la figure 4- 9.
FRANC VAL(3)
DEMI VAL(2)
VAL(1)
VINGT
DIX VAL(0)
Figure 4- 9 : Encodeur
Bien que notre cahier des charges ne le spécifie pas, nous savons bien
que le prix du billet aura tendance à augmenter. Nous allons donc prévoir
l'adaptation du prix à l'aide de simples ponts enfichables(jumpers).
Le compteur sera chargé avec le résultat de l'addition à chaque fois
qu'une nouvelle pièce est introduite. La décrémentation se fera lorsque une
pièce de 10ct. est rendue. La remise à zéro du total doit se faire lorsque
l'automate vide le godet intermédiaire dans la caisse (nENCAISSE), ou
lorsque le client presse sur le bouton-poussoir (nRAZ), ou lors de la mise
sous tension.
L'unité de traitement que nous avons conçue restre très perfectible. En
effet, les spécifications initiales étaient incomplètes, mais aussi trop res-
trictives. Ainsi, plusieurs cas de fonctionnement marginal n'ont pas été pris
en considération: que se passe-t-il si les pièces sont introduites trop rapide-
ment?, ou , pendant que l'appareil rend la monnaie, si le client presse sur le
bouton-poussoir lorsqu'il a déjà reçu une partie du change?, si le client in-
49
Chapitre 4: Exemple :Distributeur automatique de billets Version du 4 mars 2013
troduit une pièce de 1Fr. Après avoir déjà payé 80ct.?, etc. La description
du fonctionnement désiré a été faite de façon tendancieuse: elle pré-suppo-
se que les valeurs des pièces versées vont être additionnées ce qui devrait
être laissé au libre choix du concepteur, une soustraction ou décrémenta-
tions pouvant aussi faire l'affaire. Finalement, le choix que nous avons fait
de favoriser la vitesse de traitement ne se justifie guère dans un appareil
dont le fonctionnement global est tributaire de sous-systèmes électro-mé-
caniques beaucoup plus lents que la commande que nous allons concevoir,
quelle que soit la structure de cette dernière. Les diverses améliorations se-
ront des sujets d'exercice.
P<Q
P=Q
P>Q
CMP4
Q
P
Horloge
<
3
=
>
3
0
0
DB
TOTEGPRIX
TOTPPPRIX
DBPRET
nBILLET
CLOCK
Decompteur
C3 / 2-
M1 [Load]
M2 [Dec]
CT=0
1,3D
UC
DECOMPTE
LOAD_CPT
TOT_A_ZERO
EMPRET
nEJECTE
PIECE
CLOCK
nENCAISSE
nINIT
0
3
CO
‘LS14
EM
?
ADD
IC Init
Q
P
CI
3
0
3
0
nRAZ
nPIECE
CM
FRANC
DEMI
VINGT
DIX
50
Electronique numérique Systèmes séquentiels avancés, Tome 4
4-4 Exercices
1) Modifier l’unité de traitement de la figure 4- 10 de façon à ce que le
vendeur de billets fonctionne correctement lorsqu’un client introduit une
pièce de 1Fr. après avoir déjà mis 80ct. dans l’appareil. Adapter l’organi-
gramme de la figure 4- 7 s’il y a lieu.
2) Au lieu d’additionner les valeurs des pièces introduites jusqu’à ce
que le total égale ou dépasse le prix, on peut imaginer de partir du prix et
de soustraire les valeurs des pièces introduites. Le reste à payer pourra aus-
si être constamment affiché afin que le client sache où il en est. Concevoir
un nouvelle unité de traitement suivant cette optique, après avoir établi un
organigramme grossier qui décrive ce comportement.
51
Chapitre 4: Exemple :Distributeur automatique de billets Version du 4 mars 2013
52
Electronique numérique Systèmes séquentiels avancés, Tome 4
INIT (asynchrone)
TOT_A_ZERO**
N
N
TOTEGPRIX
BILLET
ENCAISSE
N
EMPRET*
EJECTE
DECOMPTE
53
Chapitre 4: Exemple :Distributeur automatique de billets Version du 4 mars 2013
54
Electronique numérique Systèmes séquentiels avancés, Tome 4
INIT (asynchrone)
TOT_A_ZERO**
ENCAISSE
N
PIECE*
Load_Cpt
N
EMPRET*
EJECTE
DECOMPTE**
55
Chapitre 4: Exemple :Distributeur automatique de billets Version du 4 mars 2013
l'organigramme de façon à ce que le graphe qui en sera tiré suivant les rè-
gles du paragraphe 3-4 réponde aux spécifications, comporte le moins
d'états possible et tienne compte des entrées ou conditions asynchrones.
L'organigramme de la figure 4- 13 a été complété en vue de la réalisa-
tion d'une UC câblée. Nous voyons ainsi apparaître des boîtes d'action vi-
des (puisqu'il n'y a aucune action à entreprendre) dans les boucles d'attente
de DBPRET et de EMPRET: elles sont nécessaires pour respecter la règle
n°1 du paragraphe 3-4, puisque chaque boucle doit comporter au moins un
état. L'attente de PIECE, par contre, ne nécessite pas la création d'un état:
il suffit d'attendre dans l'état où ENCAISSE est désactivé. Les tests de
TOTPPPRIX et TOTEGPRIX doivent se faire après un état d’attente après
le chargement du registre. En effet l’action de chargement a lieu en sortant
de l’état. Il faut donc rajouter une boîte d'action entre le chargement du
compteur et les tests de TOTPPPRIX et TOTEGPRIX.
Les tests de TOTPPPRIX et TOTEGPRIX peuvent se faire dans le
même état, puisque ces deux entrées ne seront testées que lorsqu'on est sûr
qu'elles sont stables (il n'est donc pas nécessaire de respecter la règle de co-
dage n°5 retreinte).
Il ne reste plus qu'à donner des noms aux états, à mettre les commentai-
res utiles et à indiquer de quelle façon la sortie TOT_A_ZERO sera géné-
rée sans transitoires. Par la suite, les codes d’état peuvent être ajoutés à
l’organigramme, afin de compléter la documentation (paragraphe 3-4).
56
Electronique numérique Systèmes séquentiels avancés, Tome 4
INIT (asynchrone)
N Détection d’une
PIECE* nouvelle pièce
O
011
LD Addition de la valeur de
LOAD_CPT la pièce au total
O
TOTPPPRIX
N
N
TOTEGPRIX
O
BILLET
VEND 010
ENCAISSE
DELAI
001 Cette attente fournit un délai
de 200msec au moins,
N O
DBPRET* pendant lequel ENCAISSE
est actif
4-6 UC câblée
Nous allons établir un graphe à partir de l’organigramme détaillé de la
figure figure 4- 13, ce qui nous permettra de vérifier le découpage en états,
puis nous procéderons comme pour la réalisation d’une MSS à l’aide d’un
PLD. Le graphe obtenu est celui de la figure 4- 14.
57
Chapitre 4: Exemple :Distributeur automatique de billets Version du 4 mars 2013
État initial
TOT_A_ZERO**
RAZ
= RAZ & !CLOCK
*PCE ENCAISSE
/PIECE*
PIECE*
LD LOAD_CPT
DBPRET*
TOTPPPRIX
TST
/TOTPPPRIX .
TOTEGPRIX
/TOTPPPRIX .
BILLET /TOTEGPRIX
ENCAISSE
VEND
TO / TOTEGPRIX . REND EJECTE
TE
GP EM PRET DECOM PTE**
RI = REND & !CLOCK
*DELAI X
.E
M
PR *ATTEM
/DBPRET* ET
/EM PRET*
58
Electronique numérique Systèmes séquentiels avancés, Tome 4
00 01 11 10
entity UC is
port(
Clk_i : in std_logic;
Db_Pret_i : in std_logic;
Em_Pret_i : in std_logic;
Piece_i : in std_logic;
TotEgPrix_i : in std_logic;
TotPpPrix_i : in std_logic;
nInit_i : in std_logic;
Decompte_o : out std_logic;
Load_Cpt_o : out std_logic;
Tot_A_Zero_o : out std_logic;
nBillet_o : out std_logic;
nEject_o : out std_logic;
nEncaisse_o : out std_logic
);
end entity UC ;
architecture FSM of UC is
type State_Type is (RAZ, PCE, LD, TST, ATTEM, REND,
VEND, DELAI);
signal Cur_State, Next_State : State_Type;
begin -- FSM
---------------------------------------------------
clocked : process( Clk_i, nReset_i)
---------------------------------------------------
begin
if (nReset_i = '0') then
Cur_State <= RAZ;
elsif (Clk_i'EVENT and Clk_i = '1') then
Cur_State <= Next_State;
end if;
end process clocked;
59
Chapitre 4: Exemple :Distributeur automatique de billets Version du 4 mars 2013
---------------------------------------------------
nextstate : process (Cur_State, TotPpPrix_i, Piece_i,
TotEgPrix_i, Em_Pret_i, Db_Pret_i)
---------------------------------------------------
begin
case Cur_State is
when RAZ =>
Next_State <= PCE;
when LD =>
Next_State <= TST;
60
Electronique numérique Systèmes séquentiels avancés, Tome 4
end case;
end FSM;
4-7 Exercices
6) Pour chacune des unités de traitement développées dans les excerci-
ces 1 à 5, établir l’organigramme détaillé et le graphe de l’UC câblée cor-
respondante.
7)Réaliser l’UC câblée de la page 57 à l’aide d’une mémoire PROM et
d’un registre parallèle-parallèle.
8) Dans le graphe de la figure 4- 14, prenons le codage suivant :
RAZ=000, VEND=001, LD=101, TST=110, ATTEM=111, REND=110,
VEND=101, DELAI=100. Un compteur 4 bits avec chargement et comp-
tage eset choisi comme générateur d’états (voir schéma-bloc de la figure 1-
4). Etablir une table de vérité qui indique les commandes à appliquer au
compteur de façon à ce qu’il se comporte comme spécifié par le graphe.
9) Un codage tel que celui de l’exercice 8 ne respecte pas la règle n°5.
Il faudra donc synchroniser les entrées asynchrones. D’autre part, il n’y a
pas plus d’une entrée qui influence l’évolution à partir d’un état quelcon-
que du graphe de la figure 4- 14. Il est donc raisonable de multiplexer ces
entrées et de ne synchroniser que la sortie MUX. Etudier la réalisation de
l’UC de la page 57, dans cette optique, avec une CPLD EMP7128S
61
Chapitre 4: Exemple :Distributeur automatique de billets Version du 4 mars 2013
62
Chapitre 5
1)La densité d'intégration d'une mémoire est plus élevée que celle d'une
fonction identique réalisée en "logique câblée", à plus forte raison si cette
"logique câblée" est en fait un réseau programmable. Cette plus grande
densité d'intégration influence favorablement le coût et la consommation.
63
Chapitre 5: Unité de commande microprogrammée Version du 4 mars 2013
pas. C'est loin d'être le cas en logique câblée, même lorsque le "câblage"
est programmable. En effet, le nombre de portes requis peut varier sensi-
blement. De plus, une recompilation sera nécessaire, voire même une vé-
rification du comportement temporel dans le cas d'une FPGA (les temps de
propagation dépendent du câblage compilé).
64
Electronique numérique Systèmes séquentiels avancés, Tome 4
65
66
MUX Adresse de sélection des conditions
PROM32x8
EN
M8 0
B M8 nENCAISSE
M9 A∇
1 G 0 M9 nBILLET
M10 7 A∇
2 Microséquenceur M10 nEJECTE
COND 0 A∇
PIECE 0 M11 DECOMPTE
1 A∇
TOTPPPRIX 1 MUX Adresse A 0 A∇ M12 LOAD_CPT
2
TOTEGPRIX de micro 31 M13
2
Chapitre 5: Unité de commande microprogrammée
3 A∇
DBPRET M0 0 intruction M14
3 0 4 A∇
M1 1 G CTRDIV16
EMPRET 4 3 A∇ M15
Figure 5- 1 : UC microprogrammée
nINIT EN
5
6 EN CT=0
7 0 COUNT G3
1 G4
2 PROM32x8
DFF M1[LOAD]
nINIT SYNCOND 3 nLOAD M2[COUNT]
R A
EN CLOCK A∇ M0
1D C5/2,3,4+
0 M1
C1 A∇
nSYNCOND 1 M2 A0 M2
S 1,5D 0 A∇
2 M3 A1 M3
1 A∇
M4
3 M4 A2 2 A 0 A∇
31 M5
M5 A3 3 A∇
M6
CLOCK 4 A∇
nCLOCK M7
A∇ TOT_A_ZERO
EN
67
Chapitre 5: Unité de commande microprogrammée Version du 4 mars 2013
TOT_A_ZERO
nENCAISSE
DECOMPTE
LOAD_CPT
nBILLET
nEJECTE
M14
M15
M10
M11
M12
M13
M8
M9
M7
M0
M1
M2
M3
M4
M5
M6
PROM32x8
PROM32x8
A∇
A∇
A∇
A∇
A 0 A∇
A∇
A∇
A∇
A∇
A∇
A∇
A∇
A∇
A∇
A∇
A∇
31
31
0
A
B
A
EN
EN
0
2
1
3
4
0
1
2
3
4
C0
C1
C2
C3
CTRDIV16
M2 [COUNT]
M1 [LOAD]
C5/2,3,4+
CT=0
1,5D
SYNCOND
G3
G4
M2
M3
M4
M5
COUNT
nLOAD
DFF
1D
C1
R
S COND
nCLOCK
MUX
G0
7
EN
0
1
2
0
1
2
3
4
5
6
7
C0
C1
C2
TOTEGPRIX
TOTPPPRIX
EMPRET
DBPRET
CLOCK
PIECE
nINIT
68
Electronique numérique Systèmes séquentiels avancés, Tome 4
Code
Action Mnémonique (M1,M0) COUNT nLOAD
Compte si Condition ou Maintient CCM 00 SYNCOND 1
µPC <= µ PC+1 si condition vraie,
µPC sinon
Saute Inconditionnellement SI 11 - 0
µPC <= Adr . (saut inconditionnel)
69
70
INIT (asynchrone) Sorties Sélection Adresse Cmd
Adr PROM B PROM A
actives Cond saut séq.
TOT_A_ZERO**
RAZ RAZ & !CLOCK 0000 TOT_A_ZERO VRAIE - CCM 1110'1111 1xxx’xx00
ENCAISSE (CCS)
PCE ENCAISSE
0001 aucune PIECE - CCM 0000'0111 0xxx’xx00
N PIECE*
O
0010 LOAD_CPT VRAIE - CCM 1111'0111 0xxx’xx00
Chapitre 5: Unité de commande microprogrammée
LD LOAD_CPT
TST 0001
0011 aucune TOTPPPRIX (PCE) CCS 0010'0111 0x00'0110
O TOTPPPRIX
N aucune 0111 CCS 0100'0111 0x01'1110
0100 TOTEGPRIX
N (ATTEM)
TOTEGPRIX
O 0101 BILLET VRAIE - CCM 1110'0100 0xxx’xx00
BILLET ENCAISSE (CCS)
VEND
ENCAISSE
assembleur code
5-1 Exercices
1) Dans l’UC de la figure 5- 1, nous décidons de synchroniser la condi-
tion sur le flanc montant de l’horloge, au lieu de le faire sur le flanc des-
candant. Modifier en conséquence l’organigramme détaillé et le
microprogramme.
2) Modifier le micro séquenceur de la figure 5- 1, de façon à ce qu’il
exécute le jeu de commandes de séquencement suivant:
71
Chapitre 5: Unité de commande microprogrammée Version du 4 mars 2013
72
Electronique numérique Systèmes séquentiels avancés, Tome 4
Code
Action Mnémonique (M1,M0) Opérande
µPC => µPC+1 si cond. vraie WAIT 00 SYNCOND
µPC si cond. fausse
73
Chapitre 5: Unité de commande microprogrammée Version du 4 mars 2013
IN IT (asynchrone)
Cmd
Adr séq Opérande PROM
.
T O T_A _Z ER O**
R AZ R AZ & !C LO C K 0 OUT TO T_A _ZERO↑ 01100011
1 OUT TO T_A_ZERO ↓ EN CAISSE ↓ 00000011
PC E EN C AISSE
2 W AIT PIECE 00000000
N
PIEC E *
3 O UT LOAD _CPT ↑ 10000011
O ↑
4 O UT LOAD _CPT 00000011
LD LO AD _C PT __________
5 SK IP TOTPPRIX 00000110
T ST 6 JUM P PCE 00001001
O
TO T PPPR IX
N 7 SK IP TOTEGPRIX 00001010
8 JUM P ATTEM 00010101
N
T O TEG PR IX
O
9 OUT BILLET ↑ 00000011
BILLET
VEN D
EN C AISS E A OUT BILLET↓ ENCAISSE ↑ 00100011
-Les bits de code non définis sont laissés à 1 (bits mémoire non pro-
grammés); ainsi, pour une microinstruction OUT, le bit M7 est systémati-
quement laissé à 1; il en va de même pour les bits M7, M6 et M5 dans le
WAIT et le SKIP, M7 et M6 dans le JUMP.
-Seules les sorties qui changent sont mentionnées dans la microinstruc-
tion en mnémoniques.
74
Electronique numérique Systèmes séquentiels avancés, Tome 4
REG8
nINIT R
Opérande G1
PROM32x8 C2
MISEQv0
M7 LOAD_CPT
MUX R A∇ 1,2 D ∇
M2 0 M6 TOT_A_ZERO
S0 A0 A∇
M3 1 M5 nENCAISSE
S1 A1 A∇
EN M4 S2 A2 2 A 0 A∇
M4
M2 DFF M5 S3 31 M3 nBILLET
0 A3 3 A∇
M3 1 G0 S
M5 S4
A4 4 A∇
M2
7 nEJECTE
M4 2 COND M1
1D SYNCOND A∇
EN M0 DECOMPTE
PIECE 0 C1 COND A∇
TOTPPPRIX 1 R M0 C0
TOTEGPRIX 2 M1 C1
DBPRET 3 OUTEN
EMPRET 4 Clock
5
6 Code opératoire
7
Clock
75
Chapitre 5: Unité de commande microprogrammée Version du 4 mars 2013
Mémoire Mémoire
µinstr. codée µinstr. décodée
µPC adresse de de
microprogramme nanoprogramme
Figure 5- 10 : Nanoprogrammation
76
Electronique numérique
nINIT
Opérande
MISEQv0 PROM32x8
R
MUX A BAR8
8 5,9,10D DECOMPTE
8 6,9,10D
Figure 5- 11 : UC basée sur MISEQV0 avec latch adressable bit par bit
8 7,9,10D
Systèmes séquentiels avancés, Tome 4
77
celui de la figure 5- 8, pour tenir compte du schéma utilisant les sorties co-
Le microprogramme de la figure 5- 12 est facilement adapté à partir de
Chapitre 5: Unité de commande microprogrammée Version du 4 mars 2013
IN IT (a syn ch ro n e )
Cmd
T O T_ A _ Z E R O ** A dr séq. O pérande PROM
RAZ R A Z & !C L O C K 11001111
0 OUT T O T_ A _Z E R O↑
1 OUT TO T _A _Z E R O↓ 11001011
PCE E N C A IS S E
2 OUT E N C A IS S E↓ 11010011
N 11100000
P IE C E * 3 W A IT P IE C E
O
4 OUT L O A D _C P T ↑ 11000111
LD LOAD _C PT
5 OUT L O A D _C P T ↓ 11000011
___ ________
TST 6 S K IP TO T P P R IX 11100110
7 JU M P PCE + 1 10001101
O
T O T P P P R IX
N 8 S K IP T O T E G P R IX 11101010
N 9 JU M P ATTEM 10111101
T O T E G P R IX
O A OUT B IL L E T↑ 11011111
VEN D B IL L E T B OUT B IL L E T↓ 11011011
E N C A IS S E
C OUT E N C A IS S E↑ 11010111
Le fait de n'agir que sur un seul bit de sortie à la fois a eu pour consé-
quence de rallonger le microprogramme. C'est bien naturel puisque nous
exécutons en série le travail que nous avions exécuté en parallèle dans le
schéma de la figure 5- 10 et le microprogramme de la figure 5- 9. Afin de
gagner quelques microinstructions, nous avons généré EJECTE et DE-
COMPTE avec le même latch. Par contre le compteur de micro-program-
me du MISEQV0 doit être étendu à 5 bits, voir la figure 5- 11.
Puisqu'à partir du code d'une sortie nous sélectionnons un latch ou un
flip-flop dans lequel sera mémorisé l'état de cette sortie, nous parlerons de
l'adresse d'une sortie plutôt que d'appeler cela son "code".
5-4 Exercices
1)Ajouter un sélecteur de polarité de la condition dans le schéma de la
figure 5- 9. Proposer un format pour les microinstructions WAIT et SKIP
de la table de la figure 5- 7, tenant compte du choix de la polarité de la con-
dition.
2)Traduire le graphe partiel ci-dessous en un bout de microprogramme
utilisant le jeu de microinstructions de la table de la figure 5- 7.
78
Electronique numérique Systèmes séquentiels avancés, Tome 4
Mnémo- Code et
Action Opérandes
nique format 8b.
Mémorise la condition spécifiée par
l'opérande, et incr. le compteur de Mem cccc i011 cccc = adresse de
microinstructions. la condition
Rem: i indique si la condition spécifiée i = inversion de la
doit être inversée (i=1) ou no (i=0) avant condition
mémorisation
Incrémente le compteur de
microinstructions si la condition Wait cccc i111 cccc = adresse de
mémorisée est à 1, n'incrémente pas la condition
dans le cas contraire; de plus cette i = inversion de la
instruction mémorise la condition condition
comme Mem.
79
Chapitre 5: Unité de commande microprogrammée Version du 4 mars 2013
l
pe
A
ap
r
1e
l
pe
C ALL n A
ap
B
e
m
3ème appel
2è
D B
C
D E C
E C ALL n RET
1er r
e to u
r
A
F 2 è m e re to u r
B
CALL n r
ou
re t
C me
3è
F (b ) a v e c s o u s -
p ro g ra m m e
A
C
(a ) s a n s s o u s -
p ro g ra m m e
80
Electronique numérique Systèmes séquentiels avancés, Tome 4
81
Chapitre 5: Unité de commande microprogrammée Version du 4 mars 2013
adresse de retour
Pile Incrém. adresse
courante
Push
Pop
Mem_En
Mem_Clear MUX
2R Branch
G1
Cond G1 _
2D Ld_Val Compteur
Mem_Cond Décodeur 1
1C2
R de de
1
code op. µinstr. µprogr.
Incr
µ instruction Hold
Load
opérande Jumpf/Call
A_Reset
Clock
Outen
82
Electronique numérique Systèmes séquentiels avancés, Tome 4
Mnémo- Code et
Action Opérandes
nique format 8b.
Mémorise la condition, inversée ou non Mem cccci011 cccc = adr. cond.
uPC <= uPC+1 i = invers. cond.
Attend que la cond. mémorisée soit Wait cccci001 cccc = adr. cond.
vraie, mémorise la condition à chaque i = invers. cond.
clock (inv. ou non)
uPC <= uPC+1 si MemCond vrai,
sinon uPC
Charge uPC avec l'adresse fournie par Ret ssssv110 ssss = adr sortie
la pile+1. Fonctionne comme Out sauf (par ex.) concernée
que la condition mémorisée n'est pas v = valeur sortie
modifiée
uPC <= AdressePile +1
Idem que Ret, mais l'adresse prise sur IRet ssssv111 ssss = adr sortie
la pile n'est pas incrémentée (par ex.) concernée
uPC <= AdressePile v = valeur sortie
83
Chapitre 5: Unité de commande microprogrammée Version du 4 mars 2013
84
Chapitre 6
85
Chapitre 6: Unité de traitement universelle Version du 4 mars 2013
'F382
ALU
S0 0
0
S1 1 M_
7
S2 2
Cn (1/2)BI [1]
3CI [1]
A0 P
F0
B0 Q
A1 F1
B1
A2 F2
B2 BO/CO
=1 Ovr
BO/CO
A3 P (1,2) BO Cn+4
3 CO
B3 Q F3
Figure 6- 1 : ALU
Les fonctions autres que celles directement exécutées par l'ALU de-
vront être décomposées en une séquence. Par exemple: additionner N
moins une fois le nombre de A à lui-même pour obtenir une multiplication
NxA. Il faudra donc conserver des résultats partiels dans des registres, et
être en mesure d'acheminer ces résultats de la sortie de l'ALU vers ces re-
gistres et des registres vers l'entrée de l'ALU. Une ALU disposant de cette
circuiterie dans la même entité est appelée RALU, pour "Registered Arith-
metic Logic Unit".
La structure la plus simple que l'on puisse imaginer pour une UT uni-
verselle est utilisée dans les calculatrices de poche 4 opérations. Elle n'uti-
lise qu'un seul registre, appelé registre accumulateur, qui mémorise le
86
Electronique numérique Systèmes séquentiels avancés, Tome 4
Flags_En
Accu_En
SRG
Operation G2
2C1
commandes MUX ALU Zero vers le MUX
Select_CI Z 1D
G 0_ Report
venant 3
M CO
Signe
de conditions
'0' 0
CI
de l'UC '1' 1 de l'UC
2 SRG
G2
P
2C1
MUX F
Select_P Q
0
G_
n 1D résultats
0
1
opérandes
...
n
Clock
87
Chapitre 6: Unité de traitement universelle Version du 4 mars 2013
1) pour faire une comparaison (total >= prix) à l'aide de l'ALU, il faudra
en fait effectuer une soustraction et utiliser les renseignements fournis par
la détection de zéro et le report.
88
Electronique numérique Systèmes séquentiels avancés, Tome 4
89
Chapitre 6: Unité de traitement universelle Version du 4 mars 2013
OPERATION(0)
OPERATION(1)
OPERATION(2)
SELECT_P(0)
SELECT_P(1)
SELECT_CI
nEJECTE
FLAGS_EN
nBILLET
nENCAISSE
ACCU_EN
2C1
2C1
2C1
G2
G2
G2
1D
1D
1D
S
M5
M2
M3
M4
M2
M3
M4
M2
M3
M4
M5
M7
M6
M5
M4
M3
M2
M1
M0
0
1
2
3
A∇
A∇
A∇
A∇
127 A∇
A∇
A∇
A∇
PROM128x8
X/Y
0
EN
A
1
M7 2
EN
M6
0
1
2
3
4
5
6
A0
A1
A2
A3
A4
A5
A6
OUTEN
MISEQv2
CLOCK
COND
C0
C1
C2
C3
C4
C5
M6 C6
M7 C7
R
M4
M5
M0
M1
M2
M3
MUX
0
7
G
EN
0
1
2
0
1
2
3
4
5
6
7
M4
M5
M6
EMPRET
REPORT
DBPRET
CLOCK
PIECE
ZERO
nINIT
Pour cette nouvelle UT, l’organigramme détaillé que nous avions établi
à la figure 4- 13, n’est plus valable. Il nous faut repartir de l’organigramme
grossier de la figure 4- 7 et le raffiner en tenant compte de l’UT choisie. Il
en résulte l’organigramme de la figure suivante.
90
Electronique numérique Systèmes séquentiels avancés, Tome 4
Non
Commandes de l’UT utilisé
Commandes de MISEQV2
ACEN_L
FLEN_L
OPSEL1
OPSEL0
FUNK0
FUNC2
FUNC1
CI
91
Chapitre 6: Unité de traitement universelle Version du 4 mars 2013
INIT
Initialisation des sorties
BILLET
EJECT Remise à zéro du total, et fin de
TOTAL := 0 l’impulsion ENCAISSE qui doit durer
ENCAISSE
plus de 250msec.
N *
PIECE Il faut détecter le passage à l’état actif
de PIECE, afin de ne pas comptabiliser
O
plusieurs fois la même pièce
N *
PIECE
O
Report S’il y a report, le total a dépassé fr.
N 1.50
N
Resultat nul Si le résultat est nul, TOTAL = PRIX
O
BILLET
N *
DBPRET Cette attente fournit un délai de
O
200msec. Au moins, pendant lequel
ENCAISSE est actif
N *
EMPRET Attend que l’éjection précédente soit
terminée
O
EJECT
TOTAL := TOTAL -1 Rend 10ct. et les décompte
EJECT
TOTAL - PRIX
Soustraction pour tester si
TOTAL = PRIX
92
INIT
Electronique numérique
NEL Fn
NE CAn
N *
PIECE x x x 1 x WAIT PIECE 1 1111'1111 1000'1111
O
N *
x x x 1 x MEM PIECE 2 1111'1111 1000'0011
PIECE
N
x x x 1 1 JUMPF PCE 8 1111'1111 1100'0010
Report
93
l’opération BMINUSA en calculant en fait B plus /A plus CI. En forçant
Pour comprendre la programation de CI dans les soustractions, et l’uti-
lisation de CO pour les comparaisons, il faut savoir que l’ALU effectue
Chapitre 6: Unité de traitement universelle Version du 4 mars 2013
Par exemple:
B(TOTAL) = 1Fr. = 1010
A(PRIX) = 80ct. = 1000
A = 0111
B 1010
+A 0111
+1 0001
report 1 0010
Comme nous le verrons par la suite, les microprocesseurs sont des MSS
complexes comportant une UT universelle. C’est sous la forme de micro-
processeur que les UT universelles sont surtout utilisées, dans l’état actuel
de la techique. Mais les applications à haute performance peuvent nécessi-
ter un développement basé sur une RALU.
Les structures des RALUs standard sont fortement influencées par les
besoins propres aux opérations de multiplication et de division. Nous at-
tendrons donc d’avoir quelques notions de calcul arithmétique binaire
avant d’en étudier une.
Exercices
1) Avec MISEQV3, est-il possible de passer un paramètre booléen d’un
microprogramme à un sous-microprogramme et dans le sens inverse. Si
oui, de quelle(s) façon(s)?
94
Electronique numérique Systèmes séquentiels avancés, Tome 4
95
Chapitre 6: Unité de traitement universelle Version du 4 mars 2013
96
Annexe 1
Bibliographie
Manuel de la HEIG-VD
[ElecNumT1] Electronique numérique TOME1, Messerli/Meyer
[ElecNumT2]
[NumArith]
[IntroVHDL]
Litérature
John F.Wakerly -Digital design (principles & practice) third edition updated.
Prentice Hall
97
Annexe 1: Version du 4 mars 2013
Médiagraphie
http://www.xilinx.com/
http://jeanlouis.salvat.free.fr/A7/coursWeb/ROM
http://perso.wanadoo.fr/xcotton/electron/coursetdocs.htm
http://artemmis.univ-mrs.fr/iufm-genelec-forum/VHDL/page_html/
1_asic_fpga_cpld_w2000_html.htm
98
Annexe 2
Lexique
99
Annexe 2: Version du 4 mars 2013
100