Académique Documents
Professionnel Documents
Culture Documents
SysLog2 06a MSSCPLX Partiel
SysLog2 06a MSSCPLX Partiel
MSS complexes
MSS: Machines séquentielles synchrones
Etienne Messerli
Institut REDS, HEIG-VD
Avril 2023
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
Documentation:
▪ Electronique Numérique, 4ème tome
Systèmes séquentiels avancés, MSS complexes
Commandes 1 Sous-
Machine Quittances 1 machine 1
Entrées principale Sorties
(unité de Commandes 2
commande) Quittances 2 Sous-
machine 2
de Quittances
Unité
Entrées commande de
traitement
Ei-1
0
Ei
1
SORTIE Ei+1
active 1
pendant
n+1 états
Ei+n
1
Ei+n+1
0
Ei-1
0
Ei-1
0
Unité
de
Clock
Ei Ei ____ commande
1 1 Fini
Fini
SORTIE Ei+1
active 1
pendant Compteur Décodeur
n+1 états
Enable
Fini
Ei+n
1
SORTIE
Ei+n+1 Ei+n+1
0 0 Unité de traitement
Architecture câblée :
UC réalisée comme une MSS simple
Comportement déterminé par son câblage (schéma), d'où
son nom
Modifier comportement modifier câblage
▪ Actuellement : "simple" modification d'une description VHDL pour
une FPGA
▪ Attention : timing à revérifier et banc de test à revoir si nécessaire!
Sorties
synchro
Entrées Décodage Décodeur
synchro Générateur de sorties
Décodeur d’états
d'état futur (registre
d'état)
état présent
Quittances ou Commandes
états de l’UT vers l’UT
Sorties
synchro
Entrées Décod. Décodeur
synch. Décodeur Compteur Mémoire de sorties
de micro- de micro- de
instructions programme micro-
(PC) progr.
Entrées
inter
fonction 1 action fonction 2
fonction n
(ex: ctr) (ex: comp)
Sorties
Horloge
H
entrées Opérande A
MUX Registres ALU
(RAM à Opérande B (unité résultats
double arithmétique
accès) report et logique)
A considérer :
▪ performances (vitesse de fonctionnement)
▪ coût et temps de développement
▪ souplesse (facilité de modification)
▪ coût de production
UC microprogrammée
(UT universelle)
complexité
UC microprogrammée
(UT universelle)
complexité
Micro-contrôleur
UC microprogrammée UC μ-prog/ UT universelle
(UT universelle)
complexité
Source:
Trenz Electronic TE0720 Series (Z-7020)
(http://www.trenz-electronic.de/)
MPCore
Dual Core ARM
RAZ
Initialisation circuit
organigramme à compléter
…. ?
(31)
na
na(i) > = < >
(0) A
=
B na_pg_nb
Shift <
na_eg_nb
na_pp_nb
(31)
nb
nb(i)
(0)
Clk
E. Messerli (HES-SO / HEIG-VD / REDS), v03 MSS complexes, p 40
Exemple : multiplication non signée …
Clk
Organigramme grossier
a) Flanc NON
montant(START)
OUI
Multiplicateur := Multiplicateur
• Organigramme grossier b)
Multiplicande := Multiplicande
Resultat_haut := 0
i := 0
correspondant à l'algorithme
Désactiver Done
de la multiplication de c) LSB(Multiplicateur) =
1?
OUI
Resultat_haut :=
d) Resultat_haut :=
Resultat_haut+0 Resultat_haut+Multiplicande
f)
I = nombre bits
NON
OUI
Resultat :=
g)
Resultat_haut&Resultat_bas
h) Activer Done
- Séquence
Non
Entrée A=1?
Oui
Non
Entrée B=1?
Oui
Non
Entrée C=1?
Oui
Sortie = 0 Sortie = 1
Oui
Non
Entrée B=1? Entrée A Sortie
Entrée B
Oui Entrée C
Non
Entrée C=1?
Oui
Sortie = 0 Sortie = 1
G3
C4 \ 2,3
_Mteur
Q 8
Load_ResH
Multiplicateur 1,4 D
Init_nAdd
(0) 4 4
4
Decale
Load
Schéma de l'UT
LSB_Mteur
(a) (a)
(b) (b)
N CONT
CONT?
(b) (b)
O
(b) (b)
(a)
(a)
N O
X
N O O N
Y W
N O
Z
(b) (d)
(c)
(b) (c) (d)
(a)
/X • /Y (a)
N O
X
/X • Y • /Z X • /W
N O O N
Y W
N O
Z
(b) (d)
(c)
(b) (c) (d)
(a)
/X • /Y (a)
N O
X
/X • Y • /Z X • /W
N O O N
Y W
N O /X • Y • Z
Z
(b) (d)
(c)
(b) (c) (d)
(a)
/X • /Y (a)
N O
X
/X • Y • /Z X • /W
N O O N
Y W
N O /X • Y • Z +X•W
Z
(b) (d)
(c)
(b) (c) (d)
Remarque :
(a)
à éviter !
rappel : un seul état !
(a) RUN <= GO
O N
GO
GO /GO
RUN
QplusP_nQplus0
clk
Load_ResH
Init_nAdd
LSB_Mteur
Decale
QplusP_nQplus0
Load
Load_ResH
Init_nAdd
LSB_Mteur
Decale
Load
UT
Multeur
Resultat
Mcande UT
Dec_Cpt
Dec clk
Cpt /= 0
Valeur_cpt
Test
2 1 0
Cpt =
Dec_Cpt
0
Suite
Test Decrem Test Decrem Test Suite
DEMI
nENCAISSE CM VINGT
Distributeur de Billets (DB)
DIX
nRAZ
nBILLET DBPRET
DB
nPCE
nEJECTE
FRANC
DEMI EM
EMPRET
VINGT
System
CM DIX
nRAZ
Controller nBILLET
nENCAISSE
DB
DBPRET
Clock
Initialise total à 0
Initialise total à 0
Non
Total 90 ct?
Non Oui
Nouvelle pièce?
Oui Non
Total = 90 ct?
Détermine val. pièce
Oui
Délivre billet Rend 10 ct
Ajoute valeur au total et encaisse soustrait 10 ct au total
Non Oui
Nouvelle pièce?
UC : ……. Non
Oui
UT : ……. Total = 90 ct?
Détermine val. pièce
Oui
Délivre billet Rend 10 ct
UC : ……. Ajoute valeur au total et encaisse soustrait 10 ct au total
UT : …….
UC & UT …
UC & UT …
E. Messerli (HES-SO / HEIG-VD / REDS), v03 MSS complexes, p 82
Identification des fonctions
Identification fonctions UT et actions UC dans l'organigramme => choix partition UC/UT
Mise sous tension
Liste fonctions ou RAZ (bouton) mémorisation
identifiées comparaison
Initialise total à 0
Non
Total 90 ct?
Non Oui
Nouvelle pièce?
Oui Non
Total = 90 ct?
CM
+ Détermine val. pièce
Oui
codage
Délivre billet Rend 10 ct
Ajoute valeur au total et encaisse soustrait 10 ct au total
addition &
mémorisation
soustraction ou décrémentation
E. Messerli (HES-SO / HEIG-VD / REDS), v03 MSS complexes, p 83
Identification des fonctions
Identification fonctions UT et actions UC dans l'organigramme => choix partition UC/UT
Mise sous tension UC : commande action
Actions UC & UT ou RAZ (bouton) UT : mémorise reg/cpt
UC : test signal
UT : comparateur
CHARGE
DECOMPTE
TOT_A_ZERO Attention : boucle !
Encodeur
▪ Table de vérité (à compléter)
Franc Demi Vingt Dix Valeur
0 0 0 1 0001
0 0 1 0 0010
0 1 0 0 0101
1 0 0 0 1010
autres ?
Comparateur 0
COMP
Additionneur 0
4 bits : 3
P
4 bits : P
3
< P<Q CI CO
= P=Q
> P>Q 0 0
Q
0
Q 3 3
CT=0
chargement synchrone C3 / 2 -
remise à 0 :
E. Messerli (HES-SO / HEIG-VD / REDS), v03 MSS complexes, p 88
ADD Schéma bloc UT CT=0
0 M1 [Load]
P M2 [Dec]
3
CI CO CLOCK C3 / 2 -
COMP
0 0 1,3D 0
Q
P
3 3
3
< P<Q
‘LS14 = P=Q
> P>Q
0
Q
TOT_A_ZERO
DECOMPTE
3
Load_Cpt
TOTEGPRIX
TOTPPPRIX
PIECE
IC Init CLOCK
nINIT
FRANC
VINGT
nPIECE
Horloge
DEMI
nRAZ
nENCAISSE
DIX
nEJECTE UC DBPRET
CM EM DB
EMPRET nBILLET
TOT_A_ZERO**↑↓
Non
PIECE*
Oui Non
TOTEGPRIX
Valeur pièce => UT Oui Non
EMPRET*
Chargement =>
LOAD_Cpt ↑↓
exécute addition Oui
BILLET ↑↓
ENCAISSE ↑↓
Oui Non EJECTE ↑↓
TOTPPPRIX
DECOMPTE ↑↓
TOT_A_ZERO**↑↓
Non
TOTEGPRIX
ENCAISSE ↓
Oui Non
EMPRET*
Non
PIECE*
Oui
BILLET ↑↓
Oui ENCAISSE ↑
EJECTE ↑↓
LOAD_Cpt ↑↓ DECOMPTE ↑↓
TOT_A_ZERO**↑↓
Non
TOTEGPRIX
ENCAISSE ↓
Oui
EJECTE ↑↓
Non DECOMPTE ↑↓
PIECE*
BILLET ↑↓
Oui ENCAISSE ↑
LOAD_Cpt ↑↓
Non
EMPRET*
Oui
Non
Oui Non DBPRET*
TOTPPPRIX
Inversion de l'ordre: test EMPRET
Oui assure l'attente décomptage exécuté
E. Messerli (HES-SO / HEIG-VD / REDS), v03 MSS complexes, p 97
Init (asynchrone)
3ème raffinement :
RAZ TOT_A_ZERO**↑↓
découpage en états pour l'UC câblée
Init (asynchrone)
PCE ENCAISSE ↓
N RAZ TOT_A_ZERO**
PIECE* <= not CLOCK
O
LD LOAD_Cpt ↑↓ DBPRET*
PCE
ENCAISSE
/PIECE*
TST
PIECE*
O TOTPPPRIX
N LD
N LOAD_Cpt
TOTEGPRIX TOTPPPRIX
O
BILLET ↑↓ TST
VEND
ENCAISSE ↑ /TOTPPRIX . /TOTPPPRIX .
TOTEGPRIX /TOTEGPRIX
DELAI
ENCAISSE
N DBPRET* O BILLET VEND
REND EJECTE
/TOTEGPRIX .
EMPRET* DECOMPTE
EJECTE ↑↓ DELAI
DECOMPTE ↑↓
ATTEM TOTEGPRIX .
EMPRET* /EMPRET*
/DBPRET* ATTEM
REND N
EMPRET*
E. Messerli (HES-SO / HEIG-VD / REDS), v03 O MSS complexes, p 98
Exercices série III
III.1 Faites une description en VHDL synthétisable de l'UC câblée de la
diapositive 86.
III.2 Pour chacune des unités de traitement développées dans la série
d'exercices précédente (série II), dessinez un organigramme
détaillé et un graphe pour l'UC câblée correspondante.
III.3 Réalisez l'UC câblée de la diapositive 86 à l'aide d'une mémoire et
d'un registre parallèle-parallèle.
i=0
Initialisation na_pg_nb = '0'
init résultat
na_eg_nb = '1'
comparaison
na_pp_nb = '0'
na(i) ? nb(i)
< = >
i = 32 ?
Schéma de l'unité
En_Sh Init En_Comp
Shift de traitement UT
(31)
na En
na(i) > = < >
(0) A
COMP = 0
Shift
B < na_pg_nb
na_eg_nb
'0'
na_pp_nb
(31) '1' 1
nb '0'
nb(i)
(0)
Clk
E. Messerli (HES-SO / HEIG-VD / REDS), v03 MSS complexes, p 42