Writing a Test Procedure file

Test procedure files describe the scan circuitry’s operation for the ATPG tool. They contain cycle based procedures and timing definitions that tell the DFT tools how to operate the scan structures in the design.

Before running ATPG you must be ready with a test procedure file to proceed further.

To specify a test procedure file in setup mode, use the Add Scan Groups command. The tools can also read in procedure files by using the Read Procfile command or the Save Patterns command when not in Setup mode. When you load more than one test procedure file, the tool merges the timing and procedure data.

Following are the standard test procedures: – test_setup, load_unload, shift

The shift and load_unload procedures define how the design must be configured to allow shifting data through the scan chains. The procedures define the timeplate that will be used and the scan group that it will reference.

The following are some examples of timeplate definitions and shift and load_unload procedures:-

timeplate tp1 =
force_pi 0;
measure_po 1;
pulse clk1;
pulse clk2;
period <integer>;
end;

procedure shift =
scan_group grp1 ;
timeplate gen_tp1 ;
cycle =
force_sci ;
measure_sco ;
pulse clk ;
end;
end;
procedure load_unload =
scan_group grp1 ;
timeplate gen_tp1 ;
cycle =
force <control_signal1> <off_state> ;
force <control_signal2> <off state> ;
………………………………. ;
force scan_en 1 ;
end ;
apply shift <number of scan cells in scan chain>;
end;

TimePlate Definition

The timeplate definition describes a single tester cycle and specifies where in that cycle all event edges are placed.A procedure file must have at least one timeplate definition.

offstate <pin_name> <off_state>

This statement is required for any pin that is not defined as a clock pin by the Add Clocks command but will be pulsed within this timeplate.

force/measure_pi/po <time>

A literal and string pair that specifies the force/measure time for all primary inputs/outputs

bidi_force/measure_pi/po <time>
A literal and string pair that specifies the force/measure time for all bidirectional pins. This statement allows the bi-directional pins to be forced after applying the tri-state control signal, so the system avoids bus contention. This statement overrides “force_pi” and “measure_po”.

force/measure pin_name time
A literal and double string that specifies the force time for a specific named pin.This force/measure time overrides the force time specified in force/measure_pi/po for this specific pin.

pulse <pin_name> <time> <width>
A literal and triple string that specifies the pulse timing for a specific named pin. The time value specifies the leading edge of the pulse and the width value specifies the width of the pulse. This statement can only reference two kinds of pins:

  • Pins defined as clock pins by the Add Clocks command.
  • Pins not defined as clock pins by the Add Clocks command but which do provide a

pulse signal and have an offstate specified by the “offstate” statement. The sum of the time and width must be less than the period.

period time
A literal and string pair that defines the period of a tester cycle.

Procedure Definition

6 thoughts on “Writing a Test Procedure file

  1. Hello Sudhiprasad,

    I am working on DFT advisor and it will write out the testproc file similar to what you have described.
    But testproc file wont contain the capture procedure. Is it something which user has to define or some command will enable the tool writing?
    Please reply asap.

  2. I am working on Tessent tool and it is written the testproc file but in that there is no capture procedure and i need to madesome changes in that procedure file for transition fault simulation can you help me for this to define testproc file.
    Please reply asap.

  3. I am working on dftadvisor, is it necesary to include lock up latch in test proc file? if yes, how to include?
    Please reply ASAP.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s