07.11.2013 Views

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

SHOW MORE
SHOW LESS

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

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

Saved successfully!

Ooh no, something went wrong!