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
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
70 CHAPITRE 3.<br />
PROBLÈMES SUR LES MACHINES SÉQUENTIELLES<br />
Nous considérons ici que <strong>la</strong> machine séquentielle qui est traitée est une machine<br />
incomplètement spécifiée [75, 83]. Cette machine M est définie par un 6–uplet<br />
(n,m,r,ω,δ,Init), où :<br />
• n est le nombre <strong>de</strong> variables d’état <strong>de</strong> M. Son espace d’états est donc {0,1} n .<br />
• m est le nombre d’entrées <strong>de</strong> <strong>la</strong> machine, donc l’ensemble <strong>de</strong>s entrées qui peuvent<br />
être utilisées pour calculer les sorties et l’état successeur est {0,1} m .<br />
• ω est le vecteur <strong>de</strong>s r fonctions <strong>de</strong> sortie partiellement définies <strong>de</strong> <strong>la</strong> machine. Chacune<br />
<strong>de</strong>s fonctions du vecteur ω est une fonction <strong>de</strong> {0,1} n ×{0,1} m dans {0,1} r ⊥.<br />
• δ est <strong>la</strong> fonction <strong>de</strong> transition partiellement définie <strong>de</strong> <strong>la</strong> machine. δ est une fonction<br />
<strong>de</strong> {0,1} n ×{0,1} m dans {0,1} n ⊥, et est dénotée par un couple (Cns, ⃗ f) tel que :<br />
δ = λ⃗y.λ⃗x.(if Cns(⃗y,⃗x) = 1 then ⃗ f(⃗y,⃗x) else ⊥)<br />
Cns dénote le domaine où <strong>la</strong> fonction <strong>de</strong> transition est définie, et ⃗ f définit sur le<br />
domaine Cns <strong>la</strong> valeur <strong>de</strong> l’état successeur. Cns est une fonction booléenne <strong>de</strong><br />
{0,1} n ×{0,1} m dans {0,1} ; ⃗ f est une fonction vectorielle [f 1 ...f n ], où chaque f k<br />
est une fonction <strong>de</strong> {0,1} n ×{0,1} m vers {0,1}.<br />
• Init est l’ensemble <strong>de</strong>s états initiaux <strong>de</strong> <strong>la</strong> machine.<br />
Si ω ne dépend que <strong>de</strong>s variables d’état <strong>de</strong> <strong>la</strong> machine, on dira que M est une machine<br />
<strong>de</strong> Moore. Sinon, on dira que M est une machine <strong>de</strong> Mealy. <strong>Une</strong> machine <strong>de</strong> Moore a un<br />
pouvoir <strong>de</strong> dénotation équivalent à celui d’une machine <strong>de</strong> Mealy, car toute machine <strong>de</strong><br />
Mealy peut se transformer en une machine <strong>de</strong> Moore équivalente [74, 83].<br />
La figure 17 illustre le processus d’obtention du 6–uplet qui décrit une machine<br />
séquentielle, tel qu’il est par exemple mis en oeuvre dans PÂRIS [53]. PÂRIS prend<br />
en entrée <strong>la</strong> <strong>de</strong>scription d’un réseau <strong>de</strong> machines communicantes, écrite dans le <strong>la</strong>ngage<br />
VHDL [7, 87, 41]. Un processus d’exécution symbolique, tel que celui décrit<br />
dans [19, 89, 94], permet <strong>de</strong> calculer les fonctions booléennes décrivant le comportement<br />
<strong>de</strong> chaque machine. Puis un processus <strong>de</strong> composition symbolique <strong>de</strong> machines [53] permet<br />
d’obtenir le comportement global du réseau <strong>de</strong> machines, sous <strong>la</strong> forme d’une machine<br />
<strong>de</strong> Mealy décrite par un 6–uplet (n,m,r,ω,δ,Init). Durant cette compi<strong>la</strong>tion, <strong>de</strong>s<br />
vérifications statiques sont faites pour s’assurer que le réseau <strong>de</strong> machines respecte un<br />
certain nombre <strong>de</strong> règles. Ainsi, il faut s’assurer qu’il n’y a pas <strong>de</strong> boucle fonctionnelle,<br />
sous peine d’avoir un système asynchrone. On vérifie aussi que <strong>la</strong> sémantique <strong>de</strong> VHDL<br />
n’est pas violée par une association <strong>de</strong> machines.<br />
Onappellere<strong>la</strong>tion <strong>de</strong> transition oure<strong>la</strong>tion d’accessiblilité <strong>de</strong><strong>la</strong>machineM<strong>la</strong>fonction<br />
∆ définie <strong>de</strong> {0,1} n ×{0,1} n dans {0,1}, telle que ∆(⃗y,⃗y ′ ) = 1 si et seulement si il existe<br />
une transition <strong>de</strong> l’état ⃗y à l’état ⃗y ′ . De même, on appelle re<strong>la</strong>tion <strong>de</strong> sortie <strong>la</strong> fonction<br />
Λ définie <strong>de</strong> {0,1} n ×{0,1} r dans {0,1}, telle que Λ(⃗y,⃗z) = 1 si et seulement si à partir<br />
<strong>de</strong> l’état ⃗y <strong>de</strong> <strong>la</strong> machine, on peut produire <strong>la</strong> sortie ⃗z en acceptant une entrée. Plus