100% found this document useful (2 votes)
551 views

Atpg Lab Notes PDF

The document describes the inputs, outputs, and process for running an ATPG lab. The inputs include a netlist, library, and setup files. The outputs include testbenches with patterns and various reports. Commands are provided to run the ATPG tool to generate test patterns for stuck-at and transition faults and output the results.

Uploaded by

rajkumar gunja
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (2 votes)
551 views

Atpg Lab Notes PDF

The document describes the inputs, outputs, and process for running an ATPG lab. The inputs include a netlist, library, and setup files. The outputs include testbenches with patterns and various reports. Commands are provided to run the ATPG tool to generate test patterns for stuck-at and transition faults and output the results.

Uploaded by

rajkumar gunja
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

ATPG LAB NOTES:

Inputs:

1) Netlist (Scan / SCAN + Compression)


2) Library (mdt format)
3) ATPG Setup files(from Scan insertion / from compression)
 Atpg dofile ( Clocks and scan chains information)
 Test procedure file
4) Dofile ( to perform pattern generation)

Outputs:

1) Testbench along with patterns


 Chain patterns (to test scan path)
 Serial
 Parallel
 Scan or capture patterns (Tests both scan path and capture path)
 Serial
 Parallel
2) Reports like scan chain, scan cells, coverage, DRC’s , faults, etc..

How to run the lab:

Create a run file and source it.

Useful commands:

tessent -shell -lib /home/sujith/scan_insertion_golden/library/atpg/tsmc13.mdt -dofile atpg.dofile -log


./log/atpg.log -replace

Observations:

1) Coverage number ( Calculate the coverage manually)


2) AU Faults
3) DRC’s
4) Scan flops/scan chains
5) Non-scan flops

ATPG DOFILE Commands:

For stuck-at :

/////////////////////////////////////////////////////////////////

// Generated by DFTAdvisor at Thu Feb 12 10:36:00 2009 //

/////////////////////////////////////////////////////////////////

// Save the Log //


/////////////////////////////////////////////////////////////////

set_context patterns -scan

read_verilog /home/sujith/atpg_labs/stuck_at/EDT/case1/inputs/netlist/DmaWr_edt_top_gate.v

Note : We can give scan / scan + compression netlist

/////////////////////////////////////////////////////////////////

// FastScan Version //

/////////////////////////////////////////////////////////////////

set_current_design DmaWr

dofile /home/sujith/atpg_labs/stuck_at/EDT/case1/inputs/dofile/DmaWr_edt.dofile

/////////////////////////////////////////////////////////////////

// Check the Contention //

/////////////////////////////////////////////////////////////////

set contention check capture_clock -atpg

/////////////////////////////////////////////////////////////////

// report Primary inputs all //

/////////////////////////////////////////////////////////////////

set system mode atpg

/////////////////////////////////////////////////////////////////

// Verify there are no DRC violations. //


/////////////////////////////////////////////////////////////////

report drc rules

/////////////////////////////////////////////////////////////////

// Define the Fault Model //

/////////////////////////////////////////////////////////////////

set fault type stuck

/////////////////////////////////////////////////////////////////

// Add All Faults //

/////////////////////////////////////////////////////////////////

add faults -all

/////////////////////////////////////////////////////////////////

// Run //

/////////////////////////////////////////////////////////////////

create_patterns

/////////////////////////////////////////////////////////////////

// Report //

/////////////////////////////////////////////////////////////////

report drc rules

report environment

report scan cells > /home/sujith/atpg_labs/stuck_at/EDT/case1/outputs/reports/scan_cells.rpt


report scan chains > /home/sujith/atpg_labs/stuck_at/EDT/case1/outputs/reports/scan_chains.rpt

report patterns > /home/sujith/atpg_labs/stuck_at/EDT/case1/outputs/reports/patterns.rpt

/////////////////////////////////////////////////////////////////

// Write Faults //

/////////////////////////////////////////////////////////////////

write faults /home/sujith/atpg_labs/stuck_at/EDT/case1/outputs/faults/DET.faults.rpt -r -c DS -c DI -c


RE -c UU -c TI -c BL

write faults /home/sujith/atpg_labs/stuck_at/EDT/case1/outputs/faults/UDET.faults.rpt -r -c AU -c UO -c


UC

/////////////////////////////////////////////////////////////////

// Save Patterns //

/////////////////////////////////////////////////////////////////

// chain Test serial Pattern

write_patterns /home/sujith/atpg_labs/stuck_at/EDT/case1/outputs/patterns/chaintest_serial.v -
pattern_sets chain -verilog -serial -replace

// scan capture patterns

write_patterns /home/sujith/atpg_labs/stuck_at/EDT/case1/outputs/patterns/scan_or_capture_serial.v
-pattern_sets scan -verilog -serial -replace

// chain Test parallel Pattern

write_patterns /home/sujith/atpg_labs/stuck_at/EDT/case1/outputs/patterns/chaintest_parallel.v -
pattern_sets chain -verilog -parallel -replace

// scan capture parallel patterns

write_patterns
/home/sujith/atpg_labs/stuck_at/EDT/case1/outputs/patterns/scan_or_capture_parallel.v -
pattern_sets scan -verilog -parallel -replace

write_patterns ./patterns/scan_or_capture.wgl -pattern_sets scan -wgl -parallel -replace


write_patterns ./patterns/scan_or_capture.stil -pattern_sets scan -stil -parallel -replace

write_patterns ./patterns/scan_or_capture.ascii -pattern_sets scan -ascii -parallel -replace

/////////////////////////////////////////////////////////////////

// Exit //

/////////////////////////////////////////////////////////////////

//Exit

Atspeed Dofile commands:

/////////////////////////////////////////////////////////////////

// Generated by DFTAdvisor at Thu Feb 12 10:36:00 2009 //

/////////////////////////////////////////////////////////////////

// Save the Log //

/////////////////////////////////////////////////////////////////

set_context patterns -scan

read_verilog /home/sujith/ATPG_Training/case1/netlist/DmaWr_edt_top_gate.v

/////////////////////////////////////////////////////////////////

// FastScan Version //

/////////////////////////////////////////////////////////////////

report version data

set_current_design DmaWr
dofile ./DmaWr_edt.dofile

/////////////////////////////////////////////////////////////////

// Check the Contention //

/////////////////////////////////////////////////////////////////

set contention check capture_clock -atpg

set transition holdpi on

/////////////////////////////////////////////////////////////////

// report Primary inputs all //

/////////////////////////////////////////////////////////////////

set system mode atpg

/////////////////////////////////////////////////////////////////

// Verify there are no DRC violations. //

/////////////////////////////////////////////////////////////////

report drc rules

/////////////////////////////////////////////////////////////////

// Define the Fault Model //

/////////////////////////////////////////////////////////////////

set fault type transition -no_shift_launch

/////////////////////////////////////////////////////////////////

// Add All Faults //


/////////////////////////////////////////////////////////////////

add faults -all

/////////////////////////////////////////////////////////////////

// Run //

/////////////////////////////////////////////////////////////////

create_patterns

reset_au_faults

set pattern type -seq 2

create_patterns

/////////////////////////////////////////////////////////////////

// Report //

/////////////////////////////////////////////////////////////////

report drc rules

report environment

report scan cells > ./reports/scan_cells.rpt

report scan chains > ./reports/scan_chains.rpt

report patterns > ./reports/patterns.rpt

/////////////////////////////////////////////////////////////////

// Write Faults //

/////////////////////////////////////////////////////////////////

write faults ./reports/DET.faults.rpt -r -c DS -c DI -c RE -c UU -c TI -c BL

write faults ./reports/UDET.faults.rpt -r -c AU -c UO -c UC


/////////////////////////////////////////////////////////////////

// Save Patterns //

/////////////////////////////////////////////////////////////////

// chain Test serial Pattern

write_patterns ./patterns/chaintest_serial.v -pattern_sets chain -verilog -serial -replace

// scan capture patterns

write_patterns ./patterns/scan_or_capture_serial.v -pattern_sets scan -verilog -serial -replace

// chain Test parallel Pattern

write_patterns ./patterns/chaintest_parallel.v -pattern_sets chain -verilog -parallel -replace

// scan capture parallel patterns

write_patterns ./patterns/scan_or_capture_parallel.v -pattern_sets scan -verilog -parallel -replace

write_patterns ./patterns/scan_or_capture.wgl -pattern_sets scan -wgl -parallel -replace

write_patterns ./patterns/scan_or_capture.stil -pattern_sets scan -stil -parallel -replace

write_patterns ./patterns/scan_or_capture.ascii -pattern_sets scan -ascii -parallel -replace

/////////////////////////////////////////////////////////////////

// Exit //

/////////////////////////////////////////////////////////////////

//Exit

Atspeed Test Procedure file:

//

// Written by Tessent Shell 2016.3 on Sat Jun 30 08:56:54 2018

//

set time scale 1.000000 ns ;


set strobe_window time 10 ;

timeplate slow_clk = // 25 Mhz

force_pi 0 ;

measure_po 10 ;

pulse_clock 20 10 ;

pulse Reset 20 10;

pulse edt_clock 20 10;

pulse scan_reset 20 10;

pulse scan_set 20 10;

period 40 ;

end;

timeplate fast_clk = // 100 Mhz

force_pi 0 ;

measure_po 3 ;

pulse_clock 5 3;

pulse Reset 5 3;

pulse edt_clock 5 3 ;

pulse scan_reset 5 3;

pulse scan_set 5 3;

period 10 ;

end;

procedure test_setup =

timeplate slow_clk ;

// cycle 1 starts at time 0

cycle =

force edt_clock 0 ;

force scan_en 0 ;
force test_en 1 ;

end;

end;

procedure shift =

scan_group grp1 ;

timeplate slow_clk ;

// cycle 1 starts at time 0

cycle =

force_sci ;

force edt_update 0 ;

measure_sco ;

pulse FastClk ;

pulse edt_clock ;

end;

end;

procedure load_unload =

scan_group grp1 ;

timeplate slow_clk ;

// cycle 1 starts at time 0

cycle =

force FastClk 0 ;

force Reset 1 ;

force edt_bypass 0 ;

force edt_clock 0 ;

force edt_update 1 ;

force scan_en 1 ;

force scan_reset 0 ;
force scan_set 0 ;

force test_en 1 ;

pulse edt_clock ;

end ;

apply shift 15;

end;

procedure capture =

timeplate fast_clk ;

// cycle 1 starts at time 0

cycle =

force_pi ;

measure_po ;

pulse_capture_clock ;

end;

end;

procedure clock_sequential =

timeplate fast_clk ;

// cycle 1 starts at time 0

cycle =

force_pi ;

pulse_capture_clock ;

pulse_read_clock ;

pulse_write_clock ;

end;

end;

You might also like