TP 2 ==== A. Consignes ge'ne'rales ======================== - Ce TP fera l'objet d'un rapport e'value'. Les consignes figurent au bas de la page web de l'unite'. - Un rapport peut e^tre rendu par mono^me ou bino^me. Leur composition est releve'e le jour du TP 2 et ne peut plus e^tre modifie'e ensuite. - Le travail demande' est un peu plus important pour un bino^me. - Le plagiat est bien e'videmment interdit me^me pour une petite partie de code, commentaire, ou fichier de donne'es. B. Consignes pour les exercices =============================== - Toujours cre'er un sous-re'pertoire de'die' a` chaque exercice. - Ne pas oublier d'ajouter un signal boole'en supple'mentaire pour pouvoir visualiser l'horloge d'un signal de sortie lorsque celle-ci n'est pas la plus fre'quente du syste`me. - Imaginer des valeurs pour chaque signal d'entre'e permettant de tester tous les cas particuliers fait partie inte'grante de la re'solution d'un exercice et montre la compre'hension de la proble'matique de l'exercice. - E'crire les e'quations d'horloges dans le fichier .SIG (uniquement pour les exercices avec le symbole +H), en indiquant les re`gles utilise'es. Des e'quations de signaux les plus simples possibles seront pre'fe're'es a` une seule e'quation complique'e. C. E'nonce's des exercices (pour tous) ====================================== Exercice 1 (identite') ---------- 1.1) Objet : utilisation de sous-processus dans un me^me fichier E'nonce': E'crire le processus Identite prenant en entre'e le signal E de type re'el et en sortie un signal S de me^me type. Le processus multipliera d'abord par 2 puis par 0.5 pour que la sortie soit identique a`l'entre'e. +-----+ +-------+ E --> | x 2 | --> | x 0,5 | --> S +-----+ +-------+ Pour cela, il utilisera deux fois le processus MulPar du TP1. 1.2) Objet : utilisation de module E'nonce': E'crire le processus Modulaire identique a` Identite ci-dessus, sauf pour le processus MulPar qui sera de'fini dans un module se'pare'. Exercice 2 (Compteur modulo) +H ---------- Objet: Syntaxe du fichier de parame`tres du processus principal, retard, et synchronisation. E'nonce': E'crire le processus CptMod prenant un parame`tre M de type integer, en entre'e un signal top de type event, et en sortie un signal N de type integer comptant a` partir de 0 et modulo M les occurences de top, tout en n'utilisant pas l'ope'rateur modulo. Par exemple pour M=3 : TOP T T T T T T T ... N 0 1 2 0 1 2 0 ... Attention ! L'e'nonce' est diffe'rent de celui du TD. Exercice 3 (lissage) +H ---------- Objet : Fene^tre glissante E'nonce': E'crire le processus Lissage qui prend en entree un signal re'el et en sortie un signal re'el qui vaut la moyenne des 3 dernie`res valeurs (y compris l'instant courant). Contrainte : Utiliser une fene^tre glissante. Par exemple : E 3.0 3.0 6.0 3.0 6.0 3.0 3.0 6.0 3.0 3.0 9.0 3.0 3.0 S 1.0 2.0 4.0 4.0 5.0 4.0 4.0 4.0 4.0 4.0 5.0 5.0 5.0 Exercice 4 (sur-e'chantillonneur) ---------- E'nonce': E'crire le processus Sur avec un signal d'entre'e E et un signal de sortie S, tous deux de type entier. S portera les me^mes valeurs que E mais il sera deux fois plus fre'quent ! Aide: utiliser une bascule bi-stable Par exemple : E 10 3 -7 5 ... S 10 10 3 3 -7 -7 5 5 ... Exercice 5 (convertisseur Se'rie -> Paralle`le) +H ---------- E'nonce': E'crire le processus SerPar avec un signal d'entre'e BIT de type boole'en, et un signal de sortie OCTET de type entier. Celui-ci est ge'ne're' toutes les huit occurences de BIT, dont chacune code, par poids de'croissants, la valeur binaire de OCTET. La valeur true (resp. false) de BIT code un bit a` 1 (resp. 0). Contraintes: - Utiliser un sous-processus CptMod dans un module - Ne pas utiliser de tableaux - Ne pas utiliser l'ope'rateur puissance (**) Par exemple : BIT F F F F F F F T F F F T F F T T T T T T T T T T ... OCTET 1 19 255 ... Exercice 6 (convertisseur Paralle`le -> Se'rie) +H ---------- E'nonce': E'crire le processus ParSer avec un signal d'entre'e OCTET de type entier, et un signal de sortie BIT de type boole'en, dont les valeurs successives repre'sentent les huit bits de poids faible de l'entre'e, ge'ne're's par poids croissants. Contraintes: idem exercice 5 Par exemple : OCTET 1 19 255 ... BIT T F F F F F F F T T F F T F F F T T T T T T T T ... Exercice 7 (cell) +H ---------- 7.1) Objet : me'morisation d'un signal, resynchronisation E'nonce': E'crire le processus MyCell qui prend en entre'e un signal E entier et un signal B boole'en, et qui fournit en sortie un signal S entier portant les me^mes valeurs que E quand E est pre'sent et la dernie`re valeur connue pour E quand E est absent mais B est pre'sent et vrai. Par exemple : E 9 8 7 6 ... B F T F F T T F T T F T ... S 0 9 9 8 7 7 7 6 6 ... 7.2) Objet : test de MyCell E'nonce': En Signal, il existe l'ope'rateur cell qui re'alise exactement ce qui a e'te' demande' pour le processus MyCell; la syntaxe est : S := E cell B init I (I vaut 0 dans l'exemple ci-dessus). E'crire le processus TestCell qui calcule simultane'ment le re'sultat de cell et de MyCell sur E et B, et qui les compare pour fournir en sortie un boole'en valant vrai ou faux selon le re'sultat de la comparaison. Si les horloges dans MyCell ne sont pas correctes, vous obtiendrez des "clock constraints" lors de la compilation de TestCell. Si les valeurs de sortie de MyCell ne sont pas correctes, vous n'aurez pas que des "true" en sortie. Contrainte: Encapsuler MyCell dans un module pour ne pas avoir a` le recopier dans TestCell. Exercice 8 (de'compteur) +H ---------- Objet : Conditionnement d'une entre'e et cadencement par une sortie. E'nonce': E'crire le processus Decompteur prenant en entre'e le signal INI de type entier et un signal de sortie N de type entier. A l'instant initial, INI et N sont pre'sents simultane'ment et N prend la valeur de INI, puis les occurences de N prennent des valeurs de'croissantes. La valeur de INI de'termine le nombre d'occurences de N qui doivent e^tre ge'ne're'es avant l'occurence suivante de INI. Par exemple : INI 3 5 1 2 0 7 -2 4 ... N 3 2 1 5 4 3 2 1 1 2 1 0 7 6 5 4 3 2 1 -2 4 3 2 1 ... D. E'nonce's des exercices (pour les bino^mes) ============================================== Exercice 9 (Dans) +H ---------- E'nonce' : E'crire un processus qui prend en entre'e 3 e've`nements DEBUT, FIN, et EVT, et qui fournit en sortie 4 boole'ens FO, FF, OF, et OO qui disent respectivement si EVT est survenu dans l'intervalle [DEBUT,FIN[ [DEBUT,FIN] ]DEBUT,FIN] ou ]DEBUT,FIN[ . Contrainte : ne pas calculer plusieurs fois la me^me chose. Exercice 10 (Portier) +H ----------- E'nonce' vu en cours (voir re'sume'). Contraintes : - doit pouvoir fonctionner "e'ternellement" - doit prendre en compte une ENTREE et une SORTIE simultane'es - doit permettre la visualisation d'un e'ventuel de'faut (alarme) Exercice 11 (Compteur a` partir de) +H ----------- E'nonce' vu en td/tp (voir td ou tp1).