Modus Ug Testvectors
Modus Ug Testvectors
Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Typographic and Syntax Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Modus Documentation Roadmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Getting Help for Modus and Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Extended Command and Message Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Contacting Customer Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Modus and Diagnostics Tutorials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Modus And Diagnostics Licenses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
What We Changed in This Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
21.11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
21.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1
Writing Test Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Specifying Tester Timings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Tester Timing Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Specifying Tester Timing using STIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Write Test Data Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Write Test Data Input Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Write Test Data Output Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Default Timings for Clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Adding Extra Timing Set for Initialization Sequences . . . . . . . . . . . . . . . . . . . . . . . . . 32
Processing Dynamic Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Changing Default Pin Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Limiting Dynamic Timeplates for Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Creating Cycle Map for Output Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2
Reporting Test Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Input Files for Reporting Test Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Output Files for Reporting Test Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3
Reading Test Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Prerequisite Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Read Vectors Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Reading Modus Pattern Data (TBDpatt) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Modus Pattern Data Output Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Reading Standard Test Interface Language (STIL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Support for STIL Standard 1450.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Support for STIL Standard 1450.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
STIL Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Identifying Scan Tests in STIL Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Identifying Mode Initialization Sequences in STIL Vectors . . . . . . . . . . . . . . . . . . . . . 73
Reading Extended Value Change Dump (EVCD) File . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
EVCD Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
EVCD Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4
Reporting Test Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Input Files for Reporting Sequence Definition Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Output Files for Reporting Sequence Definition Data . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Reporting a Structure-Neutral TBDbin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Input for Reporting Structure-Neutral TBDbin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Output for Reporting Structure-Neutral TBDbin ............................ 79
5
Reading Test Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Prerequisite Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Sequence Definition Data Output Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6
Test Data Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Create Vector Correspondence Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Create Vector Correspondence Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Test Data for Manufacturing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Test Vector Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Viewing Test Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Reporting Test Sequence Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Converting Patterns from Compression to Fullscan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Preface
Getting
Started Overview and
New User
Quickstart
Models
Testmodes
Guides
Test Structures
Faults
ATPG
Test Vectors
Hierarchical Test
Flow PMBIST
Diagnostics
Modus Flows
Expert
Reference Legacy GUI Stylus Common UI
Documents
Test Pattern Formats GUI Glossary
Commands Messages
❑ To view a book, double-click the desired product book collection and double-click the
desired book title in the lower pane to open the book.
2. For command and message help, use man <command_name> or man
<msgprefix>messages to display a man page with the requested information (for
example man build_model or man TSVmessages.
Click the Help or ? buttons on Modus forms to navigate to help for the form and its related
topics.
Refer to the following in the Modus: Reference: GUI for additional details:
■ “Help Pull-down” describes the Help selections for the Modus main window.
■ “View Schematic Help Pull-down” describes the Help selections for the Modus View
Schematic window.
Messages
■ Display extended help information for a message by entering one of the following
commands either directly on the command line or in the GUI Command Input field:
❑ msgHelp <message_prefix-error_number1> <message_prefix-
error_number1> ...
For example,
msgHelp TSV-001 TSV-315
Commands
■ Use help command to find all the available command lines. You can simply type help or
use help all to get the complete list. You can give help a portion of the command to find
all the commands that contain that string (for example, help fault will give you all the
commands that contain "fault" in the name; build_faultmodel, report_faults,
and prepare_fault_subset would all be included in the list along with other
commands that include "fault" in their name).
help <command_name>
21.11
There are no changes to this version of the document.
21.10
There are no significant changes to this version of document.
1
Writing Test Data
Overview
Modus writes the following vector formats to meet the manufacturing interface needs of IC
manufacturers:
■ Standard Test Interface Language (STIL): an ASCII format standardized by the IEEE.
■ Waveform Generation Language (WGL): an ASCII format from Fluence Technology, Inc.
■ Verilog: an ASCII format from Cadence Design Systems., Inc.
■ Test Description Language (TDL)
■ System Verilog for hardware emulation
Refer to Modus: Reference: Test Pattern Formats for detailed descriptions of these formats.
To write vectors using the graphical interface, refer to “Write Vectors” in the Modus:
Reference: GUI.
The following table lists the commonly used options for write_vectors for all languages:
Overview
This section explains the concepts and related command options to specify and control tester
timing.
A test clock is a clock responsible for shifting of data during Scan Mode operation (that is,
when Scan Enable (SE=1)). Its frequency is determined as follows:
■ For Static test, frequency of test clock is dependent on tester used, and generally is in
range of hundreds of Mega Hertz.
■ For at-speed or delay testing, frequency of the test clock is equal to the functional clock
frequency. As functional frequency is required for logic, to achieve this two consecutive
pulses of required functional frequency are used during capture mode.
■ In built-in-self-test (BIST) environment (such as LBIST and PMBIST), the test clock is
generated through PLL and controlled by BIST macro. Here, the test clock frequency can
be higher and can match functional frequency.
The frequency of test clock is controlled via -scanperiod and -testperiod options of
write_vectors command. Regardless of whether it is a scan or a test cycle, there are
three events happening in every cycle - stim, pulse, and measure.
Scan Cycle
In scan cycle, the DUT is in scan mode (SE=1) and logic is bypassed. Typically, the tool shifts
in and shifts out data in this mode using test clock. Hence, it can be said that scan cycle
typically determines the test clock frequency.
The order in scan shift operation is Set scan data/stim PI > measure scan data/strobe > pulse
scan clock.
The three events (stim, measure/strobe, pulse) occur in a single tester cycle. One tester cycle
cannot have repeated events, which means you cannot have two stim events or two pulse
events in one tester cycle. So, if you want to pulse one more time or one more stim, it can
happen only in a new tester cycle.
Thus, by default, the tool does not measure the output pin in the same tester cycle where the
scan shift clock is issued, but in next tester cycle (as shown in the figure below)
Test Cycle
In test cycle, the DUT is in capture mode (SE=0) and logic is captured.
Scan Cycle
You can control the event timings for a scan cycle through write_vectors options
scanpioffset, scanperiod, scanpulsewidth, and scanstrobeoffset.
If not specified, following are the default values for these options:
■ Scan period = 80ns
■ Scan pulse width = 10% of period i.e. 8ns
■ Scanpioffeset = 0ns
■ Scan strobe offset = scan pi offset + scan pulse
■ Start scan clock pulse = pulse width + larger of (strobe offset vs pi offset)
Test Cycle
You can control the event timings for a test cycle through write_vectors options
testpioffset, testperiod, testpulsewidth, and teststrobeoffset.
If not specified, following are the default values for the options:
■ Test period = 80ns
Note: Test offset for clock = scan offset for clock = 1ns (clock pulse for both scan and
test cycle will start at 1ns).
In TVE-005 message, only scan cycles are reported and there will be "0" test cycle (as
timeplate of scan is used).
■ Removepins
Either specify the pins to be removed from the output vector files or specify automatic
to automatically remove all pins that are not contacted or used in the vectors.
If the pin is required to generate vectors, TVE-702 warning is issued (once per pin),
which states that:
❑ The pin was removed from vectors using removepins option.
❑ The pin was specified in test data at odometer 'x.y.z.a.b.c'; it will be removed from
the event and may result in invalid simulation results.
■ Pinasdata
Specify a pin or a list of pins to be considered as data pin. This option is applicable on
clock pins to be treated as data pin. If the pin is already a data pin, TVE-315 warning
message is issued stating that the pin is already a data pin.
Following examples represent scenarios to explain how changing an option impacts other
timing options.
Example 1
Example 2
Changing scanperiod to 30ns will generate following information (testperiod value is default):
■ Scanstrobeoffset=3ns
■ Scanpulsewidth=3ns
■ Testpulse width=8ns
■ Test offset for clock=8ns (pulse starts at 8 ns)
■ Scan offset for clock=6ns (pulse starts at 6ns)
■ Testercycle (scan mode)=30ns
■ Testercycle (test mode)=80ns
Example 3
Changing scanperiod to 10ns will generate following information (testperiod value is default):
■ Scanstrobeoffset=1ns
■ Scanpulsewidth=1ns
■ Testpulse width=8ns
■ Test offset for clock =8ns (pulse starts at 8 ns)
■ Scan offset for clock=2ns (pulse starts at 2ns)
■ Testercycle (scan mode) =10ns
■ Testercycle (test mode) = 80ns
Note: TVE-005 informs you about the total cycles created while writing vectors and mentions
the number of scan cycles and test cycles.
Example 4
Changing scanperiod to 5ns will generate following information (testperiod value is default):
■ Scanstrobeoffset=.5ns
■ Scanpulsewidth=.5ns
■ Test pulse width=8ns
■ Test offset for clock =8ns (pulse starts at 8ns)
■ Scan offset for clock=1ns (pulse starts at 1ns)
Example 5
Changing scanperiod to 5ns and test period=10ns will generate following information:
■ Teststrobeoffset = 9ns
■ Testpulsewidth=1ns
■ Scanstrobeoffset=.5ns
■ Scanpulsewidth=.5ns
■ Test offset for clock =1ns (pulse starts at 1ns)
■ Scan offset for clock=1ns (pulse starts at 1ns)
Example 6
Changing scanperiod to 5ns and test period to 5ns will generate following information:
■ Teststrobeoffset=4.5ns
■ Testpulsewidth=.5ns
■ Scanstrobeoffset=.5ns
■ Scanpulsewidth=.5ns
■ Test offset for clock =.5ns (pulse starts at .5ns)
■ Scan offset for clock=1ns (pulse starts at 1ns)
Example 7
In the above examples, only scanperiod and testperiod values were changed and rest of the
timing-related switches were default.
In this example, scanperiod is set as 5ns and testperiod is set as 5ns. As seen in previous
examples, if you do not change other timing-related switches, the default values are as
follows:
■ Teststrobeoffset=4.5ns
■ Testpulsewidth=0.5ns
■ Scanstrobeoffset=0.5ns
■ Scanpulsewidth=0.5ns
■ Test offset for clock =0.5ns (pulse starts at 0.5ns)
You can alter the timing by using write_vectors options, as shown below:
Scanstrobeoffset=4ns
This means the clock pulse will come at 4.5ns, adding a clock pulse width of .5ns.
Modus will generate warning TVE-309 stating that it is recommended that a pulse width of
settling time be allowed between the end of clock pulse and scan period. Hence, this means
at maximum, you can strobe at a point which is = (scanperiod - 3*testpulsewidth).
By default, after strobe, there should be a gap of one pulse width (before origin of clock pulse)
+ clockpulse width + (pulsewidth for settling time), hence 3*testpulse width.
Example 8
As seen in Example 7, it is possible to reduce the scan cycle to 2ns (increasing test clock
frequency) and vectors can be generated on that. For that, set the following values:
■ Scanperiod=2ns
■ Scanpulsewieth=0.5ns
■ Scanstrobeoffset=0.5ns
■ testperiod=5ns
■ Rest of the test cycle timing related switches at their default value.
Waveforms {
"_default_In_Timing_" { 0 { '0ns' D; } }
"_default_Clk0_Timing_" { P { '0ns' D; '120ns' U; '200ns' D; } }
"_default_Out_Timing_" { H { '0ns' Z; '100ns' H; } }
"DFT_misr_clk" { 01ZP { '0ns' P/P/P/P; '2.000000ns' D/U/Z/U; '3.000000ns' D/U
Z/D; } }
"clk_in" { 01ZS { '0ns' P/P/P/P; '5.000000ns' D/U/Z/U; '10.000000ns' D/U/Z/D;
} }
} } }
When you specify convert_stil_to_modedef -stiltimings yes, the parser will read
the data from the above file and generate the following write_vectors timing options:
scanperiod=240
scantimeunits=ns
scanstrobetype=edge
scanpioffset=120.000000
scanpulsewidth=80.000000
scanstrobeoffset=100.000000
scanpioffsetlist=DFT_misr_clk=2.000000,clk_in=5.000000
scanpulsewidthlist=DFT_misr_clk=1.000000,clk_in=5.000000
Note: The above example will import scan-specific timings. Wherever scan is used in these
options, it is also possible to define test and init options of the same kind.
■ Period '240ns' generates scanperiod=240 and scantimeunits=ns
■ If the timing data contains pins with the string default, it will define the option types,
scanpioffset and scanpulsewidth
Entry:
"_default_Clk0_Timing_" { P { '0ns' D; '120ns' U; '200ns' D; } }
generates
scanpioffset=120.000000
scanpulsewidth=80.000000
■ Any non-default pin names will generate a set of list keywords with an entry for each
pin.
"DFT_misr_clk" { 01ZP { '0ns' P/P/P/P; '2.000000ns' D/U/Z/U; '3.000000ns' D/
U/Z/D; } }
"clk_in" { 01ZS { '0ns' P/P/P/P; '5.000000ns' D/U/Z/U; '10.000000ns' D/U/Z/D;
} }
will generate
scanpioffsetlist=DFT_misr_clk=2.000000,clk_in=5.000000
scanpulsewidthlist=DFT_misr_clk=1.000000,clk_in=5.000000
When writing TDL output, you need to specify the configfile option to define the TDL
design configuration information. Refer to subsequent TDL section for more information.
To limit the number of test vector output files, specify -combinesections yes, which
combines multiple test sections based on test types and creates a maximum of four files, one
each for storing static scan tests, static logic tests, dynamic scan tests, and dynamic logic
tests.
■ Default placement of scan clocks within the scan cycle is identical except that
scanperiod, scanpioffset, scanbidioffset and scanpulsewidth values are
used and only A, E, and B clocks are placed (no C or P clocks).
■ Any clock may be explicity placed by using testpioffsetlist or
scanpioffsetlist.
If Set_Scan_Data and Measure_Scan_Data events do not exist in all test modes, the
default timing is the following:
■ scanpioffset=scanbidioffset=scanstrobeoffset=0
Note that Stim signals are not pulses, therefore, they do not return to their original values
within the tester cycle.
■ initbidioffset
■ initperiod
■ initpioffset
■ initpioffsetlist
■ initpulsewidth
■ initstrobeoffset
■ initstrobetype
■ inittimeunits
write_vectors uses the modeinit timings only if they are different from the test sequence
timings. In case of different modeinit timings:
■ The modeinit timings replace the test timings for all the processed modeinit sequences.
■ The modeinit timings are used for all events encountered within the init Test_Sequence
except for Scan_Load events. write_vectors uses scan timings to process any
Scan_Load event it encounters.
■ Using the modeinit timings, write_vectors writes out accumulated values
immediately after processing the modeinit sequence, prior to processing the first test. In
other words, write_vectors does not compress patterns when transitioning between
modeinit timings and test timings.
■ write_vectors prints the modeinit timings in the header area for each output vector
file.
Define the order of pins in the file by including the pin names separated by one or more blank
spaces. Block and line comments are supported in the file.
Tip
If the pin order specified for an invocation of write_vectors differs from the
previously used order, you must recreate the test vectors for the previously exported
Test_Sections.
Specifying the options as mentioned above results in the following dynamic timeplate
configuration for write_vectors:
■ The dynamic clock events use the timeplates in the order of Release and Capture. For
example, the first dynamic clock event goes in the Release timeplate, the second
dynamic clock event goes in the Capture timeplate, the third event in the Release
timeplate, and so on.
■ The dynamic Stim_PI events are included in the timeplate associated with the next
dynamic clock event.
■ All Measure PO events are in the Capture timeplate.
The following topics show the order of the sequences and where the wait cycles would be
added if the associated waitcycle* option was specified.
■ Order of Scan Sequences with Wait Cycle Locations
■ Order of Sequences in Test Vector for Basic Static Tests
■ Order of Sequences in Test Vector for Basic Delay Tests
See Modus: Reference: Test Pattern Formats for more information about sequences.
Note:
1
■ Optional part of sequence
■ 2 Optional sequence depending on your methodology
See Modus: Reference: Test Pattern Formats for more information about sequences.
Note:
■ 1 Optional part of sequence
2
■ Optional sequence depending on your methodology
See Modus: Reference: Test Pattern Formats for more information about sequences.
Note:
■ 1 Optional part of sequence
2
■ Optional sequence depending on your methodology
In this release, STIL or WGL does not clearly support asynchronous oscillators as they do not
contain Start_OSC event for those oscillators. write_vectors generates the error message
TVE-389 when that occurs.
Comments in STIL/WGL data files, as shown below, indicates that you must have manually
started asynchronous oscillator by this point.
Comment in STIL/WGL data file.
// Start asynchronous oscillator on pin CLK2
STIL Restrictions
The following restrictions apply:
■ Test data created for an assumed scan chain test mode cannot be written.
■ Overlapping is not allowed when using diagnostic measure events.
The testsectiontype field contains the test section type value from the TBDbin and is
used to identify the type of test data contained within the STIL file, for example, logic.
The ex#, ts#, and optional tl# fields differentiate multiple files generated from a single
TBDbin. The TBDbin hierarchical element id is substituted for #, i.e., ex# receives the
uncommitted test number within the TBDbin, ts# receives the test section number within the
uncommitted test, and tl# receives the tester loop number within the test section.
Committed and uncommitted TBDbins contain test coverage and tester cycle count
information for each test sequence.
The optional signals file contains declarations common to the STIL vector files, for example,
I/O signal names, in order to eliminate redundant definition of these elements.
The preceding files represent default names if option outputfilename (or Write Vectors
form field Set the output file names) is not specified. If a value for outputfilename is
specified, multiple output files are differentiated by the presence of a numeric suffix appended
to the file name. For example, multiple committed vectors files are named
outputfilename_value.1.stil, outputfilename_value.2.stil, and so on.
The signals file is named outputfilename_value.signal.stil.
WGL Restrictions
The following restrictions apply:
■ Test data created for an assumed scan chain test mode cannot be written.
■ Overlapping is not allowed when using diagnostic measure events.
The testsectiontype field contains the test section type value from the TBDbin and is
used to identify the type of test data contained within the WGL file, for example, logic.
The ex#, ts#, and optional tl# fields differentiate multiple files generated from a single
TBDbin. The TBDbin hierarchical element id is substituted for #, i.e., ex# receives the
uncommitted test number within the TBDbin, ts# receives the test section number within the
uncommitted test, and tl# receives the tester loop number within the test section.
Committed and uncommitted TBDbins contain test coverage and tester cycle count
information for each test sequence.
The optional signals file contains declarations common to the WGL vector files, for example,
I/O signal names, in order to eliminate redundant definition of these elements.
The preceding files represent default names if option outputfilename (or Write Vectors
form field Set the output file names) is not specified. If a value for outputfilename is
specified, multiple output files are differentiated by the presence of a numeric suffix appended
to the file name. For example, multiple committed vectors files are named
outputfilename_value.1.wgl, outputfilename_value.2.wgl, and so on.
The signals file is named outputfilename_value.signal.wgl.
To write TDL vectors using commands, specify -language tdl for write_vectors.
TDL Restrictions
The following restrictions apply:
■ Test data created for an assumed scan chain test mode cannot be written.
■ Overlapping is not allowed when using diagnostic measure events.
The optional signals file contains declarations common to the TDL vector files, for
example, I/O signal names, in order to eliminate redundant definition of these elements.
pattern_set_name is the pattern set name specified in the input config file and # is
the test section number within the test.
The preceding files represent default names if option outputfilename (or Write Vectors
form field Set the output file names) is not specified. If a value for outputfilename is
specified, multiple output files are differentiated by the presence of a numeric suffix appended
to the file name. For example, multiple committed vectors files are named
outputfilename_value.1.tdl, outputfilename_value.2.tdl, and so on.
The signals file is named outputfilename_value.signal.tdl.
Writing Verilog
Write Vectors accepts either a committed vectors or an uncommitted vectors file for a
specified test mode and translates its contents into files that represent the TBDbin test data
in Verilog format.
■ To write Verilog vectors via the GUI, select Verilog as the Language option on the Write
Vectors form
■ To write Verilog vectors using commands, specify -language verilog for
write_vectors.
Miscompares in parallel mode result are reported on internal nets at the beginning of the scan
cycle and are not flagged on a specific scan out pin.
ATPG can be run with the -simshifts option to improve coverage in specific situations.
Refer to Simulating Values of Non-scan Flops in Modus: User Guide: ATPG for more
information.
When ATPG vectors are generated with -simshifts, then parallel simulation must account
for this using the -explicitshifts option for write_vectors.
You can override the -explicitshifts value to add more explicit shifts. If you override the
-explictshifts value and specify a value too low then the tool issues warning message TVE-
319.
Simulation miscompares of the serial or parallel patterns with Cadence OPCG enabled may
occur when the duration of the scan phase (loading/unloading of the scan chains) does not
provide sufficient time for the OPCG logic to reset. OPCG requires a minimum amount of time
to be spent in the scan phase to allow the OPCG logic to reset. The OPCG reset time
depends on frequency and ensures that sufficient oscillator clock cycles have occurred for a
number of operations within the OPCG logic to have completed. So, if the duration of the scan
phase is shorter than the OPCG reset time (due to a slow PLL or due to short scan chains),
then the scan phase needs to be extended by a number of idle wait cycles to reach the
minimum number of required OPCG reset cycles.
The required OPCG reset time will be automatically computed and applied by
write_vectors. If needed, it can be overridden by using write_vectors option
waitcyclebeforescanexit.
Computation of the OPCG reset time is not needed for the following scenarios:
■ If your slowest PLL output clock is 3x or faster than the scan clock, there will likely be no
issues with parallel pattern simulation.
■ Serial simulation is in general less likely to exhibit such issues, unless the maximum scan
chain length in the design is extremely short.
Verilog Restrictions
The following restrictions apply:
■ Test data created for an assumed scan chain test mode cannot be written.
■ Overlapping is not allowed when using diagnostic measure events.
The testsectiontype field contains the test section type value from the TBDbin and is
used to identify the type of test data contained within the Verilog file, for example, logic.
The ex#, ts#, and optional tl# fields differentiate multiple files generated from a single
TBDbin. The TBDbin hierarchical element id is substituted for #, i.e., ex# receives the
uncommitted test number within the TBDbin, ts# receives the test section number within the
uncommitted test, and tl# receives the tester loop number within the test section.
Committed and uncommitted TBDbins contain test coverage and tester cycle count
information for each test sequence.
The optional signals file contains declarations common to the Verilog vector files, for example,
I/O signal names, in order to eliminate redundant definition of these elements.
The preceding files represent default names if option outputfilename (or Write Vectors
form field Set the output file names) is not specified. If a value for outputfilename is
specified, multiple output files are differentiated by the presence of a numeric suffix appended
to the file name. For example, multiple committed vectors files are named
outputfilename_value.1.verilog, outputfilename_value.2.verilog,
and so on. The mainsim file is named outputfilename_value.mainsim.v.
Xcelium Considerations
When using Write Vectors for subsequent simulation by Xcelium, the following options may
be specified for Xcelium:
xmxlmode \
+DEFINE+simvision \
+simvision \
+vcd \
+HEARTBEAT \
+FAILSET \
+START_RANGE=1.1.1.1.1.1. \
+END_RANGE=1.1.14.1.8 \
VER.${TESTMODE}*mainsim.v \
+TESTFILE1=VER.testmode.data.testsection.ex.ts1 \
+TESTFILE2=VER.testmode.data.testsection.ex.ts2
The TB_VERILOG_SCAN_PIN attribute may be placed on any hierarchical pin on any cell.
However the pin must be on the scan path (or intended to be on the scan path if used within
a cell definition).
When encountered on input pins, the parent net associated with the attributed pin is selected
as a stimuli net. When encountered on output pins, the associated parent net is selected as
a measure net. This attribute may be selectively used, i.e., default net selection takes place
if no attribute is encountered for a specific bit position.
,.C ( \$net__H05 )
,.D ( \$net__H01 ) //! TB_VERILOG_SCAN_PIN="YES"
,.R ( \$net_NET$1 )
,.S ( \$net_NET$2 )
);
Debugging Miscompares
Miscompares can be caused by various factors, some of which are given below:
■ The model is logically incorrect
■ The model does not account for the delay mode requirements of the simulator that
generated the original data (or the one that is being used for the re-simulation). For
example, if the cell description has some extra blocks to model some logical
configuration, the unit delay simulator may find that signals do not get through the logic
on time since it assigns a unit of delay to each primitive in the path. This might work better
with a zero delay simulation.
■ The input patterns are incorrect (either due to an error in the manually generated
patterns; or due to a problem with the original simulation).
The following are some recommended considerations while analyzing the patterns:
1. The first thing to consider is where the “expected responses” come from.
❑ If you are writing manual patterns, the expected responses are included in these
patterns as an Expect_Event (see “TBDpatt and TBDseqPatt Format” in the Modus:
Reference: Test Pattern Formats).
❑ If you are analyzing a TBD from a test generation process, the simulation portion of
that process creates measures to indicate that the tester should measure a
particular set of values on primary outputs and/or latches. When you resimulate the
test data, the simulator compares its results with the previous results specified by
measure events (Measure_PO and Scan_Unload).
2. The next thing to consider is the analysis technique you plan to use. This choice will
influence the type of simulation to use for the re-simulation. Using the Test Simulation
application, you may select a variety of simulation techniques. In addition, there is an
interactive simulation technique specifically aimed at test pattern analysis (and
diagnostics).
c. View the logic on the Modus View Schematic window and manually analyze the
problem.
To manually create a watch list, use the following syntax and semantics:
■ Each line in the file is a statement, which can be of one of the following types:
Model Object Statement
Each Model Object Statement identifies one Modus Model Object by type and name. It
also allows you to specify an alias name for the Object. The syntax of the statement is
the Model Object name optionally followed by the alias name. The Model Object name
in the full name or short name format. The simple name should have a type specified
before the name. The types are NET, PIN, or BLOCK. If a type is not specified, then net
is assumed first, then pin, and then block. The alias name can be any combination of
alpha-numeric or the following special characters:
!#$%&()+,-.:<=>?@[]^_`|~.
Note: If an entry is a BLOCK, Modus will create a watch list for all ports/pins on that
block. Refer to “expandnets” on page 52 for information on how to identify signals within
a BLOCK.
Facility Start Statement
The Facility Start statement marks the beginning of a group of Model Objects that will be
associated together. The statement syntax is the word FACILITY followed by white space
followed by a facility name and ending with an open brace '}'. The facility name must start
with an alphabetic character. It may contain alpha-numeric characters or underscores. It
cannot end in an underscore nor have more than one underscore repeated. These are
the same rules for identifiers in VHDL. The name will always be folded to upper case and
is therefore case insensitive. When the same facility name appears more than once in
the file, only one facility by that name is created containing all the Model Objects
associated with the facility. It is an error to nest facilities. Here is an example Facility Start
Statement:
FACILITY TARGET {
directs Modus to record net switching activities for all nets within block xyz and block
abc.
Comments
The characters ’//’ and ’/*’ begin a comment. Comments are allowed at the end of a
statement or on a line by itself. Once a comment is started, it continues to the end of the
line.
■ An example of a watch list:
facility unit_a_buss_byte_0 {
"unit_a.buss_out[7]"
"unit_a.buss_out[6]"
"unit_a.buss_out[5]"
"unit_a.buss_out[4]"
"unit_a.buss_out[3]"
"unit_a.buss_out[2]"
"unit_a.buss_out[1]"
"unit_a.buss_out[0]"
}
facility expandnets {
block unit_b
block unit_c
}
"sys_clock"
"a_clock"
"b_clock"
"init_a.sys_clock"
There can be only one statement per line. Each statement must be on a single line.
SimVision Overview
You can use SimVision to analyze simulation results. Its capabilities include:
■ Displaying digital waveforms
■ Displaying values on nets during any time period in a simulation
■ Arranging signals (move, copy, delete, repeat, show, hide) in the window for easy
viewing, enabling better interpretation of results
■ Multiple waveform graphs per window
■ Multiple windows that allow you to organize data and to view multiple test data segments
■ Annotating waves with text
■ Performing logical and arithmetic operations on waveforms
A .dsn or .trn file can be input to SimVision for waveform analysis. The files can be created
by either running test generation or simulation applications or from View Vectors by selecting
a test section with scope data then clicking the custom mouse button to invoke Create
Waveforms for Pin Timing. Refer to the description for the View Vectors “View Pull-down”
in the Modus: Reference: GUI.
Prerequisite Tasks
■ Select an experiment.
■ Create a Vectors file by running a test generation or simulation application.
Input Files
An existing Modus experiment, sequence definition files, and failure data (if existing).
Output Files
If Create Minimum Vectors is selected on the Test View window, a new Vectors file is
created as output.
The preceding report is produced for STIL, Verilog, and WGL vectors.
Figure 1-5 on page 56 shows a graphical representation of the scan cycles for the reported
vectors:
Figure 1-5 Scan Cycle Overlap in Test Sequence Coverage Summary Report
■ Overlapped Cycle Count - shows the cycles that are overlapping with the next
reported vector. For example, for vector 1.1.1.2.1, out of 17 cycles, 7 cycles overlap with
the next vector 1.1.1.2.2.
While calculating the Sequence Cycle Count for a vector, the cycles overlapping with
the preceding vector are ignored.
For example, as shown in the figure, out of the 17 cycles taken by vector 1.1.1.2.2, 7
cycles overlap with the preceding vector 1.1.1.2.1. Therefore, though vector 1.1.1.2.2
takes total of 17 cycles, the 7 cycles that overlap with the preceding vector 1.1.1.2.1 are
ignored and not reported in the Sequence Cycle Count column for the vector.
■ Total Cycle Count - shows the cumulative sequence cycle count of the current and
all preceding vectors. For example, the total cycle count reported for vector 1.1.1.2.2 is
the combination of the cycle count for this vector (10) and all the vectors reported before
it, i.e, 1.1.1.2.1 (17) and 1.1.1.1.1 (1). Therefore, the reported cycle count for the vector
is 28.
Parallel Verilog Simulation verifies the functional logic paths exercised in LBIST in lesser time
and ensure that there are no design issues.
In Parallel Verilog Simulation flow, patterns are converted from LBIST to XOR format. In this
process, parallel loading is done and each test is observed. The OPCG clock is directly forced
on the outputs, to pulse the capture clocks. It simulates the load and unload values for all the
tests. This flow verifies the functional logic paths (for example: SDC) and does basic scan. It
does not verify the logic not participating in LBIST parallel simulation (for example: LBIST
controller, OPCG, PRPG and Mask).
where:
■ -WORKDIR <string> specifies the top level directory that contains data for the design.
■ -TESTMODE <string> specifies the name of the test mode to be processed.
■ -EXPERIMENT <string> identifies the name associated with the output of test
generation or simulation process
■ -INEXPERIMENT <string> identifies the data to be processed. The name specified is
the name used for the -EXPERIMENT option in the program that created the data.
■ -parentmode yes|no specifies whether or not to convert lbist patterns to stored
patterns in parent mode.
write_vectors command is used to write out the test vectors in the specified language.
Comparing Output
In Figure 1-7 on page 59, the left column shows the report_vectors command output
after create_lbist_tests command and the right column shows the report_vectors
command output after create_vectors_to_stored_pattern command.
Limitation
■ You cannot use the parallel simulation with SDF annotated simulation, because the
OPCG domain clocks are pulsed by the testbench and not the OPCG logic.
■ It is recommend to run enough patterns in a Serial simulation to verify the functional
logic.
To write System Verilog vectors using commands, specify -language verilog_hw for
write_vectors.
The option -language verilog_hw creates a System Verilog test bench and test data files
for Cadence Hardware emulation based simulation.
Supported Options
Common write_vectors options supported for -language verilog_hw are:
■ -testmode
■ -inexperiment
■ -waitcycles*
■ -exportdir
■ -limitcomments
The Test Bench filename is *.mainsim_hw.sv, where * is the same naming convention as
the standard Verilog test bench:
VER.<testmode_name>.<optional_experiment_name>.mainsim_hw.sv
These are groups of files for each test section for a testmode/experiment. Multiple verilog_hw
files are generated per pattern set.
*.mainsim_hw.sv performs a $readmem on all files in the set and loads all pattern data
into memory
Sample Output
Simulation Steps
1. Setup and compile. Sample specification is given below.
export XCELIUM_INCISIVE_COMPATIBILITY_MODE = 1
export XE_HOST = sw-scd1
export XE_BOARDS = 5.0-5.1
XEHOME = /lan/cva_rel/vxe165/16.5.09
TOP_MODULE = CHIP_COMPRESSION_DECOMP
ixcom:
xrun -c -hw -ua -64 \
+dut+${TOP_MODULE} +bc+${TOP_MODULE} \
+gfifoDisp+${TOP_MODULE} +enableDispInLoop+${TOP_MODULE} \
\
-ixcomargs "-vaelabargs -parallel -vaelabargs 10" \
+xmtimescale+1ns/1ps +xmoverride_timescale \
-log ixcom.log \
\
-v./library.v
./chip_top.test_netlist.v \
\
-v ${XEHOME}/share/vxe/etc/ixcom/IXCclkgen.sv \
./pll_clocks_ixcom.sv \
./testresults/verilog_hw/VER.COMPRESSION_DECOMP.mainsim_hw.sv
❑ Lines starting with export... represent host machine and number of boards to
target the compile for.
❑ 2 boards in same cluster are specified
❑ Simulation can use any machine with same configuration
❑ Simulation will run any available boards meeting this configuration
❑ -hw and -ua and required options for Palladium compile and simulation
❑ Line -ixcomargs "-vaelabargs -parallel -vaelabargs 10"
❑ Includes optional arguments for distributed compile
❑ Remove this line to compile using 1-processor
❑ Current settings use 10-processors for compile
❑ Line -v ${XEHOME}/share/vxe/etc/ixcom/IXCclkgen.sv
❑ IXCclkgen.sv is required to identify Palladium clock functions that are used. This
file is loaded from VXE installation directory
❑ Line ./pll_clocks_ixcom.sv \
❑ pll_clocks_ixcom.sv is the Palladium model for PLL’s (generated based on
user input). Refer to “Using PLL’s with Palladium” on page 63 for more information.
❑ Line ./testresults/verilog_hw/
VER.COMPRESSION_DECOMP.mainsim_hw.sv
❍ *.mainsim_hw.sv is the Palladium Test Bench from write_vectors
❍ TOP_MODULE must be set to this Test Bench Module name
write_vectors handles free-running PI Clocks (Modus OSC pins). PLL simulation models
cannot be compiled to Palladium and must be specified and used to generate a Palladium
model for the PLL clock outputs.
where n_608/n_609 represents the nets connected to each PLL output clock, and 1000
MHz/500 MHz is the PLL output clock frequency.
2. Generate Palladium PLL models for simulation using the following command:
For example, the following command generates PLL model using the file
pll_clocks_ud.qel defined in step 1 and saves the generated model in
pll_clocks_ixcom.sv:
ixclkgen –input pll_clocks_ud.qel –output pll_clocks_ixcom.sv –module
clock_ixcom
3. Compile the PLL model for simulation using the xrun command. For example
xrun … \
./pll_clocks_ixcom.sv \
Restrictions
This section discusses limitations related to hardware emulation-based simulation and
current scope of support in Modus.
2
Reporting Test Data
You can report the binary TBDbin test vectors generated by Modus into an ASCII (TBDpatt)
file. This is useful when you need to understand how the generated test vectors exercise your
design.
To verify cell models created to run with Modus, you can simulate vectors created by our
system with other transistor level simulators. To do this, it is necessary to expand the scan
chain load and unload data into individual PI stims, clock pulses, and PO measures. Select
the Expand scan operations option on the Report Vectors Advanced form or specify the
option pair expandscan=yes on the command line to expand any scan operations found in
the test data.
To report Modus vectors using the graphical interface, refer to “Report Vectors” in the Modus:
Reference: GUI.
where:
■ workdir - name of the working directory
■ testmode - name of the testmode of experiment to export pattern
■ experiment- name of the experiment from which to export data
3
Reading Test Data
Test vectors from other formats can be read into Modus. Test vectors are read and stored into
the Modus format called TBDbin. You can then use these test vectors in TBDbin format as
input to any Modus command that takes existing experiments.
To read Modus Pattern Data using the graphical interface, refer to “Read Vectors” in the
Modus: Reference: GUI.
To read Modus Pattern Data using command lines, use read_vectors -H or man
read_vectors for information on command syntax and supported options.
The most commonly used options for the read_vectors command are:
■ -language stil|tbdpatt|evcd - Type of language in which the patterns are being
read
Prerequisite Tasks
Complete the following tasks before running Test Simulation:
1. Import a design into the Modus model format. Refer to “Performing Build Model” in the
Modus: Guide 1: Models.
2. Create a Test Mode. Refer to “Performing Build Test Mode” in the Modus: Guide 2:
Testmodes.
3. Have the test patterns in the supported format.
TBDpatt is the recommended format for entering manually generated test vectors into
Modus because the following reasons:
■ TBDpatt format translates directly into TBDbin format
The probability of information loss is less when translating between TBDpatt and
TBDbin formats.
■ TBDpatt format can be easily created
You can create a TBDpatt file for input to Modus by first generating test vectors (even
just random ones) and then converting the resulting TBDbin file into a TBDpatt file. You
can then edit the TBDpatt file to reflect the desired primary input and latch stimulus
values.
To read Modus Pattern Data using the graphical interface, refer to “Read Vectors” in the
Modus: Reference: GUI.
To read Modus Pattern Data using command lines, use read_vectors -H or man
read_vectors for information on command syntax and supported options..
Initial support for STIL that conforms to the IEEE 1450.1 standard is available. Refer to
“Support for STIL Standard 1450.1.”
Modus reads, parses, and performs semantic checks on the constructs found in the input
STIL file in addition to validating structural references and test vector data.
For information on Modus STIL pattern data, refer to the following sections of the Modus:
Reference: Test Pattern Formats.
■ “STIL Pattern Data Format”
■ Appendix E, “STIL Pattern Data Examples”
STIL Restrictions
It is strongly recommended that the STIL data that you read should be in a Modus-generated
file, produced by Writing Standard Test Interface Language (STIL) on page 40. The results
for STIL data generated outside of Modus are not guaranteed.
STIL scan protocol must match the scan procedures automatically generated by Modus.
Custom Scan Protocol procedures are not supported. If you do use custom scan protocol, we
recommend that the read tests be simulated prior to sending data to the tester.
Modus does not support reading STIL data for designs with scan pipelines in compression
testmodes.
This comparison helps identify the mode initialization sequence even when the end of the
sequence is merged with the first real test pattern in the STIL data.
Note: The read_vectors command compares only the events directly controlled by the
tester. Internal events in the mode initialization sequence, such as the stimulation of pseudo-
primary inputs or the pulsing of pseudo-primary input, clocks will be ignored in this
comparision.
If the first few STIL vectors match the mode initialization sequence, then read_vectors
replaces the matching vectors with the mode initialization sequence identified for this test
mode.
This replacement enables the resulting TBDbin (binary file of TBDPatt) to correctly identify
any internal events associated with the mode initialization. This enables read_vectors to
support the automatic creation of internal events for the mode initialization sequence, but not
for normal test patterns.
If the first few patterns in the STIL data do not match the mode initialization sequence
identified in the test mode, then the read_vectors command explicitly adds a mode
initialization sequence from the TBDseq file to the output patterns before converting any of
the STIL vectors. This makes sure that the mode initialization sequence occurs before the
patterns in the STIL data in the resulting test pattern file.
As the mode initialization sequence is taken from the TBDseq file, this comparision will also
correctly identify it as a mode initialization sequence in the resulting TBDbin file. When you
resimulate the patterns, the simulator will not insert another copy of the mode initialization
sequence.
Note: The read_vectors command does not identify a mode initialization sequence that
is functionally equivalent to the mode initialization sequence of the test mode, but does not
exactly match the test mode initialization sequence.
An EVCD file is an ASCII file that contains information about value changes on selected
variables in the design. The file contains header information, variable definitions, and the
value changes for all specified variables. Modus accepts EVCD files through the Read
Vectors application.
To produce EVCD output from the Cadence Xcelium Simulator, add the following code in the
Verilog testbench.
initial $dumpports (< instance > ,"My_Functional_Patterns.EVCD",,2) ;
where:
<instance> = The instance name of the logic block whose ports are to be dumped. This is
usually the chip under test.
,,2 = Formatting place holders for $dumpports. 2 produces the specific variation of the
EVCD output that Modus accepts. This format conforms to the IEEE standard.
For more information on creation and content of the files, refer to the following sections in
Cadence® Xcelium-Verilog® Simulator Help:
■ Generating a Value Change Dump (VCD) File
■ Generating an Extended Value Change Dump (EVCD) File for a Mixed-Language Design
■ Generating an Extended Value Change Dump (EVCD) File
Tip
It is recommended to follow some rules while reading EVCD:
❑ Ensure that the input data only changes when the clock(s) are OFF.
❑ Do not have the data and clock signals changing at the same time.
❑ Do not have overlapping clocks (unless they are correlated).
To read the generated EVCD file into Modus using the graphical interface, refer to “Read
Vectors” in the Modus: Reference: GUI. Select EVCD for Input Format.
To read the generated EVCD file into Modus using command lines, specify read_vectors
-language evcd.
Tip
The TBDbin consists of a single Experiment, Test_Section, and Tester_Loop. The
type of Test_Section created in the TBDbin depends on the specified value for
testtype or Test section type if using the GUI. The default Test_Section type is
logic. Refer to Test Data for Manufacturing on page 85 for more information.
The termination option sets the tester termination value to be assumed for the
Test_Section. The default termination setting is none.
The inputthreshold option defines the input threshold. Signals less than or equal to
the specified threshold are interpreted as Z.
The outputthreshold option defines the output threshold. Signals less than or equal
to the specified threshold are interpreted as X.
The measurecyclesboundary option is used to insert a Measure_PO event on a
cycle boundary when no measure exists in the EVCD input.
EVCD Restrictions
When a user requests that Modus import EVCD patterns, it usually is with the expectation
that functional test patterns will be fault simulated. However, the following limitations are to be
considered:
■ The functional patterns are imported as STATIC patterns. You cannot fault simulate and
have Modus detect DELAY or PATH Delay faults. Fault simulation will only detect STATIC
faults.
■ Static fault detection may be disappointing. Note that a fault is detected only when it
reaches a measure point. For functional patterns only the chip output pins are measure
point. Faults that propagate to internal Register, Parity and Error checking logic are not
declared detected. Those faults must further propagate to an output pin.
■ The concept of an internal strobe point similar to $fs_strobe for Cadence Verifault is
not available.
■ The write_vectors output of these captured patterns, by default, has static fault
timing. The tester cycle is 80ns and the Stim, Pulse and Measure events are widely
spaced. Users who want to run these patterns at functional clock speeds need to adjust
the timings via write_vectors parameters and verify with SDF annotate timing in
Xcelium.
■ Modus supports only the single variable type of port. A message is issued if a port of any
other variable type is detected.
EVCD Output
EVCD values that refer to Primary Inputs are translated to Stim_PI or Pulse events.
Primary Output values are translated to Measure_PO events. Refer to “Event” in the Modus:
Reference: Test Pattern Formats for descriptions of these events.
4
Reporting Test Sequences
To report sequence definition data using the graphical interface, refer to “Report Sequences”
in the Modus: Reference: GUI.
where:
■ workdir = name of the working directory
■ testmode= name of the testmode to report the sequences on
The output file name can be changed by specifying the -outputfile <filename> option
for the report_vectors command or by entering the file name in the GUI Output file
name entry field.
where:
■ workdir - name of the working directory
■ inputfile - file name of exported data
5
Reading Test Sequences
Besides reading tests in the form for direct application, Modus also supports reading test
sequence definitions. Tests are patterns that you want to capture and apply as part of
manufacturing pattern set. Sequence defintions are used to define specific custom
operations within a pattern set. These custom operations are then used by Modus ATPG. For
example, you may have a sequence that uniquely initializes the circuit to a starting state. Or
you may have a set of sequences that define a set of complicated transition from functional
mode to scan shift mode and from scan shift to back to functional mode. Modus allows a set
of robust sequences to be incorporated into the ATPG pattern set.
After reading the test vector, you can use the Test Simulation application to simulate the
vectors. You can choose to perform good machine or fault machine simulation and forward or
reverse vector simulation.
To read Sequence Definition Data using the graphical interface, refer to “Read Sequence
Definition” in the Modus: Reference: GUI.
where:
■ workdir = name of the working directory
■ testmode= name of the testmode for dynamic ATPG
■ importfile= location of sequences to import
Prerequisite Tasks
Complete the following tasks before running Test Simulation:
1. Import a design into the Modus model format. Refer to “Performing Build Model” in the
Modus: Guide 1: Models.
2. Create a Test Mode. Refer to “Performing Build Test Mode” in Modus: Guide 2:
Testmodes.
6
Test Data Utilities
There is a single vector correspondence file per test mode. The intent is that there be only
one set of vector correspondence data ever used for a given mode. Making changes to the
vector correspondence file should be undertaken only with utmost caution. If you want to
import a TBDpatt file that was produced by Modus, the vector correspondence must not be
altered during the interim.
You can change the ordering within vectors by changing the positions of pins or latches in the
vector correspondence file. This may be useful if you are going to use TBDpatt as an
intermediate interface to some other format which requires that the vectors be defined in a
specific way. In such a case, you might be able to modify TBDvect in such a way as to avoid
re-mapping the vectors in another conversion program.
A scan design in Modus, even if composed of flip-flops is always modeled using level-
sensitive latches. Each latch that is controlled by the last clock pulse in the scan operation
must necessarily end up in the same state as the latch that precedes it in the register. In rare
circumstances, the preceding latch may also be clocked by this same clock, and then both
latches have the same state as the next preceding latch (and so on). Some latches may be
connected in parallel, being controlled by the same scan clock and preceded by a common
latch. These latches also must end up at a common state. Modus identifies all the latches that
have common values as the result of the scan operation, and each such set of latches is said
to be “correlated”. TBDpatt does not explicitly specify the value for every latch, but only for
one latch of each group of correlated latches. This latch in each group is called a
“representative stim latch” or “representative measure latch”, depending upon whether the
context is a load operation or an unload operation. The Stim Latch Correspondence List is a
list of all the latches that can be independently loaded by a scan or load operation. This
consists mainly of the representative stim latches, but contains also “skewed stim latches”
which require special treatment for the Skewed_Scan_Load event described in the Modus:
Reference: Test Pattern Formats. The Measure Latch Correspondence List is a list of the
representative measure latches.
In the case of PRPG and MISR latches, used for built-in self test, similar correlations may
exist; the representative latches for these are called “representative cell latches”. The PRPG
and MISR correspondence lists include the representative cell latches for the PRPGs and
MISRs respectively.
See TBDpatt and TBDseqPatt Format in the Modus: Reference: Test Pattern Formats for
information on vector correspondence language definition.
To perform Create Vector Correspondence using the graphical interface, refer to “Write Vector
Correspondence” in the Modus: Reference: GUI.
where:
■ workdir = name of the working directory
Note: See “Writing Test Data” on page 15 for information about creating (exporting) these
test data forms.
Static
Static tests are structured to detect static (DC) defects. The detection of DC defects does not
require transitions, so the design is expected to settle completely before the next event is
applied.
Dynamic
Dynamic tests are structured to create a rapid sequence of events. These events are found
inside the dynamic pattern and are identified as release events (launch the transition),
propagate events (propagate the transition to the capture latch) and capture events (capture
the transition). Within the dynamic pattern the events are expected to be applied in rapid
succession. The speed is at the discretion of the manufacturing site, since there are no
timings to describe how fast they can be applied.
Dynamic Timed
Dynamic timed tests are dynamic tests that have associated timings. In this case the speed
with which the events are expected to be applied at the tester is explicitly stated in the timing
data.
It is possible to create tests that can be used to sort the product by applying the test at several
rates of speed. Not all manufacturers support this, so you must contact your manufacturer
before sending them test data with several different sets of timing data.
The manufacturing process variation curve is a normal distribution. Sorting the tests is done
by selecting a point on the process variation curve through the setting of the coefficients (best,
nominal, worst) of a linear combination.
See “Test Data for Manufacturing” on page 85 for information about each level of the
hierarchy.
You can perform a variety of tasks using the hierarchy. Its capabilities include:
■ Moving interactively up and down a hierarchy.
■ Expanding and collapsing levels of a Vectors file.
■ Displaying a design view with simulation values.
■ Displaying Details about specific objects in a Vectors file. This consists of information
also available in a TBDpatt file, including data, an audit summary, and a listing of the
contents of the Vectors file for the selected object.
■ Creating a minimum Vectors file containing the minimal amount of data needed to
perform simulation.
■ Displaying Attributes of specific entities in a Vectors file.
■ Displaying simulation results requiring special analysis (for example, miscompare data).
■ Display of failing patterns based on the currently selected failures. See Reading Failures
in the Modus: Guide 9: Diagnostics for more information.
The vector information is collected and summarized according to test sequences having
similar stream of patterns, events, and clock used. The report considers each unique event
stream as a template and displays it as a string of characters, with each character
representing a different event type.
If you set the vectors option to yes, the report displays the short form of vectors in the
summary. Set the key option to yes to print the description for each character used in the
template string.
The following is a sample vector summary generated for a test pattern by using the
report_vector_summary command with -key yes and -vectors yes:
Stim_PI
This command supports both XOR and Elastic based decompressor networks. The following
configurations are not supported:
■ MISR’s compression and architectures that make use of MISR’s, such as OPMISR/
OPMISR+ or LBIST
■ Structure neutral patterns, such as those used in SmartScan, Migrated Hierarchical Test
patterns, and Multiple-Scan Section architectures.
■ If the source testmode makes use of OPCG, the resulting Fullscan testmode will need to
make use of the same OPCG.
As this command does pattern simulation to determine the unload data, the distributed
options present for ATPG are supported by this command. For more details on this, refer to
Distributed Processing (D-ATPG) in the ATPG Guide.
There can be structural differences between the Compression and the Fullscan mode that
require the patterns to be adjusted to prevent miscompares in silicon. Some examples are,
the scan chain order, the presence of pipelines, the bits that make up the Elastic register, and
registers that are controllable or observable in one mode but not the other. To account for
these differences the command re-simulates the data in the FULLSCAN mode to calculate
valid measure data. Because of these differences, the patterns will be similar but not identical
between the two modes. Depending on how much the structures differ, these differences may
also cause differences in test coverage between the two modes.
Example
convert_comp_to_fullscan -testmode <Compression Testmode> -fullscantestmode
<Fullscan Testmode> -inexperiment <Compression Testmode Experiment> -experiment
<The destination exp in the Fullscan mode>
Note: This command will work on committed data in the Compression mode if desired. In
such a case do not specify the inexperiment option.
Index
Numerics
1450.1 IEEE standard 60
A
analysis techniques
for test patterns 92
C
circuit values, viewing 93
commit test data 45, 46
commit tests
overview 45
customer service, contacting 15
E
Modus pattern data, exporting
export files 39
input files 39
overview 38
Modus pattern data, importing
output files 59
overview 59
evcd (extended value change dump) data, reading 63
exporting test data
Modus pattern data 38
printing structure-neutral TBDbin 42
sequence definition data 40
standard test interface language (STIL) 27
test data migration (TDM) 41
verilog format 31
waveform generation language (WGL) 28
extended value change dump (evcd) data, reading 63
F
fault simulation
tasks 78
H
help, accessing 15
I
importing test data
Modus pattern data 59
overview 57
sequence definition data 65
standard test interface language (STIL) 60
infiniteX simulation 87
M
multiclock 84
multipulse 84
O
odometer 51
P
pattern data, importing 59
perform uncommitted tests 46
S
sequence definition data, exporting
sequence definition data, importing
output files 66
overview 65
simulating existing patterns 75
simulating non-Modus patterns 75
simulation 67
simvision, using 99
standard test interface language (STIL), exporting 27
standard test interface language (STIL), importing
overview 60
restrictions 61
STIL (standard test interface language), importing 60
structure-neutral TBDbin, printing
output file 42
overview 42
T
tb_verilog_scan_pin property 34
TBDbin, structure-neutral 42
TBDpatt format 75
creating vector correspondence 36
TDM (test data migration), exporting
input files 42
output files 42
overview 41
termination values, resolving 88
Test 57
test data
Define_Sequence 51
Event 53
Pattern 53
Test_Procedure 52
Test_Section 52
Test_Sequence 53
Tester_Loop 52
Timing_Data 52
uncommitted test 51
test data migration (TDM), exporting 41
test data, saving 45
test pattern analysis
input files 100
output files 100
performing 100
prerequisite tasks 100
simvision 99
viewing test data 95
test simulation
concepts 75
functional tests 78
infiniteX 87
OPC logic 86
test vectors, creating 54
timings for vector export 20
U
using Modus
online help 15
V
vector correspondence
creating 36
verilog format, exporting
output files 31
overview 31
restrictions 31
viewing test data 95
W
watch list, overview and syntax 93
waveform generation language (WGL), exporting 28
WGL (waveform generation language), exporting
output files 29
overview 28
restrictions 29