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.

30 CHAPITRE 2. CONTEXTE DE L’ETUDESubstitution dans le calcul <strong>de</strong> l’image. Le calcul <strong>de</strong> l’image nécessite un renommage <strong><strong>de</strong>s</strong>variables afin d’exprimer l’ensemble <strong><strong>de</strong>s</strong> nouveaux états découverts à partir <strong><strong>de</strong>s</strong> variables <strong>de</strong>registres (voir section 2.4.1). L’opérateur <strong>de</strong> substitution permet <strong>de</strong> réaliser cette opération.2.5.3.5 Cofacteur et BDDsLes opérateurs <strong>de</strong> cofacteur peuvent s’appliquer aux BDDs. Le cofacteur d’un BDD U parun BDD V noté U ↓V permet <strong>de</strong> supprimer <strong><strong>de</strong>s</strong> noeuds dans U en restreignant le domaine <strong>de</strong> Uà l’ensemble V (voir section 2.4.2). Un algorithme pour cet opérateur a été proposé par OlivierCou<strong>de</strong>rt et al. dans [27]. Cet algorithme permet <strong>de</strong> supprimer <strong><strong>de</strong>s</strong> noeuds dans trois cas. Si ledomaine est vi<strong>de</strong>, c’est à dire représenté par le BDD 0, alors le résultat est un BDD constant(0 ou bien 1, nous avons choisi 0) :(v ? t, e) ↓0 = 0Les <strong>de</strong>ux autres simplifications s’appliquent si les variables à la racine <strong><strong>de</strong>s</strong> BDDs sont i<strong>de</strong>ntiqueset si l’une <strong><strong>de</strong>s</strong> <strong>de</strong>ux branches <strong>de</strong> V est 0. Supposons par exemple que la branche “then” <strong>de</strong> V soit0. Dans ce cas, la branche “then” <strong>de</strong> U peut être remplacée par n’importe quel BDD. Le choixle plus efficace consiste à lui attribuer le même BDD que sa branche “else” et donc à supprimerla racine <strong>de</strong> U (voir les règles <strong>de</strong> simplification <strong><strong>de</strong>s</strong> BDDs à la section 2.5.1). Ces simplificationssont formellement données par les relations suivantes :(v ? t, e) ↓(v ? t ′ ,0) = t ↓t ′(v ? t, e) ↓(v ? 0,e ′ ) = e ↓e ′Dans le cas général, l’opérateur <strong>de</strong> cofacteur s’applique comme n’importe quel opérateur booléenbinaire. Ainsi, si U = (v ? t, e) et V = (v ? t ′ , e ′ ) désignent <strong>de</strong>ux noeuds <strong>de</strong> BDD portant sur lamême variable v alors :U ↓V = (v ? t ↓t ′, e ↓e ′)Le coût théorique en temps <strong>de</strong> cet opérateur est proportionnel au produit du nombre <strong>de</strong> noeudsdans U et dans V. Le BDD résultant <strong>de</strong> cette opération est souvent plus simple que U. Dans lepire <strong><strong>de</strong>s</strong> cas, l’algorithme proposé par Olivier Cou<strong>de</strong>rt peut toutefois produire un BDD plus largeque U. Des métho<strong><strong>de</strong>s</strong> permettent d’améliorer cet opérateur et <strong>de</strong> garantir <strong>de</strong> ne pas augmenterla taille <strong>de</strong> U [44].

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

Saved successfully!

Ooh no, something went wrong!