Maker Pro
Maker Pro

stuck at fault

vead

Nov 27, 2011
473
Joined
Nov 27, 2011
Messages
473
hello
I would like to know how we can analyze the fault using

look at this pdf file
I Image 1st
Fault-free function z = AB+CD
Faulty function zf = AB

Fault-free function z = AB+CD
Faulty function zf = AB+D

Q1 how we will know that function AB is faulty and function AB+D is faulty?
Q2 how to generate test vector for this two circuit ?
 

Attachments

  • Single_Stuc1.pdf
    92.7 KB · Views: 115

Harald Kapp

Moderator
Moderator
Nov 17, 2011
12,615
Joined
Nov 17, 2011
Messages
12,615
A1 Because zf=AB+D will not react to a change in C.
A2 Find values for A, B, C and D such that z=AB+CD <> zf=AB+D.
 

vead

Nov 27, 2011
473
Joined
Nov 27, 2011
Messages
473
A1 Because zf=AB+D will not react to a change in C.
A2 Find values for A, B, C and D such that z=AB+CD <> zf=AB+D.
I did not understand

z = AB+CD
z= output of circuit
Q how do you know that C is correct but AB+D is faulty?


Code:
A  B  C  D  Z   ZF
0   0  0  0  0   1 
0   0  0  1  0   1
0   0  1  0  0   1
0   1  0  0  1   0
0   1  0  1  0   1
0   1  1  0  0   1
0   1  1  1  0   1
1   0  0  0  1   0
1   0  0  1  1   0
1   0  1  0  0   1
1   0  1  1  0   1
1   1  0  0  1   0
1   1  0  1  1   0
1   1  1  0  1   0
1   1  1  0  1   0
 
Last edited:

Harald Kapp

Moderator
Moderator
Nov 17, 2011
12,615
Joined
Nov 17, 2011
Messages
12,615
Q how do you know that C is correct but AB+D is faulty?

You don't know. You haven't understood the principle of fault simulation and fault detection. A stuck-at fault means that the signal is not changing, it is stuck at a fixed value. In this case C=1 which makes CD=D and therefore zf= AB+D.

And your code table is completely wrong. Take for example the last line:
A=1, B=1, D=0 AB+D= 1*1+0=1, not 0.
 

vead

Nov 27, 2011
473
Joined
Nov 27, 2011
Messages
473
look this table which test vector is used to cover fault
Code:
A B C D z zf
0 0 0 0 0 1
0 0 0 1 0 1
0 0 1 0 0 1
0 0 1 1 1 0
0 1 1 0 0 1
0 1 1 1 1 0
1 0 0 0 0 1
1 0 0 1 0 1
1 0 1 0 0 1
1 0 1 1 1 0
1 1 0 0 1 0
1 1 0 1 1 0
1 1 1 0 1 0
1 1 1 1 1 0
You don't know. You haven't understood the principle of fault simulation and fault detection. A stuck-at fault means that the signal is not changing, it is stuck at a fixed value. In this case C=1 which makes CD=D and therefore zf= AB+D.

And your code table is completely wrong. Take for example the last line:
A=1, B=1, D=0 AB+D= 1*1+0=1, not 0.
 
Last edited:

Harald Kapp

Moderator
Moderator
Nov 17, 2011
12,615
Joined
Nov 17, 2011
Messages
12,615
Your table is still wrong.
Plus you do not use just a single test vector. You apply all test vectors in order to find any possiblöe fault.
 

vead

Nov 27, 2011
473
Joined
Nov 27, 2011
Messages
473
Your table is still wrong.
Plus you do not use just a single test vector. You apply all test vectors in order to find any possiblöe fault.
which section is wrong I think output Z and ZF
I want to determine test vector that cover maximum fault
look Image 1st
Fault-free function z = AB+CD
Faulty function zf = AB
stuck at s-a-0 ,so C must be set to 1
we know the one vector C =1

Q. If we know the C , can we determine D ?
there are 16 combination
now we have 8 combination where c=1
so we have to choose one combination that cover maximum fault
 

Harald Kapp

Moderator
Moderator
Nov 17, 2011
12,615
Joined
Nov 17, 2011
Messages
12,615
which section is wrong I think output Z and ZF
Read my post #4 and go through the full table to correct it.

so we have to choose one combination that cover maximum fault
No, read my post #6. You will have more than one test vector to find as many possible stuck-at faults as possible. A single vector will not suffice.

Fault-free function z = AB+CD
Faulty function zf = AB
Your question in post #3 was:
Q how do you know that C is correct but AB+D is faulty?
If you have a s-a-0 at C, then AB+CD becomes AB.
If you have a s-a-1 at C, then AB+CD becomes AB+D.
Your truth table doesn't fulfill either of these equations.
 

vead

Nov 27, 2011
473
Joined
Nov 27, 2011
Messages
473
Read my post #4 and go through the full table to correct it.


No, read my post #6. You will have more than one test vector to find as many possible stuck-at faults as possible. A single vector will not suffice.


Your question in post #3 was:

If you have a s-a-0 at C, then AB+CD becomes AB.
If you have a s-a-1 at C, then AB+CD becomes AB+D.
Your truth table doesn't fulfill either of these equations.
ok look this
if A=1 , B=1, C=1 D=0
Z=AB+CD=1*1+1*0=1+0=1
Zf=AB+D=1*1+0=1+0=1
 

Harald Kapp

Moderator
Moderator
Nov 17, 2011
12,615
Joined
Nov 17, 2011
Messages
12,615
This is correct and since Z=ZF this vector is not suitable to detect an s-a-0 nor an s-a-1 on C or D since by A*B=1 the output is already defined to 1.
So you need to find another vector where a change in C (orD) has an effect on Z and ZF and where a s-a0 or s-a-1 on C (or D) makes Z<>ZF.
 

vead

Nov 27, 2011
473
Joined
Nov 27, 2011
Messages
473
look this table
Code:
A B C D Z Zf
0 0 0 0 0 0
0 0 0 1 0 0
0 0 1 0 0 0
0 0 1 1 1 0
0 1 0 0 0 0
0 1 0 1 0 0
0 1 1 0 0 0
0 1 1 1 1 0
1 0 0 0 0 0
1 0 0 1 0 0
1 0 1 0 0 0
1 0 1 1 1 0
1 1 0 0 1 1
1  1 0 1 1 1
1 1 1 0 1 1
1 1 1 1 1 1

test vector for s-a-0
Code:
A B C D Z ZF
0 0 1 0 0 0
0 0 1 1 1 0
0 1 1 0 0 0
0 1 1 1 1 0
1 0 1 0 0 0
1 0 1 1 1 0
1 1 1 0 1 1
1 1 1 1 1 1

there are two test vector that can cover maximum fault
Code:
A B C D Z ZF
0 0 1 1 1 0
0 1 1 1 1 0
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
Jan 21, 2010
25,505
Joined
Jan 21, 2010
Messages
25,505
there are two test vector that can cover maximum fault
Code:
A B C D Z ZF
0 0 1 1 1 0
0 1 1 1 1 0

0.0 + 1.1 = 1 and 0.0 + 1 = 1, so the first solution is wrong
0.1 + 1.1 = 1 and 0.1 + 1 = 1, so the second solution is wrong.

You need to understand boolean algebra.

There are three possible patterns that result in a different answer for these two functions.
 
Last edited:

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
Jan 21, 2010
25,505
Joined
Jan 21, 2010
Messages
25,505
In boolean algebra, what do the following equate to?

1.1 = ?
1.0 = ?
0.0 = ?
0.1 = ?

1+1 = ?
1+0 = ?
0+0 = ?
0+1 = ?

1.0 + 1 = ?
0.1 + 1 = ?
0.1 + 0 = ?
 

vead

Nov 27, 2011
473
Joined
Nov 27, 2011
Messages
473
0.0 + 1.1 = 1 and 0.0 + 1 = 1, so the first solution is wrong
0.1 + 1.1 = 1 and 0.1 + 1 = 1, so the second solution is wrong.

You need to understand boolean algebra.

There are three possible patterns that result in a different answer for these two functions.
ok look this
Code:
A B C D Z ZF
0 0 0 1 0 1
0 1 0 1 0 1
1 0 0 1 0 1

Q1 IS it path sensitization method to detect fault
 

vead

Nov 27, 2011
473
Joined
Nov 27, 2011
Messages
473
1.1 = 1
1.0 = 0
0.0 = 0
0.1 = 0

1+1 = 1
1+0 = 1
0+0 = 0
0+1 = 1

1.0 + 1 = 1
0.1 + 1 = 1
0.1 + 0 = 0
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
Jan 21, 2010
25,505
Joined
Jan 21, 2010
Messages
25,505
OK, so you can do the boolean algebra, I'm not sure why you were making the mistakes earlier.

If you look at those three examples you found, what should happen to the output when C changes in these cases? Does this allow you to test that processing of the C input is correct?

Can you find other patterns to likewise test A, B, and D?

In this case you generate 2*n tests to determine the functionality of a model with 2n states. Reducing your tests from 16 to 8 isn't a great achievement, but if you had 16 inputs, reducing the number of tests from 65,000 to 32 would be a huge improvement.
 

vead

Nov 27, 2011
473
Joined
Nov 27, 2011
Messages
473
Can you find other patterns to likewise test A, B, and D?

yes I can do

Q1 IS it path sensitization method to detect fault

I think no because path sensitization method to detect path or line fault
if one line is fault we detect faulty path
I want to learn path sensitization method for Image one
suppose C line is faulty how to generate test vector?
 

Harald Kapp

Moderator
Moderator
Nov 17, 2011
12,615
Joined
Nov 17, 2011
Messages
12,615
1) which page of the document dio you refer to? A and B occur more than once.
2) A is an input, it doesn't "become" 1, you set it to either 0 or 1
 
Top