Vous êtes sur la page 1sur 10

TD M2R Machines à états et architectures

1) Générateur de signal PWM


On cherche à réaliser un système numérique capable de générer un signal PWM paramétrable. Ce
système est cadencé par une horloge Clk de fréquence 10 MHz.

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 cahier des charges

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.

6) Livraison de Jouets par GPS


L’histoire

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

Figure 1 – Architecture du GPS du Père Noël


Le traîneau du Père Noël est équipé d’un système numérique pour aider le Père Noël à livrer
ses jouets de la façon la plus efficace possible. L’architecture de ce système est donnée en
Figure 1.
NB : Les modules clairs sont séquentiels et comportent également une horloge et un reset
asynchrone (communs) qui ne sont pas représentés sur ce schéma pour plus de clarté.
Toutes les commandes sont actives à l’état haut.
Le système est composé de 6 modules.
 Un BOITIER qui comporte 2 boutons NEXT et GO* Ces boutons transmettent un 1
logique lorsque
l’on appuie dessus, ou un 0 logique sinon.
 Un module GPS qui comporte les signaux suivants :
o NEW_POS : Bus sur 64 bits donnant les coordonnées de l’endroit où l’on
souhaite aller.
o CUR_POS : Bus sur 64 bits indiquant les coordonnées de la position actuelle
du GPS (et du Père Noël)
o LOAD_GPS : Commande pour charger les coordonnées présentes sur NEW_POS
o START_GPS : Une impulsion d’un cycle de ce signal de commande démarre le
guidage GPS du Père Noël jusqu’à la position qui a été précédemment chargée.
o Une RAM organisées en N mots de 32 bits. Cette mémoire stocke les coordonnées
de tous les enfants à livrer. Une coordonnée est exprimée sous la forme de 2 mots
consécutifs : 1 mot de 32 bits pour la longitude et 1 mot de 32 bits pour la latitude.
 Si le bus d’adresses ADR de la mémoire indique la valeur K, l’information présentée
sur le bus de données NEW_POS sera le contenu des cases K et K+1.
 La commande START_GPS, lorsqu’elle est active, efface le contenu des cases K et K+1
(si le bus d’adresses indique K)
 On précise qu’il faut attendre 2 cycles d’horloge entre le positionnement d’une
nouvelle adresse sur ADR et la mise à jour de la donnée sur NEW_POS.
 Un COMPTEUR D’ADRESSES qui incrémente le bus d’adresses à chaque impulsion de
la commande COM. Cette incrémentation doit être conforme à la spécification de la
mémoire ci-dessus.

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.

Le cahier des charges


 Pour aller livrer les jouets à un nouvel enfant, le Père Noël doit tout d’abord appuyer
sur NEXT.
 On va alors incrémenter l’adresse de la RAM (conformément aux spécifications de l’
architecture)
 Lorsque les nouvelles coordonnées ont été générées par la RAM, on calcule la
distance avec la position actuelle.
o Si la nouvelle position est trop éloignée, on incrémente à nouveau l’adresse de la mémoire
jusqu’à ce que l’on trouve des coordonnées qui conviennent
o Si la nouvelle position est suffisamment proche, on active la sortie READY de la MAE
 Le Père Noël peut alors décider de charger les nouvelles coordonnées dans le GPS
en appuyant sur le bouton GO, puis de démarrer le guidage GPS en appuyant une
deuxième fois sur le bouton GO.
 Le Père Noël peut aussi décider de ne pas charger les coordonnées dans le GPS et de
rechercher une autre position. Dans ce cas, il doit appuyer sur le bouton NEXT pour
démarrer une nouvelle recherche (voir points 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

Vous aimerez peut-être aussi