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 dierentes. 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 denition 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 signie 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 dierente 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 dierentes 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= Xthen
Pbon = fj jj 2Nuds^valeur(j) = Vcomp(P;V Requise(P;V T))g
elseif
9 i 2 entrees(P), valeur(i) = Xthen
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 dierente 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