TD M2R Machines À États Et Architectures
TD M2R Machines À États Et Architectures
TD M2R Machines À États Et Architectures
La période ainsi que le rapport cyclique du signal sont stockés dans deux registres (Période et Cycle)
chacun pilotés par une commande de chargement parallèle (respectivement Load_P et Load_C)
active au niveau haut. Si elle n’est pas active, les registres conservent leur valeur.
Un compteur permet de mesurer la durée des niveaux haut et bas du signal de sortie. Le compteur
peut-être remis à zéro grâce à la commande RAZ_Cpt, active haut. Si cette commande n’est pas
activée, le compteur s’incrémente.
Deux comparateurs permettent de tester l’égalité entre les valeurs des registres et celle du compteur.
Les sorties OK_P et OK_C passent au niveau haut en cas d’égalité.
Enfin, une machine à état permet de générer le signal PWM de sortie, les commandes des registres et
du compteur, et de prendre en compte les demandes de mise à jour sur Update.
La période et le rapport cyclique du signal PWM peuvent être mis à jour sous une nouvelle impulsion
de Update.
Toutefois, une mise à jour ne pourra s’effectuer qu’en fin de chaque période du signal.
L’architecture du système est détaillée ci-dessous. Les blocs grisés sont des blocs séquentiels, les
blocs blancs sont combinatoires.
1
Questions :
1) On souhaite générer un signal PWM de période 20 kHz et de
rapport cyclique 30%.
Quelles sont les valeurs à transmettre au registre Période et au
registre Cycle ?
PERIODE = CYCLE=
2) Dessiner le schéma bloc du registre Cycle
3) Dessiner le schéma bloc du Compteur
4) Préciser les entrées et les sorties de la machine à état
ENTREES : SORTIES :
5) Donner le graphe d’état de la MAE. On précisera bien pour
chaque état la valeur des sorties.
6) Donner un encodage des états de votre MAE selon les cas
suivants
ENCODAGE ALEATOIRE
ENCODAGE ONE-HOT
ENCODAGE TOTAL-SYNCHRONE
7) On code l’état présent par le vecteur Qn-1,Qn-2,…,Q1,Q0 et l’état
futur par le vecteur Dn-1,Dn-2,…,D1,D0. Donner les équations de l’état
futur et des sorties dans le cas d’un encodage One Hot.
2
2) Graphe d’état
On souhaite commander un système à l’aide d’une machine à états. Les entrées/sorties de ce
système sont indiquées sur le schéma bloc ci-dessous (RAZ étant le reset asynchrone des
bascules). Une 1ère version du graphe d’état est présentée ci-dessous.
Question
1) Ce graphe d’état n’est pas synthétisable. Indiquer directement
sur le graphe quelles sont les erreurs.
3
3) ACME M2EEI MACHINE
L’histoire
En Mars 2016, la société ACME a demandé au bureau d’étude LICGEII de lui concevoir le
système de commande électronique pour la chaîne de production d’une de ses usines. Après
une intense séance de brainstorming, les étudiants du bureau d’étude ont proposé à ACME
une solution qui a été implémentée avec succès.
Suite à cette première étude, ACME a décidé de confier au bureau d’étude M1GEII la
spécification d’un nouveau système de contrôle qui sera installé dans une nouvelle usine.
Le schéma du système est représenté ci-dessus. Les modules MAE et Timer disposent en
outre d’une entrée d’horloge et d’un reset asynchrone (ces deux signaux sont
communs). Ils ne sont pas représentés sur le schéma pour plus de clarté.
La partie de la chaîne de production à contrôler se compose :
- D’un tapis de réception des pièces mécaniques. Ce tapis est équipé d’un capteur qui envoie
un signal Tapis égal à 1 si une pièce est présente.
- D’une trappe qui permet de libérer une pièce sur le tapis. Son ouverture est commandée
par un signal Trappe, que l’on positionne à 1 jusqu’à ce qu’une pièce ait été libérée.
4
- De deux bras articulés qui saisissent les pièces métalliques pour les amener vers une autre
partie de la chaîne de production. La séquence de mouvement de ces bras (prise de la pièce,
déplacement puis retour à la position initiale) est déclenchée par la mise à 1 pendant une
brève impulsion d’un signal de commande (Bras1 ou Bras2). Lorsqu’un bras est en
mouvement, un signal (Busy1 ou Busy2) est positionné à 1, signifiant que le bras est occupé.
Pour contrôler ce dispositif, on choisit d’implémenter une machine à états (MAE) couplée à
un Timer.
- La MAE a pour but de piloter les bras et l’ouverture de la trappe afin d’optimiser la vitesse
de production de la chaîne. Ainsi dès qu’un premier bras aura pris une pièce, la MAE devra
déclencher l’ouverture de la trappe pour libérer une nouvelle pièce qui devra alors être prise
par le second bras. On n’aura donc pas à attendre que le premier bras ait terminé sa séquence
de mouvement (acheminement de la pièce et retour à la position initiale).
- Le rôle du Timer est de mesurer le temps nécessaire à un bras pour prendre une pièce une
fois qu’il a reçu la commande d’action (Bras1 ou Bras2). Le Timer est commandé par un
signal Réinit, actif à l’état haut, qui charge une valeur (constante) de décomptage dans un
registre. La mise à 0 de Reinit entraîne une décrémentation du Timer. Lorsque celui-ci arrive
à 0, il met à 1 une sortie Timeout. Cela permet à la MAE de savoir quand déclencher une
nouvelle ouverture de la trappe.
- Si l’on envoie une commande d’action à un bras déjà occupé, cette commande ne sera pas
prise en compte par le bras mécanique.
Les questions
1) Donner l’architecture schéma bloc du Timer.
2) Préciser les entrées et les sorties de la MAE.
3) Donner le graphe d’états de la MAE
4) Réaliser en VHDL la MAE de ce système.
5
Exercice 1 : MAEspresso
Pour créer un café de haute qualité, les cafetières MAEspresso implantent en leur coeur une
machine à états (MAE) qui commande la préparation d’un café.
Figure 1
La MAE est reliée aux 3 boutons d’interface de la cafetière (voir figure 1) :
1) Bouton ON pour allumer (=1) ou éteindre (=0) la cafetière
2) Bouton COURT pour démarrer la préparation d’un café court (si le bouton = 1)
3) Bouton LONG pour démarrer la préparation d’un café long (si le bouton est égal à 1)
Figure 2
L’architecture du système est présenté en figure 2.
La MAE permet de contrôler la délivrance du café (commande CAFE) et la préchauffage de la
cafetière (commande CHAUD). Ces deux commandes sont actives à l’état haut.
La cafetière possède également un TIMER qui peut soit charger une valeur initiale (si la
commande LOAD est égale à 1), soit décrémenter sa valeur d’une unité (si LOAD est égal à0).
Une sortie combinatoire TIMEOUT passe à 1 lorsque le TIMER est égal à 0.
La valeur initiale à charger dans le TIMER est fournie par le module DELAI. Celui-ci comprend
quatre registres où sont stockées des valeurs correspondant à des temps t1, t2, t3, et t4. Pour
choisir quel temps délivrer en sortie du module DELAI, il suffit de positionner la commande
SELECT conformément au tableau suivant
6
Consignes de fonctionnement :
- Lorsque la cafetière est mise en marche, il faut d’abord préchauffer la cafetière pendant un
temps t4.
- Lorsque cette phase de préchauffage est terminée, la cafetière est en attente du choix de
l’utilisateur : café court, café long ou éteindre la cafetière.
- Si l’utilisateur choisit un café court, la cafetière doit délivrer du café pendant un temps t2.
- Si l’utilisateur choisit un café long, la cafetière doit délivrer du café pendant un temps t1.
- Par ailleurs, afin de conserver une bonne température, la phase d’attente ne peut pas durer
plus longtemps qu’un temps t3. Si au bout de t3, l’utilisateur n’a pas choisi, il faut
recommencer une phase de préchauffage pendant une durée t4.
Précisions supplémentaires
- Les phases de préchauffage ou de préparation d’un café (long ou court) ne peut pas être
interrompues par une quelconque action sur les boutons.
- La MAE n’a pas à s’occuper de savoir si une capsule de café est présente ou non dans la
cafetière.
1) Donner l’architecture en schéma bloc du module TIMER
2) Donner l’architecture en schéma bloc du module DELAI
3) Préciser les entrées et les sorties du module MAE
4) Donner le graphe d’états de la MAE conformément au cahier des charges. On
indiquera clairement sur le graphe quelles sont les sorties activées lors de
chaque état..
5) Proposer un encodage Total Synchrone des états de la MAE
7
4) MAE et équations
Donner les équations des états futurs et des sorties de la machine à états donnée par le
graphe ci -dessous avec l’encodage indiqué sur le schéma.
5) Architecture
Donner le schéma-bloc d’une architecture possédant une entrée N sur 4 bits, une entrée Start
sur un bit, une horloge et un reset asynchrone, et une sortie FACT sur 64 bits calculant N!
(factoriel N, c'est-à-dire la valeur S= NxN-1xN-2x…x2x1).
Cette architecture ne devra comporter qu’un seul bloc de multiplication. Ce bloc possèdera 2
entrées.
On précisera bien les tailles des signaux ainsi que les fonctionnalités des registres utilisés
dans l’architecture.
Comment le Père Noël arrive-t-il à livrer les jouets de tous les enfants de la planète ? Grâce à
un GPS… et à une machine à états…
8
L’architecture
9
Un module combinatoire CALCUL DISTANCE qui mesure la distance entre la position
actuelle du GPS
et celle des coordonnées présentes sur NEW_POS. Une sortie OK passe à 1 si la distance de
cette nouvelle position est suffisamment proche, et est à 0 dans le cas contraire..
Une MACHINE A ETATS (MAE) de type Moore qui pilote les modules précédents.
Les questions
Question 1 :
Donner le schéma bloc du module COMPTEUR D’ADRESSES
Question 2
Donner le graphe d’états de la MAE. On indiquera à chaque état quelles sont les sorties de la
MAE qui sont actives.
Question 3
Réaliser en VHDL les modules MAE, compteur d’adresse et RAM de ce système
10