Calcul des etats atteignables de programmes Esterel partitionne ...
Calcul des etats atteignables de programmes Esterel partitionne ...
Calcul des etats atteignables de programmes Esterel partitionne ...
- 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>.