Decipher SVF Error messages

Let's say you are running an interconnect test that has been exported as SVF file.

When you execute that SVF file, pin and net diagnostics are generally not available. However, if the SVF execution returns an error on one or multiple bursts, one can analyse that error message to determine the defective signal.

Take this error message as an example:

SDR[2] 478 - FAILED! 
 TDI        :{0924924924925b6db6db6492494492492cb2db6db2db6c92496db6db6db6db24948924924924b6db6db3448daa2aaa5554a955524924924924924952}
 MASK       :{3fc0000000000024924924924800000024924924924924924924924924924924900000924924804924924812725455552aaa54aaa924924924924924}
 TDOexpected:{1480000000000024924924924800000024924924924924924924924924924924900000924924804924924812725455552aaa54aaa924924924924924}
 TDOmeasured:{14924924924924b6db6db6db6db6cb6db6db6db6db6db6dbffe7db6db6db6db6daad72db1db6d96db6db69dff25c55556aaa54aabdb6db6db6db6db6}
 FAIL       :{000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000}
Take a close look at the FAIL vector and you'll notice a four among all the zeros. This FAIL vector is a hexadecimal representation of bits in the associated test data register that mismatch the expected value: a bit value of 1 in the FAIL vector indicates that the bit value read from the associated cell does not match the expected value for that bit. So, if the vector above is a scan vector for a 470 bit long Boundary Register of a single device in the scan chain (plus 8 bits associated with the TestByte that gets scanned through the chain to detect any scan chain errors), we can find out which signal failed by determining the cell number that has been identified as faulty and looking up the port associated with that boundary-scan cell in the Boundary Register description (provided in the BSDL file) of the associated component:
 FAIL       :{000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000}
         Bit[477:0]
4h = 0100b
0h = 0000b

==> bit number 190 is indicated as faulty <br>    (start counting from the right, skipping the first two zeros, as they are associated with the testbyte; 
     there are 47 more zeros, then 4 --> 47*4 = 188 + 3 bits [to get to the 1 in 4h = 0100b] 
     = 191 minus 1 [since the LSB is indexed as bit 0) ==> bit 190 is defective
Now, if you look up bin number 190 in the Boundary Register description for this device you can identify the faulty port (and associated pin), e.g. 
Faulty bit# 190 -> port UART0_TXD -> pin number E16

Still need help? Contact Us Contact Us