ATPG
ATPG
ATPG
DRC-T
TEST-T
TETRAMAX FLOW
BUILD-T DRC-T TEST-T
Read SCAN No
Set ATPG settings
Netlist DRC
Generate
Read Libraries Ye
patterns
Fixs
DRC’s
Set BUILD settings coverage No Coverage
target
reached analysis
yes
RUN build model
Write patterns Write reports
ATPG Issue’s
Inputs for ATPG are Library , Scan Inserted Netlist and SPF.
If you got any issues, May be one of the thing (lib / netlist / spf) might be the Issue
Invoke Tool
BUILD-T
DRC-T
If you got any issue in
this stage, It will be
because of Netlist
TEST-T
and Libraries not sync
Invoke Tool
BUILD-T
DRC-T
TEST-T
-> The above error is build error. It caused because of module definition is missed.
Module Name is XOR2X1_HVT and it is instantanted by a name as clk_div_DW01_inc_0
DRC-T
TEST-T
DRC Analysis - 1 :
Invoke Tool
Try to read Error twice
-> It is telling like, in “spf” Line 969. There is a problem related to “clk_500khz”.
clk_500khz should be pulsed not forced on BUILD-T
DRC-T
TEST-T
Invoke Tool
DRC Analysis - 1 :
-> Open “spf” file BUILD-T
DRC-T
TEST-T
Invoke Tool
DRC Analysis – 1 :
-> set line number in spf (Esc -> :set nu) BUILD-T
DRC-T
TEST-T
Invoke Tool
DRC Analysis -1 :
->Go to that particular line showing Error BUILD-T
(In this case line number is 969)
-> Sometimes, It won’t show exact line number.
You need to dig before and after lines near to that DRC-T
TEST-T
Invoke Tool
DRC Analysis - 1 :
->Go the definition where “_clk” is defined BUILD-T
DRC-T
TEST-T
DRC-T
TEST-T
DRC-T
TEST-T
Invoke Tool
DRC Analysis - 2:
DRC-T
TEST-T
Invoke Tool
DRC Analysis - 2:
-> Error or DRC is “S1” BUILD-T
-> Use “man S1” for help
DRC-T
TEST-T
Invoke Tool
DRC Analysis – 2 :
-> Scan Chian is blocked at particular flop because of BUILD-T
+ Clock is not pulsing at that particular flop. You can control clock pulsing from “spf”
+ Reset / set / clear should be in-active state. You can control clock pulsing from “spf”
+ Scan Enable should be ‘1’ during Shifting DRC-T
+ Test Mode should be ‘1’
+ Scan chain path should be available in design (Q -> Si). You need to change design
BUILD-T
TEST-T
Invoke Tool
DRC Analysis - 2:
-> Select whatever violationyou want and click “ok” BUILD-T
DRC-T
TEST-T
Invoke Tool
DRC Analysis - 2: -> After “ok”. You will see schematic window like below
BUILD-T
DRC-T
TEST-T
Invoke Tool
DRC Analysis - 2:
-> Violation flop you will see in red color in schematic. Use zoom in and zoom out BUILD-T
Scan Enable should be “1” during shifting. But its “xxx” instead of “111”. Trace back
Invoke Tool
DRC Analysis - 2:
Trace back (double click)
BUILD-T
DRC-T
TEST-T
DRC-T
After I updated it, Now only two chains are blocked. BUILD-T
DRC-T
TEST-T
DRC-T
TEST-T
+ From the above two figures, it is clear;ly showing reset_n is pulsing instead of forcing “1”.
+ Change reset should be “1” in “spf” and gave a run
Invoke Tool
DRC Fixing - 2:
BUILD-T
DRC-T
TEST-T
Invoke Tool
ATPG Settings and Pattern genenration
BUILD-T
DRC-T
Set the faults type : Report fault summary (Is just used
Stuckat to report faults before pattern TEST-T
Transition generation
bridging
path delay
Constraint on patterns /
coverage
DRC-T
DRC-T
DRC-T
DRC-T
DRC-T
TEST-T
Commerical applications Safety critical applications
Like Washing machine Like Defence, ISRO, aircraft,
TV etc.., Cars etc..,
Stuckat : ~= 98.5 to 99% Stuckat : ~= 99.5
Transition : ~= 80 to 85% Transition : ~= 90%
Invoke Tool
ATPG Settings and Pattern genenration
BUILD-T
Coverage target reached?
No DRC-T
TEST-T
Coverage Analysis and Improvement
Coverage Analysis and Improvement
1) + When faults are not detected. First I will check this things.
++ review of tool constraints
++ Best algorithm in the tool like (run_atpg –auto , run_atpg –opti etc..)
++ Use latest tool version
2) + Report coverage like module wise. Check which module has low coverage
++ Use GUI (Graphical User Interface)
++ Use reports
4) + Review atpg constraints like forces during capture. Remove if any unnecessary forces during capture.
7) + Try to use different ATPG engine’s provided by EDA Vendors for better patterns with better coverage
Coverage Analysis and Improvement
-> With the help of GUI, You can check where the coverage loss is there at some particular module.
-> If that module is analog module. Put that module in no-fault list
-> Then tool won’t add any faults on the module. Then coverage will be improve
Coverage Analysis and Improvement
-> report each and every fault why tool is not able to detect that
-> For example 1 :
sa0 AN clk_500khz
Coverage Analysis and Improvement
-> report each and every fault why tool is not able to detect that
-> For example 1 :
sa0 AN clk_500khz
Coverage Analysis and Improvement
-> report each and every fault why tool is not able to detect that
-> For example 1 :
sa0 AN clk_500khz
Coverage Analysis and Improvement
-> report each and every fault why tool is not able to detect that
-> For example 1 :
sa0 AN clk_500khz
Coverage Analysis and Improvement
-> For example 2 :
sa0 adc3_analog_in5 AN
Coverage Analysis and Improvement
-> For example 2 :
sa0 adc3_analog_in5 AN
Coverage Analysis and Improvement
-> For example 2 :
sa0 adc3_analog_in5 AN
Coverage Analysis and Improvement
-> For example 2 :
sa0 adc3_analog_in5 AN
+ adc0808 is an analog box. Hence we no need to add any faults on this module