Projet HL : Épilogue

J’ai récupéré un premier rush de vidéo (ici pour les impatients) et j’ai donc pu concentrer mon petit cerveau sur LA question qui a troublé mes nuits depuis l’après-midi de samedi dernier (bon j’exagère peut-être un peu) : pourquoi donc le projet HL a-t-il généré les lettres dans l’ordre inverse et retournées alors que sur le papier tout fonctionne au poil ? Ou une question encore plus importante : de qui (à prononcer avec une voix grave) est-ce la faute ?

Histoire de faire monter le suspens, sachez que le fait que le projet ait réussi est un insolent coup de chance (voire de moule) que nous devons à des propriétés particulières du sigle de notre chère université : U-H-A. Sans ces lettres, le projet aurait lamentablement foiré. Encore que, peut-être que j’aurais réussi à identifier le problème sur place.

Alors sans plus attendre, voici une page de pub : (héhé)

Après le dernier entrainement avant notre déplacement pour Rimini (où la météo n’est pas folichonne), le responsable production nous a distribué notre tout nouveau jeu de maillots, enfin juste la partie qui concerne Rimini. On aura le jeu pour le championnat le moment venu. Voici donc en exclusivité mondiale les couleurs sous lesquelles Freespeed jouera sur le sable italien. Cette année c’est décidé, je vais tenter de troquer un de mes maillots contre celui d’une des équipes américaines.

Retour sur le projet HL. En fait la seule et unique anomalie que j’ai détectée était de nature séquentielle et non combinatoire : cela signifie que tout le monde a fait son boulot correctement mais que c’est la synchronisation des actions qui a merdouillé. Pour faire simple, le circuit générant le segment central est une simple ligne copiant la valeur de la bascule de poids fort du groupe de bascules comptant jusqu’à 3 (voir un billet précédent) : 0=00 pour le caractère espace (segment central éteint), 1=01 pour le caractère U (segment central une fois de plus éteint), 2=10 pour la lettre H (segment central allumé) et 3=11 pour la lettre A (segment central allumé). Donc quand le bit de poids fort (en gras) est à 1, le segment est allumé et il est éteint quand c’est 0. Pour que l’allumage du segment central soit synchronisé avec les autres (dont l’allumage ne suit pas une règle aussi simple, mais est le résultat d’un calcul qui prends du temps), il faut que la sortie soit tamponnée dans une autre bascule D qui la laissera passer au prochain front d’horloge, en même temps que les autres signaux commandant les autres segments et qui auront donc un cycle d’horloge complet pour arriver à leur bascules tampon respectives.

Seulement voilà. Comme il n’y a pas de calcul dans la commande du segment central, la personne jouant la bascule tampon devait copier la sortie de la bascule de poids fort, mais en fait elle a suivi exactement les mouvements de cette dernière au lieu de les recopier avec un délai égal à un cycle d’horloge. Si j’avais placé une simple porte logique OUI entre les deux bascules il n’y aurait pas eu ce piège dans lequel tout le monde est tombé et tout se serait passé au poil. Mais je ne l’ai pas fait, et je n’ai pas su anticiper ce piège potentiel non plus (qui n’a pas lieu avec des vraies portes électroniques). Résultat, l’allumage du segment central a toujours été en avance d’un cycle par rapport aux autres segments.

Et voilà là où tout est génial : lorsque le caractère espace est affiché, l’état du segment central est en fait celui qu’il devra avoir lors de la prochaine lettre (souvenez vous que pendant qu’on affiche une lettre, les contrôles pour l’affichage de la suivante attendent dans les bascules tampons). Comme la prochaine lettre est un U et que le segment central y est éteint, alors on ne remarque rien d’anormal. Lorsque c’est le U qui doit être affiché, le segment central est toujours en avance et est commandé pour afficher le H. Le segment central de la lettre U est donc anormalement allumé, ce qui transforme le U en A retourné. Vient ensuite le H pour lequel le segment central est bien allumé puisqu’il l’est aussi dans le A qui est la lettre suivante. Pour le A, la valeur du segment central est celle du caractère suivant : l’espace, c’est-à-dire qu’il est éteint, transformant ainsi le A en U retourné. Voilà comment on passe de _UHA_UHA_UHA… à _AHU_AHU_AHU retourné (le H étant symétrique on ne voit pas qu’il est en fait à l’endroit). Solution de secours : dire que nous sommes internationaux et que nous avons affiché le sigle anglo-saxon de l’université : alsace-high university.

3 réponses à “Projet HL : Épilogue”

  • J’ai presque tout compris… yihaa ! lol

    Il est vrai que ça a l’air plus compliqué qu’un circuit électrique habituel. Mais je regrette tout de même de ne pas avoir pû être là snif snif…

  • Bobonne:

    Je tiens juste à rappeler que dans un billet précédent j’avais émis quelques réserves quant à effectuer des tâches de synchronisation en HL 😉
    Sinon les maillots pour Rimini sont assez sympa je trouve, quand tu seras là bas, aies une pensée pour un des plus grands grimpeurs de tous les temps décédé dans cette cité balnéaire: Marco Pantani.

  • Sly:

    Oui les problèmes de synchro semblaient les plus à venir. Et tu as eu de la chance que les lettres soient symétriques ! Comme quoi faut toujours faire un TP avant de le faire avec les étudiants 🙂
    En tout cas chapeau pour le projet !

Catégories
Bookmarks