Simulate Translate Test

Translating WGL/STIL Vector Files to the Credence Tester Format

The most common vector formats produced by today's leading ATPG tools are WGL and STIL. The WGL format syntax was originally developed by TSSI and has become somewhat of a defacto industry standard. Virtually all ATPG tools in use today can generate vectors in this format (although not all follow the syntax strictly). STIL (Standard Test Interface Language) is a recently IEEE-adopted standard format for test vectors that is growing in use. Many ATPG tools offer the user the option of generating vector files in either of these two formats. This Application Note focuses on the task of translating vector files in these formats to test programs for Credence testers via the SWAV vector file syntax.

Overview

Vtran makes the task of translating WGL and STIL files into Credence test programs relatively simple. Canned readers for both of these formats are included with the vtran product bundle. As long as the WGL and STIL files follow the syntax of their respective specifications, the readers can easily handle them. If the WGL file is being generated from the Synopsys TetraMAX ATPG tool, then it is important to make sure that the option settings are such that they produce a syntactically and semantically correct WGL file. A number of the user-controlled options will result in an invalid WGL file. The option settings currently recommended for TetraMAX are as follows:

  set wgl -bidi_map -x -x

  set wgl -bidi_map z- z-

  set wgl -bidi_map 0x 0x

  set wgl -bidi_map 1x 1x

  set wgl -bidi_map xx xx

  set wgl -bidi_map z0 z0

  set wgl -bidi_map z1 z1

  set wgl -bidi_map zx zx

  set wgl -bidi_map zz zz

  set wgl -chain_list shift

  set wgl -group_bidis

  set wgl -inversion_reference master

  set wgl -last_scan

  set wgl -nomacro

  set wgl -nopad

  set wgl -pre_measured

  set wgl -scan_map dash

These settings are applicable to TetraMAX version 2.02 and later. See also the online help notes within the TetraMAX environment.

For STIL vector files, the optional "ScanStructures" block must be present. The information contained in this block is needed by the reader to fully maintain the scan data during translation to the tester formats.

The vector translation process is divided into three separate tasks or blocks, which correspond to the three blocks in the vtran command file - the OVF_BLOCK, the PROC_BLOCK and the TVF_BLOCK. The commands and parameters in these blocks direct the details of the translation. In general, the OVF_BLOCK contains information necessary for vtran to read the input file or "Original Vector File" (i.e. the WGL or STIL file). The PROC_BLOC contains commands that tell vtran what data processing functions you want performed on the simulation data during translation. These typically would be instructions such as how you would like state characters mapped between the input and output formats, or perhaps some desired signal masking. For both of these cycle-based formats, there is not very much processing that needs to be done so the OVF_BLOCK and PROC_BLOCK are typically small. Finally, the TVF_BLOCK contains commands that specify the desired output format - in this case it is the SWAV format for the Credence testers. There may also be some final processing to be done or some optional user-supplied parameters that appear in the TVF_BLOCK. Now, let's take a look at some specifics for these translations.

The OVF_BLOCK

When using the vtran WGL or STIL canned reader, there is actually very little information (in the way of command instructions) needed by vtran to read the data and do any necessary mapping of state characters, in preparation for generating the SWAV test vector file. In fact, the only command required in the OVF_BLOCK would be a "TABULAR_FORMAT" command, which might look like:

OVF_BLOCK

   BEGIN

   TABULAR_FORMAT wgl -cycle, -scan;

   END

When reading STIL files, simply replace the "wgl" with "stil". If the name of the cycle-based file is being supplied from the command line, then this is all that is needed in the OVF_BLOCK. Otherwise we might add the ORIG_FILE command to this block:

OVF_BLOCK

   BEGIN

   TABULAR_FORMAT wgl -cycle, -scan;

   ORIG_FILE = "filename";

   END

Note the two flags that are being passed to the readers. The first flag (-cycle) is required and tells the reader to not flatten-out the timing in the input file. Since the SWAV test vector files are cycle-based formats (as are WGL and STIL), this flag instructs the reader to keep the signal timing information separate from the cycle vector data. The second flag (-scan) is optional. If there is no scan data in the input files, then this flag does nothing and could hence be left out. If the input WGL or STIL vector files do contain scan data, then this flag instructs the reader to maintain this scan data as separate data structures, to be passed to the SWAV-formatted vectors as scan data. In general, this is a desirable thing to do since the resulting vector files are usually significantly smaller using scan syntax than without it. If, however, the user wishes the scan data contained in the input WGL or STIL files to be expanded into normal sequential vectors in the SWAV test vector files, then this flag can be omitted. It is normally recommended that both of these flags be used.

The PROC_BLOCK

The PROC_BLOCK commands required for translating WGL or STIL files to Credence tester files will depend on which input file format is being read, and on how we would like the states mapped. State character translations are the only processing needed when doing translations between WGL or STIL files and the Credence tester. If we are mapping WGL state characters to those needed for SWAV, then a typical mapping might look like:

PROC_BLOCK

   BEGIN

   STATE_TRANS pure_inputs '-'->'0', 'X'->'0';

   STATE_TRANS bidir_inputs '-'->'Z';

   STATE_TRANS outputs '0'->'L', '1'->'H','-'->'X';

   END

These SWAV state character mappings accomplishes two things - first it maps WGL state characters to their equivalent default SWAV characters, and second it maps any undefined states on input pins to logic 0 (to avoid any floating inputs). The user may wish to modify these to achieve some other desired behavior. Mapping the state characters from a STIL file takes a bit more work:

PROC_BLOCK

  BEGIN

  STATE_TRANS pure_inputs 'U'->'1', 'D'->'0', '?'->'0';

  STATE_TRANS bidir_inputs 'U'->'1', 'D'->'0', '?'->'Z';

  STATE_TRANS outputs 'T'->'X', 'x'->'X','l'->'L',

      'h'->'H', 't'->'X', 'R'->'L', 'G'->'H',

      'Q'->'X', '?'->'X';

  END

Here we need to be careful about how we map the numerous state characters in a STIL file to those being used by the Credence testers. Again, this is only a suggested mapping, the user may want to modify this for different behavior.

The TVF_BLOCK

There is really only one command required in the TVF_BLOCK of the vtran command file for the generation of an SWAV vector file. This is the TESTER_FORMAT (or SIMULATOR) command, which specifies the target vector file format. The syntax for this command (and the optional [ ] parameters) is:

SIMULATOR SWAV

     [, VERSION = "version string"]

     [, DESTINATION = "tester"]     {the tester name }

     [, SCANIN_DEFAULT = "state"]   

     [, BIDIRECTS = "bidir1"]

     [, DESIGN = "name"]            {used in header }

     [, DATE = "date"]

     [, SOURCE = "name"]            {name of source }

     [, DESIGNER = "name"]          {name of designer }

     [, TIMESCALE = "ns"]

     [, SIGNAL_FILE = "filename"]

     [, TIMESET_FILE = "filename"]

     [, MAX_LINE_LENGTH = "nn"] {default, 80 characters }

     [, REPEAT_THRESHOLD = "nn"]

     [, TIME_STAMPS = "ON" | "OFF"]

     ;

The following parameters, if specified, will be placed at the top of the SWAV file as header information: VERSION, DESTINATION, DESIGN, DATE, SOURCE, DESIGNER and TIMESCALE. The BIDIRECTS parameter is used to select between single (bidir1) or dual (bidir - the default) column for bi-directional data in the vector file.

While translating WGL or STIL vectors to SWAV tester formats, vtran will automatically look for vectors that are repeated in the vector stream, and optionally use the Repeat function to minimize vector file size. The REPEAT_THRESHOLD parameter is used to control how many successive identical vectors will cause the Repeat function to be activated - the default is 9999999 (OFF). For example, if we set the REPEAT_THRESHOLD to "10", whenever 10 or more successive vectors are identical, then the Repeat function would be used to collapse them. When padding unequal length scan chains, the default pad character is '0', but this can be modified with the SCANIN_DEFAULT parameter. The MAX_LINE_LENGTH parameter can be used to specify the maximum number of characters per line in the SWAV vector file - the default is 80.

For debugging and analysis, it is often useful to see the timestamps for each vector in the test program that corresponds to its cycle time in the WGL or STIL input file. These timestamps are displayed as comments in the output file, but can be disabled using the TIME_STAMPS = "OFF" parameter.

Use the SIGNAL_FILE parameter and/or the TIMESET_FILE parameter to replace the signal lists and timing information automatically generated by vtran at the top of the SWAV vector file, with the contents of the files defined with these parameters.

The TVF_BLOCK

This first example illustrates the translation of a WGL file to an SWAV vector file. This WGL file happens to contain some scan vector data. Any input pins that are undefined in the WGL file are being mapped to a logic '0' in the test program.

ovf_block

     begin

     orig_file "s2.wgl";

     tabular_format wgl -cycle, -scan ;

     end

proc_block

     begin

     STATE_TRANS pure_inputs '-'->'0', 'X'->'0';

     STATE_TRANS bidir_inputs '-'->'Z';

     STATE_TRANS outputs '0'->'L', '1'->'H','-'->'X';

     end

tvf_block

     begin

     tester_format swav,

      SCANIN_DEFAULT = "1",

      REPEAT_THRESHOLD = "32",

      MAX_LINE_LENGTH = "132"

      ;

     target_file = "s2.swav";

     end;

end;

This next example illustrates the translation of a STIL vector file with scan data, to a Credence tester format. As indicated above, the state translations are a bit more complicated since there are more potential states in the STIL file. Each vector line is limited to 64 characters in length to make the file more easily readable and printable. In this example, we have also specified some optional masking to be done to the db_out bus. This bus will be masked (to an X state) during the cycle in which the control pin enb_db goes from a 1 to a 0, plus one more cycle, throughout the vector set.

ovf_block

  begin

  tabular_format stil -cycle -scan;

  orig_file = "s6.stil" ;

  end;

proc_block

  begin

  state_trans pure_inputs 'D'->'0', 'U'->'1', '?'->'0';

  state_trans bidir_inputs 'D'->'0', 'U'->'1', '?'->'X';

  state_trans outputs 'T'->'X', 'x'->'X',

    'l'->'L', 'h'->'H', 't'->'X', 'R'->'L',

    'G'->'H', 'Q'->'X', '?'->'X';

  MASK_PINS db_out[31:0] @

            control_transition enb_db 1->0, 0, 1;

  end;

tvf_block

  tester_format swav

    MAX_LINE_LENGTH = "64",

    TIME_STAMPS = "OFF"

    ;

  target_file = "s6.swav";

  end;

end;

Product Support