100% found this document useful (2 votes)
464 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
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (2 votes)
464 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
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