Une Boite `a Outils Pour la Preuve Formelle de Syst`emes Séquentiels
Une Boite `a Outils Pour la Preuve Formelle de Syst`emes Séquentiels
Une Boite `a Outils Pour la Preuve Formelle de Syst`emes Séquentiels
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
3.4. MINIMISATION DE MACHINES SÉQUENTIELLES 81<br />
y 1 y 2 y 3 y 4 y 5<br />
s 1 0 0 0 1 1<br />
s 2 0 1 0 0 1<br />
s 3 1 1 1 0 1<br />
s 4 1 0 0 0 0<br />
Table 3. Exemple <strong>de</strong><br />
variables redondantes.<br />
On voit que {y 1 ,y 2 } sont redondantes. Mais <strong>la</strong> meilleure solution est {y 3 ,y 4 ,y 5 }. Si on<br />
élimine d’abord y 1 , alors <strong>la</strong> meilleure solution ne pourra être trouvée. il faut donc considérertousleschoixd’éliminationafind’obtenirunesolutionoptimale.<br />
Cetteapprocheest<br />
évi<strong>de</strong>mment exponentielle. Cependant, un algorithme branch and bound permet d’obtenir<br />
une solution optimale en un temps raisonnable [86] pour certaines machines.<br />
Chaque occurrence d’une variable d’état redondante est substituée par sa fonction <strong>de</strong><br />
réécriture dans <strong>la</strong> fonction <strong>de</strong> transition et <strong>la</strong> fonction <strong>de</strong> sortie <strong>de</strong> <strong>la</strong> machine. A chaque<br />
élimination, une variable disparait, on peut ainsi espérer diminuer <strong>la</strong> taille du circuit<br />
correspondant. Mais sur <strong>la</strong> machine réelle, ce processus <strong>de</strong> substitution correspond à<br />
l’ajout d’une partie combinatoire <strong>de</strong> codage/décodage, ce qui peut complexifier le circuit.<br />
Aussi le meilleur choix est-il difficile à faire, et il n’est pas toujours souhaitable <strong>de</strong> réduire<br />
optimalement <strong>la</strong> mémoire <strong>de</strong> <strong>la</strong> machine.<br />
Cette technique d’élimination <strong>de</strong>s variables redondantes, plus <strong>la</strong> minimisation <strong>de</strong> <strong>la</strong><br />
partie combinatoire sur l’espace <strong>de</strong>s états vali<strong>de</strong>s d’une machine séquentielle, permet <strong>de</strong><br />
réduire <strong>la</strong> complexité d’un circuit séquentiel. C’est cette approche qui a été utilisée par<br />
GérardBerrypouroptimiserlescircuitssynthétisésàpartir<strong>de</strong>programmesESTEREL[14,<br />
15, 16], ce qui donne <strong>de</strong> bonnes performances.<br />
3.4.3 Minimisation <strong>de</strong>s variables d’états par réencodage<br />
L’élimination <strong>de</strong>s variables d’états redondantes était un premier pas vers <strong>la</strong> diminution <strong>de</strong><br />
<strong>la</strong> mémoire. La minimisation <strong>de</strong>s variable d’états par réencodage revient à calculer une<br />
machine minimale équivalente à <strong>la</strong> machine initiale. Le réencodage permet une minimisation<br />
absolue. <strong>Une</strong> machine possédant r c<strong>la</strong>sses d’états équivalents peut être réencodée<br />
sur une machine possédant ⌈log 2 r⌉ variables d’état. Cependant, cette approche risque<br />
<strong>de</strong> complexifier considérablement <strong>la</strong> partie combinatoire du circuit, comme nous l’avons<br />
précisé ci-<strong>de</strong>ssus. <strong>Une</strong> approche non optimale en terme du nombre <strong>de</strong> variables d’état,<br />
mais optimale en terme du nombre d’états vali<strong>de</strong>s, consiste à réenco<strong>de</strong>r <strong>la</strong> machine sur ses<br />
c<strong>la</strong>sses d’états équivalents.<br />
Le réencodage peut se faire symboliquement en concevant une fonction <strong>de</strong> projection<br />
quivaprojeterunec<strong>la</strong>ssed’équivalencesurunétatunique<strong>de</strong>cettec<strong>la</strong>sse. Cetteprojection<br />
estobtenueenutilisantl’hyper-distance“plusprocheinterprétation”surlesinterprétations<br />
(voir Section 4.5.2). Dans [86] est proposée une telle projection. Le calcul <strong>de</strong>s c<strong>la</strong>sses<br />
d’états équivalents pour <strong>la</strong> réduction d’une machine séquentielle M, ou pour l’obtention<br />
du modèle minimal équivalent à M [23], s’effectue grâce à l’opérateur Pre décrit dans le<br />
Chapitre 5.