Verify Test Patterns
Verify Test Patterns
This article introduces the Verify Test Pattern of Chapter 8 Test Pattern Generation
in UG.
In addition, you can also use the -start -end switch to reduce the file size, but such
interception is unreliable and not as reliable as -sample. In the end, you still have to
run the full pattern set.
1 Ashwani DFT
STARTPAT,END PAT, and CHAINTEST Usage:
2 Ashwani DFT
When you compare simulation data with ATPG tool data, it is very helpful to use the
SIM_VECTYPE_SIGNAL parameter file.
When this keyword is used in the parameter file. tb will include additional
keywords to make it easier for you to understand and debug.
As shown in the figure, paying attention to these signals can help you debug
mgcdft_shift,
mgcdft_launch_capture
_pattern_count
From the figure, we can see that the mismatch occurs at the shift procedure
after pattern 6, that is, the mismatch occurs when shifting out pattern 6 (shifting
in pattern 7).
At this point, if we want to see the data in the ATPG tool, you can use the time
of 1100ns in the figure.
3 Ashwani DFT
Demo2:
It is recommended to use parallel testbench with a small number of serial shift
cycles. This allows you to catch shift and capture problems in a pattern.
To apply serial post shift cycles, write out the patterns with the
“SIM_POST_SHIFT”.
For example, to define 5 post-shift cycles, use:
When you use tb dump waveform, the following signals can help you:
_procedure_string describes the shift/load_unload phase.
_pattern_count pattern number. It should be noted that when pattern_count is
0, procedure_string is in the SHIFT phase. It means that the data is shifting out
for pattern 0 (shifting in for pattern 1), so it is important to remember that
pattern_count refers to the shift out phase
_cycle_count cycle number
_compare_fail comparison failure is 1
_chain_test _Is it a chain test, 1 if it is, and 0 if it is a scan test
4 Ashwani DFT
As shown in the figure above, first tell the ATPG tool the chain name and which
cell has failed. After the ATPG tool locates that cell, set_gate_report pattern 0 is
used to specify the failed pattern.
Then report_gates to see the expected value of SDFF.
My personal understanding of the meaning of D (100) above is that the ATPG tool
will treat it as a change within the cycle, rather than a complete alignment with the
clock. As shown in the figure below, I drew 010 below, which represents the D port.
First, 0 is the starting state, and then a change occurs. As for where the change
occurs, it cannot be extracted from the pattern because the pattern is not based on
the timing_base tool, but on the event tool. Finally, it changes again to 0 (i.e. the
final state).
5 Ashwani DFT
So from the information D(100) above, we can see that in the current cycle, the
initial state of port D is 1, then at some point it changes to 0, and the final state
is 0.
1. Comparison At the beginning of capture, we first need to check that the scan cell
is loaded with the correct value. In this example, at the beginning of the capture
procedure, ff0/Q is 1. As shown in the figure above, both simulation and tessent
visualizer are 1 at the beginning of the capture phase. ff0/Q (111)
If this value is correct, it means that the scan cell is loaded with the correct value and
there is no problem in the shift phase.
2. Next, compare the capture phase. The clock is 010, SE (000) D (100). That is, the D
port changes from 1 at the beginning to 0, and finally remains at 0. Q captures 1, and
the output remains at 111.
6 Ashwani DFT
As shown in the figure above, we can see from the dump waveform that the clock
piulse is fine, SE is 0, and D changes from 1 to 0. The problem is that Q does not
capture the expected value 1, but 0 instead. That is to say, the clock does not step on
the correct value due to the hold problem. And becomes 100.
7 Ashwani DFT