Wednesday, September 11, 2013

DFT Q&A - Part 13

76. I have been told that any logic in the reset path creates testability problems. I would like to know exactly the problem that would create.
I did a bit of analysis myself. If the internal reset is OR'ed with POR and then issued as one single reset to rest of the logic, still the internal reset comes from some flop or through a cloud that can again be controlled through the scan chain. So we are in complete control of how and when the internal reset is generated and can be disabled during testing. Is the issue because, the combination that is required to disable the internal reset might clash with combination required for testing itself.
Any thoughts?

The bottom line is that the resets to all the flops in scan chains need to be controlled during the scan shift operation. If not, these resets that come from other flops will be randomly resetting others flops duringg this time, which
makes it impossible to scan data in and out...

Depending on the implementation, some people use scan_enable to control the internal resets, and some use scan_mode.

I have couple of comments

1) Internally generated reset is like any other logic during test mode.
If we can control them using our scan pattern, so can we do for the internal reset. I guess the issue here that pattern that is used to mute the internal reset might collide with pattern that is required to test.

2) Even though we can disable such control signal using scan signals, it is probably preferable to keep such signals at bare minimum. This one is a pure guess

You're right - an internally generated reset should be valid during test mode. However, if it emanates, in any way, from a scanned flip-flop, then it must be gated during scan shift. If not, the integrity of the scan chain is broken.

So the bare minimum, as you say, is probably scan_enable.

1) I believe fault simulation is carried out to check the effectiveness of the vector. I believe the vector generated by the ATPG tool is by a deterministic process and should be able to bring out the fault. Why is then fault simulation required. Also, can the ATPG tool itself cannot determine if vector is not an effective one

2) Are there special tools for fault simulation? i.e. fault simulator.
Or the regular simulators provide this option.

Fault simulation is not required to validate ATPG output. However, as deepaky correctly points out, an ATPG tool will internally call a fault simulation tool. This is because once a pattern is generated to cover a specific fault, it is fault simulated to see if it covers any other faults that were not explicitely targeted. If other faults are covered they can be dropped from further consideration (unless a specific N-detect level is a requirement, but that's a different discussion....)
Stand-alone fault simulators do also exist. They are typically used to fault grade functional vectors. Fault simulators are also included in LBIST solutions to fault grade the pseudo random patterns generated by the LBIST.


77. If Fault Simulation is not required to validate ATPG then why do we have an option to perform fault simulation in tools like fastscan.

Fastscan is a versatile test pattern generation and fault simulation tool. It can be used to fault grade any set of scan patterns against many types of user definable fault types. Again, for the fault types than Fastscan is capable of targeting, it is not necessary to perform a separate fault simulation run on the patterns Fastscan generates. However you can for example fault simulate those generated patterns on other fault types.

Many people will use their functional verification test for manufacturing test. They need to fault simulate these vectors to determine what faults are covered and left uncovered to be targeted by an ATPG. It also allows them to determine the quality of these tests.

78. How to avoid C4 violation in Synopsys DFT compiler?

First thing you cannot get C4 in the pre_dft drc, it will be some D violation.

Second, you have not used the command

set_dft_configuration -fix_reset enable ( may be you miss to write that here)

Further, I dont think that autofix will solve this problem. It is a capture issue and not scan shift issue. What I think is happening here is that , your reset pin before reaching the flop is gated with testmode and then reaches the flop. The flops are not failing the drc and coming on the scan chain because the reset on the pin of the flops is in inactive state.

You can trace the top level reset pin in your design to see if it is getting gated some where.


In DC you can use the command

all_fanout -from reset


79. debugging compressed patterns failing in tester

well, for debugging its always easier with basic scan patterns corresponding to these compressed patterns. However if you wish to debug with these compressed patterns then you need to find the cycle failing and then find all the corresponding flops in all the chains compressed. This way you will have huge number of flops which could be failing e.g. if you have compression ratio of 100 then for each failure you will have 100 flops which could be contender to this failure.

80. C6 violation during ATPG
set clock_off simulation on
set split capture_cycle on
And if the two commands by kunal does not resolve these issue, then you need to mask these flops.
Normally such violation occurs when Clock is seen as Data by ATPG tool.
For Fastscan the commands would be :
add cell constraint -drc C6


This will add constraint DX on the output of such registers.

Did you find this post helpful