• Aucun résultat trouvé

Système réactifs et programmation synchrone 23 Janvier 2006 LPSIL – Option IREEL TD N° 1 : Programmation Esterel Objectif et organisation du TD :

N/A
N/A
Protected

Academic year: 2022

Partager "Système réactifs et programmation synchrone 23 Janvier 2006 LPSIL – Option IREEL TD N° 1 : Programmation Esterel Objectif et organisation du TD :"

Copied!
3
0
0

Texte intégral

(1)

Système réactifs et programmation synchrone 23 Janvier 2006 LPSIL – Option IREEL

TD N° 1 : Programmation Esterel

Objectif et organisation du TD :

L'objectif du TD est de vous montrer les outils disponibles pour tester et exécuter des programmes Esterel. Pour accéder aux outils Esterel, vous devrez lancer le programme EsterelStudio

• Compréhension par simulation de programme synchrones

• Mise en œuvre de programmes simples

Instructions :

await

emit

loop …. end loop

||

abort …. when

every …. do ….. end every

1. Prise en main de l’outil Esterel Studio

Dans un premier temps compilez et simulez le programme suivant .

module SIMPLE : input ENTREE ; output SORTIE ;

await ENTREE ; emit SORTIE ; end module

Ce programme ne s’exécute qu’une seule fois. Ajoutez une boucle :

module SIMPLE2 : input ENTREE ; output SORTIE ; loop

await ENTREE ; emit SORTIE ; end loop

end module

Ce programme ne termine jamais. Ajoutez un suspension sur le signal STOP :

(2)

module SIMPLE3 : input ENTRÉE, STOP;

output SORTIE ; abort

loop

await ENTREE ; emit SORTIE ; end loop

when STOP;

end module

Constatez qu’il y a priorité de l’instruction de suspension abort … when . Pour cela présentez ENTREE et STOP en début d’instant. SORTIE ne doit pas être émis et le programme doit terminer

2. Simulation du programme ABRO disponible dans les exemples Simulez le programme ABRO vu dans le cours en utilisant Esterel Studio.

Essayez de le modifier de telle sorte que le choix arbitraire que nous avons fait concernant les spécifications incomplète du programme change.

3. Modélisation d’une horloge

On souhaite spécifier en Esterel un système réactif dont le fonctionnement est le suivant :

Tictac simple

Le système est constitué d'un signal d'entrée nommé PULSE et de trois signaux de sortie (nommés TIC, TAC et COMPTEUR). Les signaux TIC, TAC et PULSE sont des signaux purs. Le signal COMPTEUR est un signal valué par un entier.

Le programme est constitué de deux branches parallèles :

• La première attend une occurrence du signal PULSE et émet, pour chaque signal PULSE, le nombre total de signaux PULSE reçu

depuis le démarrage du programme.

• La deuxième émet alternativement les signaux TIC et TAC pour chaque signal PULSE reçu.

Travail à faire :

1.Proposez un programme Esterel répondant à la description ci-dessus.

2.Utilisez le simulateur pour étudier son fonctionnement.

Préemption forte : Ce Tictac est un peu fatiguant … Rajoutons un signal STOP qui permet d’arrêter ce tictac.

(3)

Préemption faible : Ce tictac peut exprimer « ses dernières volontés » Donnons au module la possibilité d’exprimer d’émettre tic ou tac si Pulse est simultané à STOP.

Utilisation du weak abort … when

Affichage des secondes modulo 60

Le compteur actuellement affiche le nombre de PULSE. On veut remettre ce compteur à 0 après 60 PULSE

4. Programme Esterel d’un réveil matin

Ecrire un programme Esterel qui modélise un réveil-matin. Le réveil matin affiche l’heure en minutes et permet à un utilisateur de le programmer pour sonner au bout d’un nombre de minutes donné. L’utilisateur peut également désarmer le réveil. Le module contient 4 signaux :

• Un signal d’entrée pur qui modélise les minutes qui passent.

• Un signal de sortie pur qui invite l’utilisateur à se réveiller

• Un signal qui désarme le réveil.

• Un signal de sortie valué qui affiche le nombre de minutes écoulées depuis le démarrage du système.

• Un signal d’entrée valué par un entier qui arme le réveil. Armer le réveil consiste à démarrer un chien de garde qui lorsqu’il atteint zéro, provoque l’émission du signal de réveil.

5. Suggestion de travail complémentaire

Vous devez compiler et simuler les programmes vus en cours.

Références

Documents relatifs

For each input signal IS, the Esterel Studio code generator generates an input C function called MODEL_I_IS, which takes an argument of the appropriate type if the signal IS

Reprendre les instructions vues en cours avec leurs exemples et regarder leur comportement au simulateur esterel.. Instruction

• Mise en œuvre d’une machine d’exécution pour la simulation textuelle d’un programme simple avec E/S.. • Mise en œuvre de cette machine d’exécution en

En physique classique, il s’exprime simplement par le fait que le temps est supposé linéaire avec un cours bien défini : on ne peut donc pas rejoindre le passé en allant

As we are not interested in determining a winner when counting the game tree size, the number of squares in the board does not need to be a perfect square and we define s to be

SIGTERM Terminaison normale d'un processus Terminaison SIGUSR1 A la disposition de l'utilisateur Terminaison SIGUSR2 A la disposition de l'utilisateur Terminaison SIGCHLD

Quelque soit le coup suivant de A, le joueur B peut conclure en plaçant un 0 dans l’une des positions inoccupées de l’autre diagonale de la matrice extraite, annulant son

Quelle que soit la case où A pose le deuxième 1, il suffit alors à B de poser un deuxième 0 au milieu d’un des cotés judicieusement choisi.. A doit alors éviter que B puisse