12.07.2015 Views

Calcul des etats atteignables de programmes Esterel partitionne ...

Calcul des etats atteignables de programmes Esterel partitionne ...

Calcul des etats atteignables de programmes Esterel partitionne ...

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

16 CHAPITRE 2. CONTEXTE DE L’ETUDEI(a)O = reg(I)OI 1I 2OO(b) O = I 1 ∧ I 2Fig. 2.4 – Portes logiquesI 1I 2(c) O = I 1 ∨ I 2I O(d)O = ¬ Id’une porte “et” peut être déterminée dès que l’une <strong>de</strong> ses branches porte la valeur 0 ou biendès que toutes ses branches portent la valeur 1. Cette opération est réalisée instantanément parla partie combinatoire du circuit. De la même manière, la prochaine valeur <strong><strong>de</strong>s</strong> registres estcalculée en fonction <strong><strong>de</strong>s</strong> valeurs courantes et <strong><strong>de</strong>s</strong> entrées.Génération <strong><strong>de</strong>s</strong> circuits à partir <strong><strong>de</strong>s</strong> <strong>programmes</strong> <strong>Esterel</strong>. La sémantique constructived’<strong>Esterel</strong> permet <strong>de</strong> traduire récursivement chaque instruction du langage en un circuitséquentiel. Cette traduction produit un registre booléen pour chaque instruction pause du langagesource. En d’autres termes, le codage <strong>de</strong> l’état d’un bloc <strong>de</strong> programme repose sur unensemble précis <strong>de</strong> registres. Le reste <strong>de</strong> la traduction consiste à câbler les équations combinatoiresautour <strong>de</strong> ces registres.Circuits cycliques. La traduction <strong><strong>de</strong>s</strong> <strong>programmes</strong> en circuits génère parfois <strong><strong>de</strong>s</strong> cycles dansles équations combinatoires. Cela signifie que, au cours d’un même instant, la valeur d’un fil xdépend <strong>de</strong> la valeur d’un second fil y et que la valeur <strong>de</strong> y dépend <strong>de</strong> x. Comme dans la section2.1.1 traitant <strong><strong>de</strong>s</strong> aspects sémantiques du langage, il se peut que le programme soit logiquementincorrect ou bien que le cycle ne pose pas <strong>de</strong> problème dans la résolution constructive <strong>de</strong> l’étatdu circuit. Il existe une théorie <strong>de</strong> la causalité constructive qui i<strong>de</strong>ntifie <strong><strong>de</strong>s</strong> circuits cycliquescorrects. Pour ces <strong>de</strong>rniers, il existe <strong><strong>de</strong>s</strong> algorithmes, parfois coûteux en expansion, permettant<strong>de</strong> les transformer en circuits acycliques et sémantiquement équivalents [73]. Pour notre étu<strong>de</strong>,nous pourrons simplement faire l’hypothèse que les circuits que nous manipulons sont acycliques.2.1.4 Compilation <strong><strong>de</strong>s</strong> <strong>programmes</strong> <strong>Esterel</strong> en circuitCette section présente les principes <strong>de</strong> base <strong>de</strong> la traduction <strong><strong>de</strong>s</strong> <strong>programmes</strong> <strong>Esterel</strong> encircuit. La traduction présentée ici est purement structurelle. En réalité, les phénomènes <strong>de</strong>réincarnation présentés à la section 2.1.1.1 nécessitent la duplication <strong>de</strong> certaines parties ducircuit. Pour plus <strong>de</strong> détails, on pourra se référer à [11]. Chaque instruction du langage produitun circuit dont l’interface est représentée dans la figure 2.5.EGORESSUSPKILLE’SELK0K1K2...Fig. 2.5 – Interface circuit <strong><strong>de</strong>s</strong> instructions d’<strong>Esterel</strong>.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!