• Aucun résultat trouvé

Diagnostic des fautes de connexions deplacees

Hypotheses de base:

3.4 Diagnostic des fautes de connexions deplacees

Le diagnostic des fautes de connexions deplacees est plus complique que celui des fautes de connexions manquantes ou excedentaires. Supposons qu'une imple-mentation IMPLcontientn portes, et que le nombre moyen d'entrees de chaque porte est k. Sous l'hypothese d'une faute de connexion excedentaire, chacune de cesn portes pourrait avoir k connexions excedentaires di erentes. Le nombre de fautes possibles est doncO(kn). En pratique, k est un petit nombre (inferieur a 10). Dans le cas de fautes de connexions manquantes, chacune desn portes pour-rait avoir une connexion manquante provenant de n'importe laquelle de ces n portes.2 Donc, le nombre de fautes possibles estO(n2). Dans le cas de connexions deplacees, chaque entree de chacune desn portes pourrait ^etre remplacee par une connexion provenant de n'importe laquelle de ces n portes. Le nombre de fautes possibles est donc O(kn2).

3.4.1 Analyse avec des vecteurs de test detectant l'erreur

Proposition 3.9

:

Une porte P dans IMPL sous l'application d'un vecteur de test detectant l'er-reur VT est suspecte d'avoir une connexion deplacee si et seulement si P est dans l'espace de recherche et si l'une des conditions suivantes est satisfaite:

1. Sus(P,VT) = 0.

2. Sus(P,VT) = 1 et VRequise(P,VT) 6=X et

9i;i2entrees(P);valeur(i) = Vcomp(P;V Courante(P;V T))^ 8j 6=i;j 2entrees(P);valeur(j) =Forcante(P)

3. Sus(P,VT) = 1 et VRequise(P,VT) = X et

9i;i2entrees(P);valeur(i) = Vcomp(P;V Courante(P;V T))^ 8j 6=i;j 2entrees(P);valeur(j)6= Forcante(P)

Preuve:

 Si Type(P) est AND ou NOR:

{ Sus(P;V T) = 0 seulement dans trois cas (voir la de nition 3.1): 1. VRequise(P;V T) = 0 et VCourante(P;V T) = 1

Pour ces deux types de portes (AND et NOR),Forcee(P) =

VRequise(P;V T) = 0. Le remplacementde n'importe quelle entree de P par une connexion C(P1;P) ou valeur(P1) = Forcante(P) produira VRequise(P;V T) a la sortie de P. Donc, P est suspecte d'avoir une connexion deplacee a ses entrees.

2. VRequise(P;V T) = 0 et VCourante(P;V T) = X

Un raisonnement semblable a celui du cas precedent s'applique aussi dans ce cas.

3. VRequise(P;V T) = X et VCourante(P;V T) = 1

Puisque VCourante(P;V T) = 1, toutes les entrees de P ont une valeur egale a 1 (resp. 0) si Type(P) = AND (resp. NOR). Le remplacement de n'importe quelle entree deP par une connexion C(P1;P) ou valeur(P1) = X produira VRequise(P;V T) = X. Donc,P est suspecte d'avoir une faute de connexion deplacee. { Sus(P;V T) = X seulement siVRequise(P;V T) =VCourante(P;V T).

Ceci signi e qu'il n'y a pas besoin de changer la valeur de sortie deP pour corriger l'implementation. Par consequent,P n'est pas suspecte. { Sus(P;V T) = 1 dans trois cas:

1. VRequise(P;V T) = 1 et VCourante(P;V T) = 0 (c'est-a-dire

VRequise(P;V T) 6= X)

Pour generer V Requise(P;V T) (qui est en fait Forcee(P) dans ce cas), toutes les entrees de P doivent ^etre xees a la valeur Forcante(P). Sous l'hypothese d'une seule erreur, P est suspecte s'il est possible de generer VRequise(P;V T) a sa sortie en rem-placant une seule de ses entrees par une autre connexion. P est donc suspecte si toutes ses entrees, exceptee une, sont egales a Forcante(P), tandis que l'entree restante est egale a Vcomp(P;0) (puisque VCourante(P;V T) = 0).

2. VRequise(P;V T) = 1 et VCourante(P;V T) = X (c'est-a-dire

VRequise(P;V T) 6=X)

En utilisant le m^emeraisonnement que dans le cas precedent, nous concluons que P est suspecte seulement si toutes ses entrees, ex-ceptee une, sont egales a Forcante(P), tandis que l'entree restante est egale a Vcomp(P;X) (car VCourante(P;V T) = X).

3. VRequise(P;V T) = X etVCourante(P;V T) = 0

Pour generer VRequise(P;V T), toutes les entrees de P doivent ^etre xees a une valeur di erente de Forcante(P). En utilisant le m^eme raisonnement que auparavant, nous concluons que P est suspecte seulement si toutes ses entrees, exceptee une, ont des valeurs di erentes de Forcante(P) tandis que l'entree restante est egale a Vcomp(P;0) (car VCourante(P;V T) = 0).

Un raisonnement semblable peut ^etre utilise si Type(P) est NAND ou OR. SiType(P) est NOT (resp. BUF), VRequise(P;V T) peut toujours ^etre ob-tenue en remplacant l'entree deP par une connexion provenant d'un nud ayant la valeur V Requise(P;V T) (resp. V Requise(P;V T)), et donc P est toujours suspecte. Ce cas est couvert par la premiere condition de la pro-position. 

Si une porte P 2 IMPL est suspecte sous l'application d'un vecteur de test detectant l'erreurV T, il lui sera associes les deux ensembles Pmauvais et Pbon.

1. Pmauvais(P;V T) est un sous-ensemble d'entrees de P contenant l'entree qui doit ^etre remplacee pour corriger la valeur de sortie de l'implementation. 2. Pbon(P;V T) est un sous-ensemble de nuds de l'implementation qui

pour-raient ^etre connectes a l'entree de P, apres la suppression de la connexion deplacee, pour corriger la valeur de sortie de l'implementation.

Proposition 3.10

:

Si une porte P 2 IMPL est suspecte d'avoir une connexion deplacee sous l'appli-cation d'un vecteur de test detectant l'erreur V T, alors:

Pmauvais(P;V T) = 8 > > > < > > > : fiji2entrees(P)g si Sus(P;V T) = 0 fiji2entrees(P)^

valeur(i) = Vcomp(P;V Courante(P;V T))g sinon:

Preuve:

{ Sus(P;V T) = 0:

Sus(P;V T) est egale a 0 dans les trois cas suivants:

1. VRequise(P;V T) = Forcee(P),VCourante(P;V T) = Forcee(P): Dans ce cas, toutes les entrees de P auront une valeur egale a

Forcante(P). Le remplacementde n'importe laquelle de ces entrees par une connexion ayant la valeur Forcante(P) produira la valeur requiseRV (P;V T) a la sortie de P.

2. VRequise(P;V T) = Forcee(P),VCourante(P;V T) = X:

Dans ce cas, toutes les entrees de P auront une valeur egale soit aForcante(P) soit a X.Le remplacement de n'importe laquelle de ces entrees par une connexion ayant la valeurForcante(P) generera la valeur VRequise(P;V T) a la sortie de P.

3. VRequise(P;V T) = X, VCourante(P;V T) = Forcee(P):

Dans ce cas, toutes les entrees de P auront une valeur egale a

Forcante(P). Le remplacementde n'importe laquelle de ces entrees par une connexion ayant la valeur X produiraVRequise(P;V T) a la sortie de P.

{ Sus(P;V T) = X:

Dans ce cas, la porte P n'est pas suspecte et l'ensemble Pmauvais ne sera pas calcule.

{ Sus(P;V T) = 1:

Sus(P;V T) est egale a 1 dans les trois cas suivants:

1. VRequise(P;V T) = Forcee(P),VCourante(P;V T) = Forcee(P): Dans ce cas, une des entrees de P aura la valeur Forcante(P). Pour generer VRequise(P;V T) a la sortie de P, cette entree doit

^etre enlevee. Il est a noter que Forcante(P) est compatible avec

VCourante(P;V T).

2. VRequise(P;V T) = Forcee(P), VCourante(P;V T) = X:

Dans ce cas, une des entrees de P aura une valeur egale a X. Pour genererVRequise(P;V T) a la sortie de P il faut enlever cette entree. Il est a noter queX est compatibleavecVCourante(P;V T). 3. VRequise(P;V T) = Forcee(P),VCourante(P;V T) = Forcee(P): Dans ce cas, une des entrees de P aura une valeur egale a Forcante(P). Pour generer VRequise(P;V T) cette entree doit ^etre enlevee. Il est a noter que Forcante(P) est compatible avec

VCourante(P;V T).

Proposition 3.11

:

Soit P une porte dans l'implementation IMPL, et soient Nuds = fi j i 2

IMPL ^ i =2 successeur(P)g. Si P est suspecte d'avoir une connexion deplacee sous l'application d'un vecteur de test detectant l'erreur V T, alors:

if

VRequise(P;V T)6= X

then

Pbon = fj jj 2Nuds^valeur(j) = Vcomp(P;V Requise(P;V T))g

elseif

9 i 2 entrees(P), valeur(i) = X

then

Pbon = fj jj 2Nuds^valeur(j)6=Forcante(P)g

else

Pbon = fj jj 2Nuds^valeur(j) = Xg. 

Preuve:

{ VRequise(P;V T)6=X:

Apres la suppression de la connexion deplacee de l'entree de la porteP, il existe deux possibilites: soit VRequise(P;V T) est generee a la sortie deP et dans ce cas la nouvelle connexion ne doit pas changer la valeur de sortie de P, soit une autre valeur est generee a la sortie de P et dans ce cas la nouvelle connexion doit generer la valeur requise. Dans les deux cas, la valeur de la nouvelle connexion doit ^etre compatible avec VRequise(P;V T).

{ V Requise(P;V T) = X, et9i2 entrees(P), valeur(i) = X:

Puisque P est suspecte, alors apres la suppression de la connexion de-placee les entreesdeP auront soit la valeur X soit la valeur Forcante(P). La nouvelle connexion doit avoir une valeur di erente deForcante(P), sinon Forcee(P) sera generee a la sortie de P.

{ V Requise(P;V T) = X, et8i2 entrees(P), valeur(i) 6=X:

Si la valeur X doit ^etre generee a la sortie de P, alors P doit avoir au moins une entree ayant la valeurX. La nouvelle connexion doit donc avoir la valeur X. 

Si une porte P est examinee sous l'application de plusieurs vecteurs de test detectant l'erreurV T1;V T2;V Tn, alors:

Pbon(P) = Pbon(P;V T1)\Pbon(P;V T2)\Pbon(P;V Tn)

Pmauvais(P) = Pmauvais(P;V T1)\Pmauvais(P;V T2)\Pmauvais(P;V Tn)

3.4.2 Analyse avec des vecteurs de test ne detectant pas

l'erreur

Proposition 3.12

:

Si la valeur courante de la sortie d'une porte P, VCourante(P;V T), ne doit pas changer sous l'application d'un vecteur de test V T pour que la valeur cor-recte d'une sortie primaire reste corcor-recte, alors l'ensemble des nuds desquels la connexion deplacee ne peut pas provenir, Ibon(P;V T), est calcule comme suit:

if

VCourante(P;V T)= Forcee(P)

then

Ibon(P;V T)= fj jj 2IMPL^valeur(j)6=Forcante(P)g

elseif

VCourante(P;V T)= Forcee(P)

then

if

(jPmauvais(P)j = 1)^

(fiji2entrees(P)^valeur(i) = Forcante(P) g = Pmauvais(P))

then

Ibon(P;V T)= fj jj 2IMPL^valeur(j)6= Forcante(P)g

else

endif