DFT Adviser PDF
DFT Adviser PDF
This document contains information that is proprietary to Mentor Graphics Corporation. The original recipient of this
document may duplicate this document in whole or in part for internal business purposes only, provided that this entire
notice appears in all copies. In duplicating any part of this document, the recipient agrees to make every reasonable
effort to prevent the unauthorized use and distribution of the proprietary information.
This document is for information and instruction purposes. Mentor Graphics reserves the right to make
changes in specifications and other information contained in this publication without prior notice, and the
reader should, in all cases, consult Mentor Graphics to determine whether any changes have been
made.
The terms and conditions governing the sale and licensing of Mentor Graphics products are set forth in
written agreements between Mentor Graphics and its customers. No representation or other affirmation
of fact contained in this publication shall be deemed to be a warranty or give rise to any liability of Mentor
Graphics whatsoever.
MENTOR GRAPHICS MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS MATERIAL
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE.
MENTOR GRAPHICS SHALL NOT BE LIABLE FOR ANY INCIDENTAL, INDIRECT, SPECIAL, OR
CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING BUT NOT LIMITED TO LOST PROFITS)
ARISING OUT OF OR RELATED TO THIS PUBLICATION OR THE INFORMATION CONTAINED IN IT,
EVEN IF MENTOR GRAPHICS CORPORATION HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
U.S. Government Restricted Rights. The SOFTWARE and documentation have been developed entirely
at private expense and are commercial computer software provided with restricted rights. Use,
duplication or disclosure by the U.S. Government or a U.S. Government subcontractor is subject to the
restrictions set forth in the license agreement provided with the software pursuant to DFARS 227.7202-
3(a) or as set forth in subparagraph (c)(1) and (2) of the Commercial Computer Software - Restricted
Rights clause at FAR 52.227-19, as applicable.
Contractor/manufacturer is:
Mentor Graphics Corporation
8005 S.W. Boeckman Road, Wilsonville, Oregon 97070-7777.
Telephone: 503.685.7000
Toll-Free Telephone: 800.592.2210
Website: www.mentor.com
SupportNet: supportnet.mentor.com/
Send Feedback on Documentation: supportnet.mentor.com/user/feedback_form.cfm
TRADEMARKS: The trademarks, logos and service marks ("Marks") used herein are the property of
Mentor Graphics Corporation or other third parties. No one is permitted to use these Marks without the
prior written consent of Mentor Graphics or the respective third-party owner. The use herein of a third-
party Mark is not an attempt to indicate Mentor Graphics as a source of a product, but is intended to
indicate a product from, or associated with, a particular third party. A current list of Mentor Graphics’
trademarks may be viewed at: www.mentor.com/terms_conditions/trademarks.cfm.
Table of Contents
Chapter 1
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Inputs and Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
File Redirection Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Chapter 2
Command Dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Command Line Syntax Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Command Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Command Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Add Black Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Add Buffer Insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Add Cell Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Add Clock Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Add Clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Add Mapping Definition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Add Nofaults. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Add Nonscan Instances. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Add Nonscan Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Add Notest Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Add Output Masks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Add Pin Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Add Pin Equivalences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Add Primary Inputs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Add Primary Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Add Read Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Add Scan Chains. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Add Scan Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Add Scan Instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Add Scan Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Add Scan Partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Add Scan Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Add Seq_transparent Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Add Sub Chains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Add Subchain Clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Add Subchain Group. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Add Test Points. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Add Tied Signals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Add Write Controls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Analyze Control Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Chapter 3
Shell Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Shell Command Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
dftadvisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
stil2mgc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
Appendix A
Using Tessent DFTVisualizer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Appendix B
Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Mentor Graphics Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Index
Third-Party Information
Use Tessent™ DFTAdvisor to identify and insert scan and test circuitry to your design. For more
information, see the “Inserting Internal Scan and Test Circuitry” section in the Scan and ATPG
Process Guide.
Features
Tessent DFTAdvisor (hereafter referred to as DFTAdvisor) contains many features, including
the following:
DFTAdvisor supports insertion of mux-DFF, clocked-scan, and LSSD scan types. It performs
design rules checking to ensure scan setup and operation are correct, before scan is actually
inserted. It does not alter the original netlist when it inserts test logic. The tool creates an
internal copy of the original netlist, and then makes all required modifications to this copy.
When finished, the tool writes out the modified copy as a new scan-inserted gate-level netlist.
Inputs
• Design Netlist — in Verilog format.
• Test Procedure File — required if you have existing scan circuity in your design. The
test procedure file defines the operation of existing scan circuitry. See also “Specifying
Existing Scan Information”.
• DFT Library — contains the model descriptions for all library cells used in your
design, along with the model descriptions for all the scan replacement cells.
• Command Dofile File — a set of commands that gives DFTAdvisor information on
how the tool inserts scan chains. Alternatively, you can enter these commands
interactively. See “Command Dictionary” for a listing and descriptions of the
commands available for your use with DFTAdvisor.
Outputs
• Design Netlist — a scan version of your design netlist; can be in Verilog format.
• ATPG Setup Files — the test procedure file defining the operation of the scan circuitry
in your design, and a dofile for setting up the design and scan circuitry information for
ATPG.
DFTAdvisor uses the following mechanisms for redirecting the output of these:
• > file_pathname
Creates or replaces an existing file_pathname.
• >> file_pathname
Appends the contents of file_pathname.
You add the create and append semantics (“>”, “>>”) at the end of a command’s argument list.
The Example 1-1 command sequence redirects the output from the Report Scan Cells and
Report Scan Chains commands into a single output file, my_scan_report.
Command Summary
Table 2-2 contains a summary of the commands described in this manual.
Command Descriptions
The remaining pages in this chapter describe, in alphabetical order, the DFTAdvisor commands.
Each command description begins on a new page.
The notational conventions in use here are the same as those in use in other parts of the manual.
Do not enter any of the special notational characters (such as, {}, [], or |) when typing the
command. You can use the line continuation character “\” when application commands extend
beyond the end of a line. The line continuation character improves the readability of dofiles and
helps with the command line entry of multiple-argument commands.
o -Instance or -Module — specifies the tie value for any undefined pin.
o -Pin — specifies the tie value for the pin.
o -Auto — specifies the tie value for every pin.
If you specify no value for this option, then the application defaults to the Setup Tied
Signals command’s value. If you want a different value, then use the -Pin switch and specify
the value.
• -Pin pinname
An optional repeatable switch and string pair specifying the tie value of the particular pin.
Valid values are 0, 1, X, and Z, where X is the default. Unspecified pins assume the default
tie value in effect for the specified instance or module. May be used with -Instance or
-Module switches.
• -FAUlt_boundary
A switch specifying to keep pin pathnames at the boundaries of all blackboxed instances and
allow boundary pins to become fault sites. This is the default behavior.
• -NOFAUlt_boundary
A switch specifying to keep pin pathnames at the boundaries of all blackboxed instances,
but not allow boundary pins to become fault sites.
Note
You must include this switch when you use the Add Black Box command to blackbox
macros for Tessent FastScan MacroTest.
• -NO_Boundary
A switch specifying to not keep pin pathnames at the boundaries of all blackboxed instances
and to not allow boundary pins to become fault sites.
Examples
The following example creates a black box for module core with a tie value of 0, then core1.
add black box -module core 0
add black box -instance core1 -pin pin1 1
The following example creates a black box for all undefined models.
The following example keeps the pin pathnames at the boundary of all instances of the
blackboxed module named “macro1”, but nofaults the pins.
Related Commands
Delete Black Box Report Black Box
SET (scan set; default name scan_set) — a literal specifying the new scan set for the
scan cells.
RESET (scan reset; default name scan_reset) — a literal specifying the new scan reset
for the scan cells.
• -Model modelname
An optional switch and string pair specifying the name of a buffer in the library
DFTAdvisor inserts when the scan pin reaches the maximum fanout. You must first identify
the buffer with either the Add Cell Models command or with the cell_type library attribute.
If you do not use the -Model switch, by default, the tool uses the first buffer model in the
buffer cell model list, which you obtain with the Report Cell Models command.
Examples
Example 2-1 explicitly specifies the buffer model to use and sets the maximum fanout for the
scan enable pin for a mux-DFF cell.
In this example, you must initially define the buf1a buffer model in the library using the
cell_type library attribute with the value of “BUF”. The first command explicitly adds the buf2a
cell to the buffer model list and defines its fanout to be 10. Next, the report shows the two
buffers currently in the buffer model list. The last command specifies the maximum fanout of
the scan enable pin and all buffers inserted to buffer the scan enable signal.
This example uses the -Model switch to specify the buf2a model. Without this switch, the tool
would use the buf1a model, because it is the first in the buffer model list.
Related Commands
Add Cell Models Report Buffer Insertion
Delete Buffer Insertion Setup Scan Insertion
Example 1
The following example shows a typical use of test logic involving the set, reset, and clock pins
on sequential elements (flip-flops). DFTAdvisor can usually ensure controllability of sequential
elements with model types of And, Or, and, Mux.
add clocks 0 clk
set test logic -set on -reset on -clock on
set system mode dft
report dft check
…
add cell models and2 -type and
add cell models or2 -type or
add cell models mux21h -type mux si a b
Example 2
The following mux-DFF example adds the buf2a cell to the buffer model list, and then
explicitly specifies the buffer model to use and sets the maximum fanout for the scan enable:
add cell models buf2a -type buf
report cell models
BUF : buf1a buf2a
Related Commands
Add Buffer Insertion Set Lockup Cell
Delete Cell Models Set Test Logic
Report Cell Models Setup Registered IO
Set Io Insertion Setup Scan Identification
This example also enables automatic lockup cell insertion, and subsequently performs the scan
and latch placement.
Note
This example creates two scan chains and corresponding to the two clock groups.
Related Commands
Add Cell Models Report Clock Groups
Add Clocks Set Lockup Cell
Delete Clock Groups
Add Clocks
Scope: Setup mode
Usage
ADD CLocks off_state primary_input_pin… … [-internal] [-pin_name user_pinname]
[-top_name existing_pin [-inverted]]
Description
Specifies the names and inactive states of the primary input pins controlling the clocks in the
design.
You must declare control signals (for example, clocks, sets, and resets) and the signal’s
corresponding off-state with the Add Clocks command before entering the Dft mode.
Otherwise, instances outside of the design rules checker’s control fail the scannability check. If
an instance fails the scannability check, then DFTAdvisor does not recognize it as a scannable
instance, and cannot replace it with the corresponding scan cell.
As you declare clocks, DFTAdvisor inserts the clocks into a default clock group, all_clocks.
Arguments
• off_state
A required literal specifying the pin value that cannot affect the output pin activity of the
instance. For example, the off-state of an active low reset pin is 1 (high). For an edge-
triggered control signal, the off–state is the value on the pin that results in the clock inputs
being placed at the initial value of a capturing transition.
The off-state choices are as follows:
0 — A literal specifying the off-state value is 0.
1 — A literal specifying the off-state value is 1.
• primary_input_pin
A required repeatable string that lists the primary input pins that you want controlling the
output pins of an instance. The list of primary input pins must all have the same off_state.
If you declare a control pin with the Add Clocks command, DFTAdvisor also automatically
declares all pins that are equal to that pin as control pins, by looking at the arguments of any
Add Pin Equivalences commands. If the -Internal switch is used, primary_input_pin lists
internal pin pathnames. If both the -Internal and -Pin_name switches are used,
primary_input_pin lists internal pin pathnames to merge into a single, new primary input
pin.
• -Internal
An optional switch that specifies primary_input_pin is an internal pin that, for DRC analysis
only, should be disconnected from its original driver and treated as if it were a clock primary
input. If you use this switch, the primary_input_pin argument must be an internal pin, not an
actual clock primary input pin. When writing out the modified netlist, this internal clock
input is not added to the top level interface. Use this switch to define internal clock inputs
normally driven by on-chip circuitry.
• -PIn_name user_pinname
An optional switch and string pair that specifies the name of a new pseudo primary input
pin that drives all of the internal pins specified with the primary_input_pin argument. The
user_pinname is a name (wildcards are not allowed) given to the newly-created primary
input pin.
The -Pin_name switch is only valid when the -Internal switch is also specified. The
-Pin_name switch is also allowed if the primary_input_pin argument specifies a single,
internal pin pathname which ensures that a known pin name is used for the new primary
input pin.
• -top_name existing_pin
An optional switch and string pair that specifies the name of an existing top level pin that
drives the internal node during scan chain shifting. The top level pin should be a clock
signal; you do not need to define it using the Add Clocks command. Note: Although the
top_name switch is optional, DFTAdvisor issues a warning message if it cannot
automatically trace from the internal node to a primary input pin (the pin must not be a scan
signal, and must not have any pin constraints).
• -inverted
An optional switch that must be used in conjunction with the -top_name switch to indicate
an inverting path; this may be necessary if the signals cannot be traced due to a black-boxed
module.
Example 1
The following example first lists the primary inputs of the design, a D flip-flop. The next two
commands declare the preset, clear, and clock pins to be clocks, which means they have the
ability to control the states on the output pins of that instance.
report primary inputs
SYSTEM: /CLK_INPUT
SYSTEM: /D_INPUT
SYSTEM: /PRE_INPUT
SYSTEM: /CLR_INPUT
Example 2
The following example defines the output of a PLL block as an internal clock and explicitly
specifies the top level signal that can be used to generate a clock pulse at the internal node. The
Write Atpg Setup command will refer to the top level signal instead of the internal net.
Related Commands
Add Clock Groups Delete Clocks
Analyze Control Signals Report Clocks
Refer to “Defining Scan Cell and Scan Output Mapping” in the Scan and ATPG Process Guide
for conceptual information on this topic.
Arguments
• object_name
A required string that specifies the name of the non-scan model you want to map to a
different scan model. If, instead of a non-scan model, you specify an instance, hierarchical
instance, module, or scan model, then this is that object’s name.
o If this argument is the name of an instance or hierarchical instance, the -Instance
switch is required and the model must be specified with the -Nonscan_model switch
or -Scan_model switch.
o If this argument is the name of a module, then the -Module switch is required and the
model must be specified with the -Nonscan_model or -Scan_model switch.
o If this argument is a scan model, then the -Output switch is required. Because you
specified a scan model, you can only define the scan output pin mapping.
• -Instance | -Module
An optional switch that specifies the type of the object_name argument. If neither switch is
specified, the object_name is a model (the default).
o If you specify -Instance and the instance is primitive, then only the named instance
has its mapping changed.
o If you specify -Instance and the instance is hierarchical, then all instances under that
instance matching the -Nonscan_model or (for output mapping) matching the
-Scan_model have their mapping changed.
o If you specify -Module, then for all occurrences of that module, all instances within
that module that match the -Nonscan_model or (for output mapping) matching the
-Scan_model have their mapping changed.
• -Nonscan_model nonscan_model_name
A switch and string pair that specifies the name of the non-scan model for which you want
to change the mapping. This argument is required if you specify -Instance or -Module
switch. Otherwise, specify the name of the non-scan model in the object_name argument.
• -Scan_model scan_model_name
A switch and string pair that specifies the name of the scan model that you want to use for
the specified non-scan model. This argument is required except when you are changing the
mapping of the scan output pin, and specify the scan model in the object_name argument.
• -Output scan_ouput_pin_name
An optional switch and string pair that specifies the name of the scan output pin to use
instead of the DFTAdvisor defined scan output pin. The port must have been declared as a
scan-out port in the scan_definition section of the scan cell.
Examples
The following example maps the fd1 non-scan model to the fd1s scan model for all occurrences
of the model in the design:
add mapping definition fd1 -scan_model fd1s
The following example maps the fd1 non-scan model to the fd1s scan model and changes the
scan output pin to “qn” for all occurrences of the model in the design:
add mapping definition fd1 -scan_model fd1s -output qn
The first command in the following example maps the fd1 non-scan model to the fd1s scan
model for all matching instances in the “counter” module and for all occurrences of that module
in the design. The second command maps the fd1 non-scan model to the fd1s2 scan model and
changes the scan output pin to “qn” for all matching instances under the hierarchical instance
“/top/counter1”. Note that counter1 is an instance of the module counter changed in the first
command.
add mapping definition counter -module -nonscan_model fd1
-scan_model fd1s
add mapping definition /top/counter1 -instance -nonscan_model fd1
-scan_model fd1s2 -output qn
The following example changes the scan output pin to “qn” for all occurrences of the fd1s scan
model in the design:
add mapping definition fd1s -output qn
Related Commands
Delete Mapping Definition Report Mapping Definition
Add Nofaults
Scope: Setup mode
Usage
ADD NOfaults {{{modulename -Module} | {object_expression… [-PIN | -Instance]}}
[-Stuck_at {01 | 0 | 1}] [-Keep_boundary]}
Description
Places nofault settings either on a pin or on all pins of a specified instance or module.
The Add Nofaults command places a nofault setting on either a single specified pin, or on all
pins of a specified instance or module.
• If the pathname is a pin, then DFTAdvisor ignores only the fault on that pin.
• If the pathname is an instance, then the tool ignores all pin faults on the top-level of that
instance, along with all the pin faults underneath that instance (if it is a hierarchical
instance).
• If the pathname is a module, then the tool ignores all pin faults on the top-level of the
module, along with all the pin faults on all instances and pins underneath that module for
every occurrence of that module in the design.
Note
The nofaults that you create with the Add Nofaults command only exist for the current
DFTAdvisor session.
DFTAdvisor recognizes the nofault setting on pins and instances through the following two
mutually exclusive tagging processes:
• Interactively using the Add Nofaults command for pins and instances
• Using the nofault DFT library attribute for pins
Arguments
• modulename
A repeatable string that specifies the name of a module to which you want to assign nofault
settings. You must include the -Module switch when you specify a module name.
• -Module
A switch that specifies to interpret the modulename argument as a module pathname. All
instances of the module are affected. You can use the asterisk (*) and question mark (?)
wildcards for the modulename argument, and the tool adds the nofault for all matching
modules or library models.
• object_expression
A string representing a list of pathnames of instances or pins for which you want to assign
nofault settings. The string may include any number of embedded asterisk (*) or question
mark (?) wildcard characters. The asterisk matches any sequence of characters (including
none) in a name, and the question mark matches any single character.
Pin pathnames must be ATPG library cell instance pins, also referred to as design level pins.
If the object expression specifies a pin within an instance of an ATPG library model, the
tool ignores it. By default, pin pathnames are matched first. If a pin pathname match is not
found, the tool next tries to match instance pathnames. You can force the tool to match only
pin pathnames or only instance pathnames by including the -Pin or -Instance switch after the
object_expression.
• -PIN
An optional switch that specifies to use the preceding object expression to match only pin
pathnames; the tool will then assign nofault settings to all the pins matched.
• -Instance
An optional switch that specifies to use the preceding object expression to match only
instance pathnames; the tool will then assign nofault settings to all boundary and internal
pins of the instances matched (unless you use the -Keep_boundary switch).
• -Stuck_at 01 | 0 | 1
An optional switch and literal pair identifying the stuck-at values receiving the nofault
setting. Choose from one of the following:
01 — specifies the placement of a nofault setting on both the “stuck-at-0” and “stuck-at-
1” faults. This is the default.
0 — specifies the placement of a nofault setting on the “stuck-at-0” faults.
1 — specifies the placement of a nofault setting on the “stuck-at-1” faults.
• -Keep_boundary
An optional switch that specifies that nofaults are applied to the pins inside of the specified
instance or module, but faults are still allowed at the boundary pins of the specified
instances or modules. This option does not apply to nofaults on pin pathnames.
Examples
The following example first tags all the pin faults on and below an instance, and then tags the
fault on a specific pin.
add clocks 0 clock
add nofaults i_1006 -instance
add nofaults i_1_16/df0/q
set system mode dft
run
Related Commands
Delete Nofaults Report Nofaults
The asterisk (*) is a wildcard that allows you to match many instances in a design. Any
expression that does not contain an asterisk (*) will match exactly zero or one instance.
This argument does not support pathnames to objects below the instance level of an ATPG
library model. You can use a pathname expression to select several instances and the tool
will then add nonscan instances for all the pins on those instances; but if the expression
specifies a location below the instance level of an ATPG library model, the tool will issue an
error message.
• -INStance | -Control_signal | -Module
An optional switch that specifies whether the pathnames are instances, pins (control
signals), or modules. An example Verilog module is “module clkgen (clk, clk_out, …)”
where clkgen is the module name. You can only use the -Control_signal option in Dft mode.
The default is instances.
Examples
The following example specifies that DFTAdvisor ignore the sequential i_1006 instance when
identifying and inserting the required scan circuitry:
add nonscan instances i_1006
Related Commands
Delete Nonscan Instances Report Sequential Instances
Insert Test Logic Run
Set Nonscan Handling
Related Commands
Delete Nonscan Models Run
Insert Test Logic Report Nonscan Models
Set Nonscan Handling
The asterisk (*) is a wildcard that allows you to match many instances in a design. Any
expression that does not contain an asterisk (*) will match exactly zero or one instance.
This argument does not support pathnames to objects below the instance level of an ATPG
library model. You can use a pathname expression to select several instances and the tool
will then add notest points for all the pins on those instances; but if the expression specifies
a location below the instance level of an ATPG library model, the tool will issue an error
message.
• -Observe_scan_cell
An optional switch that excludes the instance named in the instance_pathname argument for
use as an observation scan cell.
• -Path filename
A switch and filename pair that specifies the pathname to a file that contains critical path
information. For more information on the format of the file, refer to “The Path Definition
File” in the Scan and ATPG Process Guide.
Examples
The following example first sets up the test point identification parameters, then specifies
output pins tr_io and ts_i that DFTAdvisor cannot use for testability insertion:
setup test_point identification -control 9 -obs 20 -patterns 32000
-base simulation
setup test_point insertion -cshare 16 -oshare 16
set system mode dft
setup scan identification none
add notest points tr_io ts_i
run
Related Commands
Delete Notest Points Report Notest Points
Setup Test_point Insertion
Examples
The following example first sets up DFTAdvisor to recognize only the wrapper cells during the
scan identification run. The invocation default identification type is sequential scan. Next, the
example specifies the primary output pins that the Add Output Masks command associates with
the wrapper cells.
setup scan identification wrapper_chains
add output masks out1 out2 out3
When you issue the Run command later in the session, DFTAdvisor identifies all the sequential
elements that are observable only through the masked primary output pin. Then, when you issue
the Insert Test Logic command, DFTAdvisor stitches all those scan cells it previously identified
as being wrapper cells into one wrapper chain.
Related Commands
Analyze Output Observe Setup Output Masks
Delete Output Masks Setup Scan Identification
Report Output Masks
If you are using the wrapper chain type, DFTAdvisor also uses pin constraints set to unknown
as a way to flag primary inputs that are uncontrollable from the higher chip-level primary
inputs. When DFTAdvisor performs the scan identification process during the Run command, it
adds to the scan candidate list the sequential cells that are controllable through the primary input
pin; those that you constrained to an unknown value. For more information on wrapper chains,
refer to “Understanding Wrapper Chains” in the Scan and ATPG Process Guide.
You can set a default pin constraint value for all input and bidirectional pins using the Setup Pin
Constraints command. The pin constraints set by the Setup Pin Constraints command are
overridden by the values set with the Add Pin Constraints command. You can remove an
override of a default pin constraint using the Delete Pin Constraints command. You can remove
default pin constraint for all input pins, with the Setup Pin Constraints command.
Arguments
• primary_input_pin
A required string that specifies the primary input pin to hold at the constant_value.
• C0 | C1 | CZ | CX
A literal that specifies the constant value to constrain the primary_input pin to. The
constraint choices are as follows:
C0 — Applies a constant 0 to the specified primary input pins.
C1 — Applies a constant 1 to the specified primary input pins.
CZ — Applies a constant Z (high-impedance) to the specified primary input pins.
CX — Applies a constant X (unknown) to the specified primary input pins.
Example
The following example illustrates how to hold two primary input pins to constant values:
add pin constraints kgmt c1
add pin constraints dsint c0
Related Commands
Add Seq_transparent Constraints Report Pin Constraints
Analyze Input Control Setup Pin Constraints
Delete Pin Constraints
Arguments
• primary_input_pin
A required, repeatable string that specifies a list of primary input pins whose values you
want to either equal or invert with respect to primary_input_pin_ref.
• -Invert
An optional switch that specifies for DFTAdvisor to hold the primary_input_pin value to
the opposite state of the primary_input_pin_ref value. If you use this switch, you must enter
it immediately prior to the primary_input_pin_ref value.
• primary_input_pin_ref
A required string that specifies the name of the primary input pin whose value you want
DFTAdvisor to use when determining the state value of primary_input_pin. You can
immediately precede this string with the -Invert switch to cause DFTAdvisor to hold the
primary_input_pin value to the opposite state of the primary_input_pin_ref value.
Examples
The following example restricts the first primary input (indata2) to have an inverted value with
respect to the second primary input (indata4):
add pin equivalences indata2 -Invert indata4
Related Commands
Delete Pin Equivalences Report Pin Equivalences
Examples
The following example adds two new primary inputs to the circuit and places it in the user class
of primary inputs:
add primary inputs indata2 indata4
Related Commands
Delete Primary Inputs Report Primary Inputs
Related Commands
Delete Primary Outputs Report Primary Outputs
Related Commands
Analyze Control Signals Report Read Controls
Delete Read Controls
Examples
The following example defines two scan chains (chain1 and chain2) that belong to the same
scan group (group1):
add scan groups group1 scanfile
add scan chains chain1 group1 indata2 testout2
add scan chains chain2 group1 indata4 testout4
Related Commands
Add Scan Groups Report Scan Chains
Delete Scan Chains Ripup Scan Chains
Arguments
• group_name
A required string that specifies the name for the scan chain group.
• test_procedure_filename
A required string that specifies the name of the test procedure file that contains the
information for controlling the scan chains in the specified scan chain group.
Examples
The following example defines a scan chain group, group1, which loads and unloads a set of
scan chains, chain1 and chain2, by using the procedures in the file, scanfile:
add scan groups group1 scanfile
add scan chains chain1 group1 indata2 testout2
add scan chains chain2 group1 indata4 testout4
Related Commands
Add Scan Chains Read Procfile
Delete Scan Groups Write Procfile
Report Scan Groups
instance is hierarchical, then all sequential instances beneath it are also added to the scan
list.
• instance_expression
A required string representing a list of instances within the design. The string
instance_expression is defined as:
{ string | string * } ...
The asterisk (*) can be used as a wildcard character. Any expression that does not contain an
asterisk (*) will match exactly zero or one instance.
This argument does not support pathnames to objects below the instance level of an ATPG
library model. If you use a pathname expression to select several instances, the tool will add
scan instances for all the pins on those instances; but if the expression specifies a location
below the instance level of an ATPG library model, an error message displays.
• -INStance | -Control_signal | -Module
An optional switch that specifies whether the specified pathnames are instances, control
signal pins, or modules. You can only use the -Control_signal option in Dft mode. The
default is -INStance.
• -INPut | -Output | {-Hold {0 | 1}}
An optional switch that adds scan instances as input or output wrapper cells. If you specify
the -Hold option, then you must also supply a high (1) or low (0) literal to define hold 0 or
hold 1 output wrapper cells. If none of these options are specified, the added scan instances
are considered regular scan cells.
Examples
The following example adds two sequential instances to the identified scan list (assuming they
pass rules checking), sets the identification process to use the 50 percent of the eligible scan
elements that maximize the fault coverage, and then runs the scan identification process.
add scan instances i_1006 i_1007
set system mode dft
setup scan identification sequential atpg -percent 50
run
The scan identification process chooses the optimal 50 percent of eligible scan instances but
always includes i_1006 and i_1007 within that 50 percent.
Related Commands
Delete Scan Instances Setup Scan Identification
Report Sequential Instances
Because of the previous setup in this example, when DFTAdvisor runs the scan identification
process, it chooses the optimal 50 percent of eligible scan instances, ensuring that it includes all
eligible instances of the dff1a model in that 50 percent of identified scan instances.
Related Commands
Delete Scan Models Report Scan Models
Note
The scan cells of subchains cannot be included in scan partitions. This is because a
subchain container can be a blackbox instance, the sequential cells of which do not exist
in the netlist. Therefore, subchains can be included in scan partitions by specifying the
pathname of their container module instances, or the module name of the container
modules.
Arguments
• object_name
A required string that specifies a name for the scan partition.
• -INstance {pathname... | instance_expression...}
A required switch and a repeatable string that specify the pathname(s) of the sequential
instances that you want to place into the scan partition. If a module instance pathname is
specified, all sequential instances hierarchically under that instance are added to the
partition. This switch can be used along with the -Module and -Library_model switches
(and their arguments) in the same command line. However, all three cannot be omitted.
The repeatable string can be in the form of an absolute instance pathname or a pathname in
regular expression form. This argument does not support pathnames to objects below the
instance level of an ATPG library model. If the instance pathname/expression cannot be
mapped to any sequential element in the design, the tool generates an error message. The
string instance_expression is defined as:
{string | string *} ...
The asterisk (*) is a wildcard that allows you to match many instances in a design. Any
expression that does not contain an asterisk (*) will match exactly zero or one instance.
• -MOdule module_name...
A required switch and a repeatable string that specify the module name(s) of the instances
that are the containers of the sequential instances that you want to place into the scan
partition. All sequential instances hierarchically under these container instances are added to
the partition. This switch can be used along with the -Instance and -Library_model switches
(and their arguments) in the same command line. However, all three cannot be omitted.
• -LIbrary_model library_model_name...
A required switch and a repeatable string that specify the library model name(s) of the
sequential instances that you want to place into the scan partition. This switch can be used
along with the -Instance and -Module switches (and their arguments) in the same command
line. However, all three cannot be omitted.
• -NUmber integer
An optional switch and integer pair that specify the exact number of scan chains that you
want DFTAdvisor to insert for the scan partition specified. Final results depend upon the
number of scan candidates. The default number of chains is 1. The -number and
-max_length options of the Insert Test Logic command are ignored for the user added scan
partitions.
• -MAx_length integer
An optional switch and integer pair that specify the maximum number of scan cells that
DFTAdvisor can stitch into a scan chain of the scan partition specified. DFTAdvisor evenly
divides the scan cells into scan chains that are smaller than the max_length integer. Final
results depend upon the number of scan candidates. The -number and -max_length options
of the Insert Test Logic command are ignored for the user added scan partitions.
• -EDT
An optional switch that specifies DFTAdvisor to write out the Tessent TestKompress
command “Add Edt Block name” before each group of scan chain declarations in the dofile
written out by the tool. In the dofile, the scan chain declarations of the same scan partition
are grouped together and separated from the other groups of scan chain declarations by a
comment line. The name string in the Tessent TestKompress command is the same as the
scan partition name specified by object_name.
• -VErbose
An optional switch that turns on verbose transcript printing. When specified, the pathnames
of the sequential cells included in the scan partition are printed in the session transcript.
Examples
In the following example, two scan partitions are defined. The first partition, partA, is defined
using exact pathnames of the sequential instances, and the second partition, partB, is defined by
the container module instance of the sequential instances. A single scan chain is inserted by
default for partA, whereas two scan chains are inserted for partB. Two scan chains are inserted
for the remaining cells in the default scan partition, as specified by the -number argument of the
Insert Test Logic command. The -Edt switch is used for partA, allowing the tool to write out the
Tessent TestKompress command, Add Edt Block, in the dofile, in addition to the scan chain
declarations. Also, Individual scan I/O pins per chain and default scan I/O pin naming are
specified by means of the Add Scan Pins and Setup Scan Pins commands, respectively.
add clocks 0 clk1
set system mode dft
add scan partition partA -instance udff1 umodA/udff32 umodB/udff5 -edt // 1 chain
add scan partition partB -instance umodC -number 2 -edt // 2 chains
run
add scan pins chain1 partA_chain1_si partA_chain1_so
add scan pins chain1 partB_chain1_si partB_chain1_so
setup scan pins input -indexed -prefix mysi -initial 1
setup scan pins output -indexed -prefix myso -initial 1
insert test logic -number 2 // 2 chains inserted for the default scan partition
write atpg setup fscan
So, a total of five scan chains are inserted. After mapping the individual scan I/O pins per chain,
new scan I/O pin names are generated for the remaining chains based on the specified default
pin naming. The dofile generated by the tool looks similar to the one below. Note that the scan
chain declarations of each scan partition are denoted by a comment line. The order of the groups
of declarations is the same as the order of the scan partition declarations. The default scan
partition chains are printed as the last group. Also note that the Tessent TestKompress “Add Edt
Block” commands are written out since the -Edt switch is used. For the default scan partition,
the tool generates the name “edt_top_block” to use it as the edt block identifier string in the Add
Edt Block command.
//
// Generated by DFTAdvisor at Wed Jul 12 14:09:58 2006
//
add scan groups grp1 fscan.testproc
Related Commands
Delete Scan Partitions Report Scan Partitions
Insert Test Logic Add Clock Groups
Tip: For information on assigning scan pins to scan chains and the fixed-order file, refer
to “Naming Scan Input and Output Ports” in the Scan and ATPG Process Guide.
If you specify nonexistent signal names for the scan input or scan output pins, DFTAdvisor
generates a warning and adds the appropriate pins when you perform scan synthesis with the
Insert Test Logic command.
For explicitly defining the primary scan input and scan output pins at the top-level of the design
and specifing internal pin pathnames for the scan_input_pin and scan_output_pin arguments,
you must use the -Top switch when you execute the Write Atpg Setup command.
If you do not issue this command, DFTAdvisor uses the default names when generating the scan
chain. The default name of the scan chain is chain1, with the corresponding scan input pin
named scan_in1 and the corresponding scan output pin named scan_out1. If DFTAdvisor
inserts multiple scan chains, the default naming increments the numerical suffix of each
argument by one for each chain, such as chain2, scan_in2, and scan_out2.
Each use of the Add Scan Pins command specifies the naming for a single scan chain. You can
optionally use the Setup Scan Pins command to globally set the default naming conventions for
scan chains that do not use existing design pins.
Arguments
• chain_name
A required string that specifies the name of the scan chain with which you want
DFTAdvisor to associate the scan_input_pin and scan_output_pin names.
• scan_input_pin
A required string that specifies the scan input pin name of the scan chain. This pin can be a
top-level input pin, top-level bidirectional pin, or an internal signal.
In addition to a primary input pin name (for example, scan_in), you can also specify an
internal instance pin pathname as the scan_input_pin value. If you do so, that pin pathname
must be an output pin of an instance. For example, you could use an internal instance pin
pathname “/I116/d”, where “I116” is the instance name of the I/O cell and “d” is the pin
name. If the specified internal instance pin cannot be traced back to a primary input pin
through a simple path (only inverters or/and buffers), when the Write Atpg Setup command
is issued, a warning message is written to the top of the ATPG dofile and the following
command is added prior to the Add Scan Chains command referencing the internal
scan_input_pin argument:
add primary input -cut scan_input_pin
Example 1 shows the content written to the ATPG dofile in this case.
If the pin is a top-level bidirectional pin, DFTAdvisor assumes that you configured the pin
to operate as an input during the scan test and does not check for correct configuration.
If -Registered is specified, the scan_input_pin is the output of the DFF head register.
• scan_output_pin
A required string that specifies the scan output pin name of the scan chain. This pin can be
any of the following:
o a top-level output pin
o a top-level bidirectional pin (single driver)
o an internal signal
Note
If the scan output pin you specify has a functional connection, DFTAdvisor multiplexes
this connection with the connection line from the last scan cell of the scan chain.
In addition to a primary output pin name (for example, scan_out), you can also specify an
internal instance pin pathname (for example, “/I116/q”) for the scan_output_pin value,
providing this pin pathname is an input pin of an instance. If the specified internal instance
pin cannot be traced forward to a primary output pin through a simple path (only inverters
or/and buffers), when the Write Atpg Setup command is issued, a warning message is
written to the top of the ATPG dofile and the following command is added prior to the Add
Scan Chains command referencing the internal scan_output_pin argument:
add primary output scan_output_pin
Example 2 shows the content written to the ATPG dofile in this case.
If the pin is a top-level bidirectional pin, DFTAdvisor assumes that you configured the pin
to operate as an output during the scan test and does not check for correct configuration.
If -Registered is specified, the scan_output_pin is the input of the DFF tail register.
• -CLock pin_name
An optional switch and string pair that specifies the pin name of the clock that you want
DFTAdvisor to assign to the scan chain. You must have predefined this pin as a scan clock
using the Add Clocks command.
• -CUt
An optional switch that specifies to remove an existing functional connection, if there is
one, to the specified scan output pin and to connect the last scan cell of the specified scan
chain to this scan output pin.
• -Registered
An optional switch that identifies head and tail DFF registers for the scan chain.
DFTAdvisor does not insert new scan cells as head and tail registers if it cannot find them in
the circuit. For additional information, refer to “Attaching Head and Tail Registers to the
Scan Chain” in the Scan and ATPG Process Guide.
• -Top primary_input_pin primary_out_pin
An optional switch and two strings that defines the corresponding top-level primary
input/output pins for the scan in and scan out ports. DFTAdvisor uses these names when
generating the ATPG dofile. Refer to the second example for clarification of how the
contents of the ATPG dofile are created. Both pin names must be supplied. This option does
not add pins to the top-level of the design.
Example 1
The following example specifies an internal pin pathname that DFTAdvisor cannot trace back
to the primary input. See the resulting dofile contents in Example 2-2 on page 75.
add clocks 0 clk
setup scan identification full_scan
set tri gating bus -control ten
set tri gating out1 out4 -control ten
set tri gating out3 out2
set bidi gating on
add scan pins c1 udff1/Q tbus2_drv1/A
add scan pins c2 bidi_1/X tbus1_drv2/A -top io2 out2
set system mode dft
report dft check -tri
run
insert test logic -number 2
report scan chains
write atpg setup results/tri_on_ten -r
write netlist results/tri_on_ten.v -verilog -r
Example 2
The following example specifies an internal pin pathname that DFTAdvisor cannot trace
forward to the primary output. See the resulting dofile contents in Example 2-3 on page 76.
add clocks 0 clk
setup scan identification full_scan
set tri gating bus -control ten
set tri gating out1 out4 -control ten
set tri gating out3 out2
set bidi gating on
add scan pins c1 bidi_2/X tbus2_drv1/A -top io3 out3
add scan pins c2 bidi_1/X udff1/D
set system mode dft
report dft check -tri
run
insert test logic -number 2
report scan chains
write atpg setup results/tri_on_ten -r
write netlist results/tri_on_ten.v -verilog -r
Related Commands
Delete Scan Pins Setup Scan Pins
Report Scan Pins Write Atpg Setup
Related Commands
Add Pin Constraints Report Pin Constraints
Delete Seq_transparent Constraints
• scan_output_pin
A required string that specifies the scan output pin of the scan subchain.
• length
A required integer that specifies the number of scan cells in the scan subchain.
• scan_type
Scan type usage:
{Mux_scan{scan_enable [INVerted]} [-CLock pin_name1 pin_name2] }| Clocked_scan
scan_clock | Lssd master_clock slave_clock
A required literal and multiple argument option that specifies the scan type and control of
the scan subchain. Options include:
o Mux_scan {-SEN_Core | -SEN_In | -SEN_Out} scan_enable [INVerted]
Required switch, string, and literal that specifies the type, name, and internal
inversion of the scan enable pin on the subchain container (module or
library_model).
Normally, DFTAdvisor inserts one type of scan enable signal, referred to as
Sen_core. In a wrapper chain insertion flow, DFTAdvisor can also insert two more
types of scan enable signals if I/O wrapper chains are specified. The scan enable
signals inserted for separate input and output wrapper cells are referred to as Sen_in
and Sen_out. For more information on I/O wrapper chains, see the Setup Wrapper
Chains command. The default type of scan enable is -SEN_Core, if this literal is not
specified in the subchain declaration. A subchain may contain all three types of scan
enables, in which case you should repeat the triplet for each type of scan enable.
-Clock pin_name1 pin_name2 — Required switch and string pair that specifies the
names of the clock pins on the top module that control the defined subchain.
pin_name1 specifies the clocks for the first cell (closer to the scan input).
pin_nam2 specifies the name of the clock pin for the last cell (closer to the scan
output).
The first and the last cell clock pins determine the transition of clock domains when
the subchain is placed in a top-level scan chain, so lockup cells are inserted correctly
at these transitions. During wrapper chain creation, only the first cell clock pin
information is used to determine which top-level scan chain the subchain cell is
placed in. If this switch is not specified, DFTAdvisor tries to find the top-level clock
pins using the sub-clock pins via structural tracing, as described below. If
DFTAdvisor cannot determine the top module clock pins, it places the defined
subchain in separate scan chains in the top module, along with other subchains with
undetermined top module clock pins.
o Clocked_scan scan_clock — A required literal and string pair that specifies the
clocked-scan style of scan cells and the name of the scan clock for the scan subchain.
Example 2
The following example defines three subchains on an instance. Note that each subchain has a
designated scan enable pin:
add sub chains /mytop/u1 subc1 si1 so1 150 mux_scan -sen_in senin
add sub chains /mytop/u1 subc2 si2 so2 138 mux_scan -sen_out senout
add sub chains /mytop/u1 subc3 si3 so3 1600 mux_scan -sen_core sen
report sub chains
mux_scan: /mytop subc1 150 si1 so1 senin
mux_scan: /mytop subc2 138 si2 so2 senout
mux_scan: /mytop subc3 1600 si3 so3 sen
Example 2
The following example shows information written out by the Report Scan Cells command
following by the same information as it appears when it is written to the scan DEF file.
VERSION 5.7 ;
DIVIDERCHAR "/" ;
BUSBITCHARS "[]" ;
DESIGN top ;
UNITS DISTANCE MICRONS 1000 ;
SCANCHAINS 1 ;
- chain1_sub0
+ START lckup2 Q
+ FLOATING
uB/f1 ( IN SI ) ( OUT Q )
uB/f2 ( IN SI ) ( OUT Q )
uB/f3 ( IN SI ) ( OUT Q )
+ STOP lckup1 D
# Partition for core chain in clock clk2 (pos-edge) domain
+ PARTITION partition_1 MAXBITS 3 ;
- chain2_sub0
+ START us Q
+ FLOATING
ud ( IN SI ) ( OUT Q )
+ STOP uWA/uA/f21 SI
# Partition for core chain in clock clk (pos-edge) domain
+ PARTITION partition_2 MAXBITS 1 ;
# The following chain segment with only 1 or 2 scan cells has been
commented out for
# compatibility with the layout tools.
#- chain3_sub0
# + START uWA/uA/f31 SI
# + STOP uWA/uA/f31 Q ;
- chain4_sub0
+ START lckup4 Q
+ FLOATING
uWA/mux ( IN A1 ) ( OUT Y ) ( BITS 0 )
uWA/uA/f1 ( IN SI ) ( OUT Q )
uWA/uA/bb/f2 ( IN SI ) ( OUT Q )
uWA/uA/f3 ( IN SI ) ( OUT Q )
+ STOP lckup3 D
# Partition for core chain in clock clk (pos-edge) domain
+ PARTITION partition_2 MAXBITS 3 ;
END SCANCHAINS
END DESIGN
Related Commands
Add Clocks Report Sub Chains
Add Subchain Clocks Setup Wrapper Chains
Delete Sub Chains Write Scan Order
Report Scan Cells Write Subchain Setup
Once you specify the clock pins, you must use Set Test Logic to enable the insertion of the test
logic.
The Add Sub Chains command adds subchains to a specific instance or all instantiations of a
specific module. When you use the Add Subchain Clocks command to specify subchain clock
pins for multiple instantiations of a module, the timing information is automatically adjusted for
each instance based on the:
Note
In order to specify clock pins with the Add Subchain Clocks command, the clock path
must be traceable from the module to the top-level.
Scannability analysis DRCs: S1, S2, and S3 validate the defined subchains when you exit Setup
mode.
Arguments
• subchain_name
A required string that specifies the name of a subchain previously defined with the
Add Sub Chains command.
• off_state
A required string that specifies the off state for sequential instances. Sequential instances
maintain their state when the clock is at the specified value; either 1 or 0.
• clock_port_name
A required, repeatable string that specifies the clock pins on the subchain that must be
controlled during scan chain shifting.
• -Set
A required switch that specifies the clock pins listed by the clock_port_name argument are
set signals for cells in the subchain and should be held in the off state during scan chain
shifting.
• -Reset
A required switch that specifies the clock pins listed by the clock_port_name argument are
reset signals for cells in the subchain and should be held in the off state during scan chain
shifting.
• -First_cell_clock
A required switch that specifies the clock pin listed by the clock_port_name argument
drives the first cell in the subchain.
• -LAst_cell_clock
A required switch that specifies the clock pin listed by the clock_port_name argument
drives the last cell in the subchain.
• -LEading_edge
An optional switch that specifies the clock pin listed by the clock_port_name argument
updates cells on the leading edge of the off-state to on-state transition. This value is used
during scan chain stitching and is only valid for defining the first and/or last cell clocks.
• -Trailing_edge
An optional switch that specifies the clock pin listed by the clock_port_name argument
updates cells on the trailing edge of the off-state to on-state transition. This value is used
during scan chain stitching and is only valid for defining the first and/or last cell clocks.
Example 1
The following example defines a subchain on a library module.
add sub chains MULTIBITSFF3 chain1 SI SO 4 mux_scan S library_model
add subchain clocks chain1 0 RESET -reset
add subchain clocks chain1 0 SET -set
add subchain clocks chain1 0 CK -first_cell_clock -leading_edge
add subchain clocks chain1 0 CK -last_cell_clock -leading_edge
report subchain clocks chain1
// clock name type off_state edge
// ---------- ---- --------- -----
// RESET reset 0
// SET set 0
// CK first cell clock 0 leading edge
// CK last cell clock 0 leading edge
Example 2
The following example reports subchains defined within a blackbox. The subchain is treated as
a single sequential instance, but it is listed once for each clock line that needs fixing.
DFT> report dft check
SCANNABLE SUBCHAIN Testlogic /macro MULTIBITSFFX (1)
Set: T /macro/SET1
SCANNABLE SUBCHAIN Testlogic /macro MULTIBITSFFX (1)
Set: T /macro/SET2
SCANNABLE SUBCHAIN Testlogic /macro MULTIBITSFFX (1)
Set: T /macro/SET3
SCANNABLE SUBCHAIN Testlogic /macro MULTIBITSFFX (1)
Reset: T /macro/RESET1
All the test logic issues for a specified subchain instance map to a single DRC rule violation.
The Analyze Drc Violation command displays the entire macro (with an X on each clock line
that requires test logic) and arbitrarily displays the driving gate for only one of the pins that
requires fixing.
Related Commands
Add Sub Chains Report Sub Chains
Delete Subchain Clocks Report Subchain Clocks
Report Dft Check Write Subchain Setup
Arguments
• object_name
A required string specifying the subchain group name.
• subchain_name
A required repeatable string identifying the subchain name for inclusion into the subchain
group. Before identifying the subchain, you must add it with Add Sub Chains. You can also
report subchain information using Report Sub Chains.
If you added a subchain to a subchain group on a module-based basis, and the module is
instantiated multiple times, DFTAdvisor includes the subchains on all instances of the
module in the subchain group when this subchain is specified in the list of subchains of the
Add Subchain Group command. If the subchains on different instances of the module are to
be put into different subchain groups, these subchains need to be added instance-based
instead of module-based in order to be assigned a unique subchain name.
• -FLexible | -Fixed
An optional switch that specifies the type of the subchain group. The default type, -Flexible,
allows in its chain other flip-flops and subchains that are not a member of a subchain group.
Also, the subchains of flexible subchain groups are partitioned along with the other flip-
flops in the design according to the options specified with the Insert Test Logic command.
The subchains of a fixed type subchain group are placed in a single chain and are not
partitioned according to Insert Test Logic command options. Also, no other flip-flops or
subchains are allowed in the scan chain of this group.
Examples
The following example defines a pre-existing scan subchain:
add sub chain subblockA subchain1 /scan_in1 /scan_out1 250 \
mux_scan /scan_en -module
add sub chain subblockC subchain2 /scan_in1 /scan_out1 120 \
mux_scan /scan_en -instance ...
report sub chains
Related Commands
Add Clock Groups Delete Subchain Groups
Add Sub Chains Insert Test Logic
Add Subchain Group Report Subchain Groups
Delete Sub Chains Report Sub Chains
The Add Test Points command also works independently of the automatically system-defined
test points—refer to “Understanding Test Points” in the Scan and ATPG Process Guide.
Arguments
• tp_pin_pathname
A required string that specifies the location where you want DFTAdvisor to insert the
control or observe test point.
• Control model_name [input_pin_pathname] [mux_sel_input_pin] [-New_scan_cell
scancell_model_name]
The Control test point argument specifies the test point is for control purposes.
model_name — A required string specifying the DFT library model you want
DFTAdvisor to place an instance of at the location specified by tp_pin_pathname.
Before you can use the Add Test Points command, you must use either the Add Cell
Models command or the cell_type DFT library attribute to define the DFT library
model that corresponds to the model type you want DFTAdvisor to insert. The valid
cell model types include AND, OR, INV, BUF, NAND, NOR, XOR, and MUX.
input_pin_pathname — An optional string that specifies the pathname of the pin to
which you want to connect the other input of the gate specified by the model_name
argument. The pathname can be either to an existing primary input pin, an internal
driver pin, or a currently nonexistent pin. If the pin does not currently exist in the
design and -New_scan_cell option is not specified, DFTAdvisor transcripts a
message when you issue this command, and then creates a new primary input pin with
the specified name during the insertion of the scan chain(s). If -New_scan_cell option
is specified, this string is used to specify an existing clock pin to be connected to the
clock input of the new control point scan cell. If -New_scan_cell option is specified
and this string is not provided, DFTAdvisor determines which clock to use for the
new scan cell automatically.
mux_sel_input_pin — An optional string that is needed only when the model_name
argument type is a MUX. This argument specifies where DFTAdvisor is to connect
the selector input of the multiplexer.
-New_scan_cell scancell_model_name — An optional switch and string pair that
specifies whether DFTAdvisor places a scan cell at the control test point and the DFT
library SCANCELL type model that you want inserted. If you use this option, you
must first define the scancell_model_name with the Add Cell Models command or
the cell_type DFT library attribute. Figure 2-1 shows how DFTAdvisor automatically
connects the new scan cell to the same clock as the scan cell it feeds in the chain.
Note that these are new scan cells, not scan replacements for existing sequential elements.
They are connected into chain(s) during insertion of test logic along with the existing
sequential elements in the design. If the design contains no scan, the test point scan cells are
connected into one or more scan chains, depending on their clock pins.
Note that these are new scan cells, not scan replacements for existing sequential elements.
They are connected into chain(s) during insertion of test logic along with the existing
sequential elements in the design. If the design contains no scan, the test point scan cells are
connected into one or more scan chains, depending on their clock pins.
Related Commands
Add Cell Models Report Test Points
Delete Test Points Set Lockup Cell
Insert Test Logic Set Test Logic
Tip: Use the Setup Tied Signals command for changing the value of a tied object from
the default value of unknown (X).
When you add tied signals or pins, the tool places them into the user class. This includes
instance-based blackbox tied signals. When the netlist ties signals or pins to a value, the tool
places them into the system class.
Note
The tool does not tie a signal connected to I/O pins. This causes a problem if you are
considering VDD as an I/O pin.
Arguments
• 0
A literal that specifies to tie the floating nets or pins to logic 0 (low to ground).
• 1
A literal that specifies to tie the floating nets or pins to logic 1 (high to voltage source).
• X
A literal that specifies to tie the floating nets or pins to unknown.
• Z
A literal that specifies to tie the floating nets or pins to high-impedance
• floating_object_name
A required, repeatable string that specifies the floating nets or pins to which you want to
assign a specific value. The tool assigns the tied value to all floating nets or pins in all
modules that have the specified names.
If you do not specify the -Pin option, the tool assumes the name is a net name. If you do
specify the -Pin option, the tool assumes the name is a pin name. If you specify a net
pathname, you cannot use the -Pin option.
• -Pin
An optional switch specifying that the floating_object_name argument that you provide is a
floating pin name.
Examples
The following example ties all floating signals in the circuit that have the net names vcc and
vdd, to logic 1 (tied to high):
add tied signals 1 vcc vdd
Related Commands
Add Black Box Report Tied Signals
Delete Tied Signals Setup Tied Signals
Related Commands
Analyze Control Signals Report Write Controls
Delete Write Controls
Alias
Scope: All modes
Usage
ALIas [synonym {!unix_command; | tool_command; | alias_synonym;}…]
Description
Specifies the shorthand name for a DFTAdvisor command, UNIX command, or existing
command alias, or any combination of the three.
Issuing the Alias command with no parameters will list the current aliased commands, using the
same format that the Korn-shell alias commands use:
<alias_cmd1>=<alias_definition1>
<alias_cmd2>=<alias_definition2>
...
<alias_cmdN>=<alias_definitionN>
If you specify a shorthand name (synonym) and one of the command types, that shorthand name
can substitute for the command and any arguments you specify. You utilize the full power of the
Alias command when you take advantage of the repeatable nature of the second string,
intermixing any number of command types, and separating them with semicolons.
In addition, the command strings can be parameterized by using the formal parameters, $1
thorough $9, inserted in the command string in any order. When you issue the synonym as a
command, you must supply the actual arguments, which are substituted into the command prior
to its execution.
You can also include an optional file, .dftadvisor_startup, that contains commands to be
executed prior to any other batch or interactive commands. The primary purpose of this file is to
execute Alias commands that tailor the tool’s command language to your needs. Upon
invocation, the tool searches for the startup file in the following locations and in order of
precedence:
1. The local invocation directory
2. Your home directory
The first startup file encountered will be the only one executed if you have startup files in both
locations.
Using the Alias command with a single argument will, if the argument is an aliased command
name, report the name and definition of that command, using Korn-shell syntax:
<alias_cmd>=<alias_definition>
Issuing the command “Help <aliased_cmd>” will report the name of the command and the
definition which you specified via the Alias command when <aliased_cmd> was created. Using
the help command with an aliased command name will generate an Alias report of the following
format:
// alias: <alias_cmd>=<alias_definition>
Arguments
• synonym {!unix_command; | tool_command; | alias_synonym;}
An optional string with a repeatable string that specifies a shorthand name, synonym, for the
specified UNIX or tool command or for a previously-defined alias synonym (which has the
effect of a command). You must separate repeated commands with semicolons.
!unix_command — An optional, repeatable string that consists of any well-formed
UNIX command, with its arguments, or script. You must precede this string with an
exclamation point to differentiate it from a tool-specific command.
tool_command — An optional, repeatable string that consists of any well-formed
DFTAdvisor command and its arguments.
alias_synonym — An optional, repeatable string that consists of any synonym previously
defined with the Alias command.
Examples
The following example defines an aliased command, watch, which uses a formal parameter.
The next line invokes it and supplies the actual parameter:
alias watch !ps -e | egrep $1;
watch netscape
The result of issuing this alias is to list all the process IDs associated with Netscape processes on
the host machine.
The next example defines the new command, findlockup, which searches the current directory
for Verilog files and invokes egrep on each one in turn, looking for and displaying any “lckup”
names:
alias findlockup !find . -name \*.v -print -exec egrep lckup {} \;
You could then use that new command within another Alias command that writes out the
current design:
alias findit write netlist -verilog temp.v -replace; findlockup
This final example defines two aliased commands, invokes them, and requests help on them:
alias wibble !echo arg1 arg2 $1 $2 $3 $4
alias wobble report black box -undefined
wibble one_1 two_2 three_3 four_4
arg1 arg2 one_1 two_2 three_3 four_4
wobble
// Undefined Modules:
// foo
alias wobble
alias
// List of aliased commands:
// wobble=report black box -undefined
// wibble=!echo arg1 arg2 $1 $2 $3 $4
help wobble
// alias: wobble=report black box -undefined
help wibble
// alias: wibble=!echo arg1 arg2 $1 $2 $3 $4
Related Commands
Dofile History
Help System
Because it is not possible to completely identify all control signals, you should only use the
results of this command as a starting point in creating a dofile that defines the clock control
signals, read and write controls in a design. You should use this dofile when DFTAdvisor is
being used for production scan and test logic insertion. Situations where DFTAdvisor may not
be able to identify particular control signals include the following:
• When DFTAdvisor is unable to trace or simulate through complex logic, the tool cannot
identify a top-level pin as a clock. These cases include clocks driven by PLLs or clock
gaters that require simulating a test setup procedure to obtain a sensitizable path to a
top-level pin.
• DFTAdvisor cannot accurately predict the off-state of a clock by observing the flip-flops
it is driving and, therefore, requires the user to verify that the off-state of the
clock/set/reset lines is correct.
Because of these types of issues, this command does not identify all clocks, their offstates, or
controls signals. In this case, you should explicitly add the unidentified clocks using the
Add Clocks command.
If the -Verbose option is specified, the tool issues messages indicating why certain control
signals are not reported as controllable. At the end of the analysis, statistical information
displays, listing the number of primary inputs identified as control signals, their types, and
additional information.
If the -Auto_fix option is specified, all identified primary inputs of control signals are
automatically defined. For example, when a clock is identified, an implicit Add Clocks
command is performed to define the primary input. The default for control signals is report
only.
Note
This command performs the flattening process automatically, if executed prior to
performing flattening.
Caution
This command does not support gated clocks. If a netlist has a gated clock going to two
flip-flops, the tool does not recognize the gated clock when using the command the
-Auto_fix option.
Arguments
• -Report_only
An optional literal that specifies to only identify control signals (does not define the primary
inputs as control signals). This is the invocation default.
• -Auto_fix
An optional literal that specifies to define the primary inputs of all identified control signals
as control signals. For example, when a clock is identified, an implicit Add Clocks
command is performed to define that primary input.
• -Verbose
An optional literal that specifies to display information on control signals (whether they are
identified or not, and why) while the analysis is performed.
Examples
The following example analyzes the control signals, then only provides a verbose report on the
control signals in the design. After examining the transcript, you can then perform another
analysis of the control signals to add them.
analyze control signals -verbose
Related Commands
Add Clocks Report Clocks
Add Read Controls Report Read Controls
Add Write Controls Report Write Controls
Related Commands
Add Pin Constraints Report Testability Analysis
Analyze Output Observe Setup Scan Identification
Related Commands
Add Output Masks Report Testability Analysis
Analyze Input Control Setup Scan Identification
Analyze Testability
Scope: Dft mode
Usage
ANAlyze TEstability [-Scoap_only]
Description
Reports general scannability and testability information, along with calculating the
controllability and observability values for gates.
The Analyze Testability command reports general scannability and testability information
which can help you determine how much partial scan the design may need to achieve high test
coverage.
The scannability and testability information reported includes:
• Statistics about the total number of sequential elements, number of scannable sequential
elements, number of non-scannable sequential elements, and so on
• Number of scannable sequential elements that need to be scanned to break all global
sequential loops
• Number of scannable sequential elements with self loops
• Number of scannable sequential elements required to scan RAM boundaries (if the
design contains RAMs)
• Number of scannable sequential elements required to limit sequential depth and
consecutive self loops
Note
If the design contains sequential loops, the reported sequential depth is estimated.
In addition, this command uses SCOAP testability measures to calculate the controllability and
observability of individual gates which can be reported using the Report Testability Analysis
command. If you use the -Scoap_only switch, this command only calculates the controllability
and observability values.
Arguments
• -Scoap_only
An optional switch that specifies to only compute SCOAP controllability and observability
numbers for use with the Report Testability Analysis command. If this switch is not
specified, these numbers are still calculated, but in addition, scannability and testability
information is calculated and reported.
Examples
The following example shows the default output from the Analyze Testability command. The
controllability and observability numbers are also calculated, but must be reported using the
Report Testability Analysis command (as shown in the next example).
DFT> analyze testability
// Number of sequential instances:
// Total = 751
// Scannable = 319 ( 42.48%)
// Identified = 0 ( 0.00%)
The following example shows the flow of displaying only the controllability values. The report
displays the controllability value for the low logic state (where NC means non-controllable), the
controllability value for the high logic state, the primitive gate type, the gate identification
number, and the pathname to the gate.
Related Commands
Add Test Points Setup Scan Identification
Report Testability Analysis
Arguments
• -Instance [ins_pathname]
A switch that specifies for the tool to undo the effect of the Add Black Box command on all
instance-based blackboxes. This is the default if no ins_pathname is given. You can
optionally specify an instance pathname to undo a single instance-based blackbox.
• -Module [module_name]
A switch that specifies for the tool to undo the effect of the Add Black Box command on all
module-based blackboxes. This is the default if no module_name is given. You can
optionally specify a module name to undo a single module-based blackbox.
• -All
A switch that specifies for the tool to undo the effect of the Add Black Box command on all
blackboxes.
Example
The following example adds the black box for module core then undoes all blackboxes that
were defined.
add black box -module core 1
delete black box -all
Related Commands
Add Black Box Report Black Box
Delete Tied Signals
Examples
The following example changes the default settings for test logic and then removes those
settings. The following two reports show the results of each command.
add buffer insertion 5 ten tclk -model buf1a
report buffer insertion
scan_enable <infinity>
scan_clock <infinity>
test_enable 5 buf1a
test_clock 5 buf1a
scan_master_clock <infinity>
scan_slave_clock <infinity>
hold_enable <infinity>
Related Commands
Add Buffer Insertion Report Buffer Insertion
Related Commands
Add Cell Models Set Test Logic
Report Cell Models
Related Commands
Add Clock Groups Report Clock Groups
Add Clocks Report Clocks
Delete Clocks
Scope: Setup mode
Usage
DELete CLocks primary_input_pin… | -All
Description
Removes primary input pins from the clock list.
The Delete Clocks command removes the specified primary input pins from the clock list.
Deleted clocks are also removed from the default clock group, all_clocks. If you remove an
equivalence pin from the clock list, DFTAdvisor automatically removes all of the equivalent
pins from the clock list.
Arguments
• primary_input_pin
A repeatable string that specifies the list of primary input pins that you want to delete from
the clock list.
• -All
A switch that deletes all pins from the clock list.
Examples
The following example deletes an incorrect clock from the clock list:
add clocks 1 clock1
add clocks 1 clock2
delete clocks clock1
Related Commands
Add Clocks Report Clocks
o If this argument is a scan model, then the -Output switch is required. Because you
specified a scan model, you can only remove the scan output pin mapping.
• -Instance | -Module
An optional switch that specifies the type of the object_name argument. If neither switch is
specified, the object_name is a model (the default).
o If you specify -Instance and the instance is primitive, then only the named instance
has its mapping changed.
o If you specify -Instance and the instance is hierarchical, then all instances under that
instance matching the -Nonscan_model or (for output mapping) matching the
-Scan_model have their mapping changed.
o If you specify -Module, then for all occurrences of that module, all instances within
that module that match the -Nonscan_model or (for output mapping) matching the
-Scan_model have their mapping changed.
• -Nonscan_model nonscan_model_name
An optional switch and string pair that specifies the name of the non-scan model that you
want to remove the scan and pin mapping. This argument is required only if you specify
-Instance or -Module switch; otherwise, you can specify the non-scan model in the
object_name argument.
• -Scan_model scan_model_name
An optional switch and string pair that specifies the name of the scan model that is mapped
to the specified non-scan model. This argument is required only if you want to constrain the
removing of the scan mapping or are just removing the scan output pin mapping based on
-Instance or -Module.
• -Output [scan_ouput_pin_name]
An optional switch and optional string pair that specifies to remove the scan output pin.
Specifying just the -Output switch removes all changed scan output pins for the specified
scan model, while specifying the switch with a pin name removes the mapping for only scan
models that use that pin for the scan output.
Examples
The following example removes the scan and output mapping for all occurrences of the fd1 non-
scan model in the design:
delete mapping definition fd1
The following example removes the scan and output mapping for each occurrence of the fd1
non-scan model that is mapped to the fd1s scan model and has the scan output pin mapped to
“qn”:
delete mapping definition fd1 -scan_model fd1s -output qn
The following example removes the scan and output mapping for each occurrence of the fd1
non-scan model under the hierarchical instance “/top/counter1”:
delete mapping definition /top/counter1 -instance -nonscan_model fd1
The following example removes the scan and output mapping for each occurrence the fd1 non-
scan model that is mapped to the fd1s2 scan model in the “counter” module and for all
occurrences of that module in the design:
delete mapping definition counter -module -nonscan_model fd1 -scan_model fd1s2
The following example removes the scan output pin mapping and returns it to the library default
for all occurrences of the fd1s scan model in the design:
delete mapping definition fd1s -output
The following example removes the scan output pin mapping and returns it to the library default
for all occurrences of the fd1s scan model in the design with the scan output pin set to “qn”:
delete mapping definition fd1s -output qn
Related Commands
Add Mapping Definition Report Mapping Definition
Delete Nofaults
Scope: Setup mode
Usage
DELete NOfaults {-All | {modulename -Module} | {object_expression… [-PIN | -Instance]}}
[-Stuck_at {01 | 0 | 1}]
Description
Removes the no-fault settings from either the specified pin or instance pathnames.
The Delete Nofaults command deletes the nofault settings which were previously specified with
the Add Nofaults command. You can optionally specify nofault settings that have a specific
stuck-at value. If you do not specify a stuck-at value when deleting a nofault setting, the
command deletes both the “stuck-at-0” and “stuck-at-1” nofault settings.
If the pathname is a pin, then DFTAdvisor removes the nofault on only that pin. If the pathname
is an instance, then the tool removes all pin nofaults on the top-level of that instance, along with
all the pin faults underneath that instance (if it is a hierarchical instance). If the pathname is a
module, then the tool removes all pin nofaults on the top-level of the module, along with all the
pin nofaults on all instances and pins underneath that module for every occurrence of that
module in the design.
You can use the Report Nofaults command to display all the current nofault settings.
Arguments
• -All
A switch that deletes all nofault settings.
• modulename
A string that specifies the name of a module from which you want to delete nofault settings.
You must include the -Module switch when you specify a module name.
• -Module
A switch that specifies interpretation of the modulename argument as a module pathname.
All instances of these modules are affected. You can use the asterisk (*) and question mark
(?) wildcards for the modulename argument, and the tool deletes the nofault for all
matching modules or library models.
• object_expression
A string representing a list of pathnames of instances or pins from which you want to delete
nofault settings. The string may include any number of embedded asterisk (*) or question
mark (?) wildcard characters. The asterisk matches any sequence of characters (including
none) in a name, and the question mark matches any single character.
Pin pathnames must be ATPG library cell instance pins, also referred to as design level pins.
If the object expression specifies a pin within an instance of an ATPG library model, the
tool ignores it. By default, pin pathnames are matched first. If a pin pathname match is not
found, the tool next tries to match instance pathnames. You can force the tool to match only
pin pathnames or only instance pathnames by including the -Pin or -Instance switch after the
object_expression.
• -Pin
An optional switch that specifies to use the preceding object expression to match only pin
pathnames; the tool will then delete nofault settings from all the pins matched.
• -Instance
An optional switch that specifies to use the preceding object expression to match only
instance pathnames; the tool will then delete nofault settings from all boundary and internal
pins of the instances matched.
• -Stuck_at 01 | 0 | 1
An optional switch and literal pair that specifies the stuck-at values that you want to delete.
The valid stuck-at literals are as follows:
01 — A literal that specifies to delete both the “stuck-at-0” and “stuck-at-1” nofault
settings. This is the default.
0 — A literal that specifies to only delete the “stuck-at-0” nofault settings.
1 — A literal that specifies to only delete the “stuck-at-1” nofault settings.
Examples
The following example will delete an extra added no fault instance.
add nofaults i_1006 i_1007 i_1008 -instance
report nofaults
USER : 01 i_1006/IN
USER : 01 i_1006/OUT
USER : 01 i_1007/IN
USER : 01 i_1007/OUT
USER : 01 i_1008/IN
USER : 01 i_1008/OUT
Related Commands
Add Nofaults Report Nofaults
To display the current non-scan instance list, use the Report Sequential Instances command.
Arguments
• pathname
A repeatable string that specifies either the pathnames of the instances or signals that control
instances that you want DFTAdvisor to delete from the non-scan instance list.
• instance_expression
A string representing a list of instances within the design. The string instance_expression is
defined as:
{ string | string * } ...
The asterisk (*) is a wildcard that allows you to match many instances in a design. Any
expression that does not contain an asterisk (*) will match exactly zero or one instance.
This argument does not support pathnames to objects below the instance level of an ATPG
library model. You can use a pathname expression to select several instances and the tool
will then delete nonscan instances for all the pins on those instances; but if the expression
specifies a location below the instance level of an ATPG library model, the tool will issue an
error message.
Related Commands
Add Nonscan Instances Setup Scan Identification
Report Sequential Instances Set Nonscan Handling
DFTAdvisor decides whether to place individual instances in the scan instance list based on
many parameters including the scan setup settings. For example, if the scan setup has been
changed to All with the command, then DFTAdvisor is forced to place all available sequential
instances into the scan instance list.
Arguments
• model_name
A repeatable string that specifies the model names that you want to delete from the non-scan
model list. Enter the model names as they appear in the DFT library.
• -All
A switch that specifies to delete all models from the non-scan model list.
• -Class User | System | Full
An optional switch and literal pair that specifies the class code of the non-scan model that
you specify. The valid literal names are as follows:
User — A literal that specifies that the list of non-scan models were previously added by
using the Add Nonscan Models command. This is the default class.
System — A literal that specifies that the list of non-scan models were added by
DFTAdvisor.
Full — A literal that specifies that the list of non-scan models consist of both the user
and system class.
Examples
The following example deletes an extra sequential non-scan model called d_flip_flop2, then
performs a full scan identification run thereby allowing DFTAdvisor to treat the non-scan
model d_flip_flop2 as a scan cell during the identification process:
set system mode dft
add nonscan models d_flip_flop1 d_flip_flop2
delete nonscan models d_flip_flop2
setup scan identification full_scan
run
Related Commands
Add Nonscan Instances Report Nonscan Models
Add Nonscan Models Set Nonscan Handling
The asterisk (*) is a wildcard that allows you to match many instances in a design. Any
expression that does not contain an asterisk (*) will match exactly zero or one instance.
This argument does not support pathnames to objects below the instance level of an ATPG
library model. You can use a pathname expression to select several instances and the tool
will then delete notest points for all the pins on those instances; but if the expression
specifies a location below the instance level of an ATPG library model, the tool will issue an
error message.
• -Observe_scan_cell
An optional switch that specifies the scan cell instance named in the instance_pathname
argument is to be removed from the no test point list.
• -ALL
A switch that deletes all previously-added circuit points and critical paths.
• -Path critical_pathname
A required switch and name pair that specifies to delete the named critical path. You can list
the names of the critical paths using the Report Notest Points command with the -Paths
switch. For more information on the format of the file, refer to “The Path Definition File” in
the Scan and ATPG Process Guide.
• -ALL_Paths
A required switch that specifies to delete all critical paths.
Examples
The following example deletes an incorrect notest circuit point and corrects it with a new circuit
point before performing testability analysis:
set system mode dft
add notest points tr_i ts_i
delete notest points tr_i
add notest points tr_io
Related Commands
Add Notest Points Report Notest Points
Related Commands
Add Output Masks Report Output Masks
Analyze Output Observe Setup Output Masks
You can set a default pin constraint for all input and bidirectional pins using the Setup Pin
Constraints command. The pin constraints set by the Setup Output Masks command can have
their values overridden with the Add Pin Constraints command. You can remove an override of
a default pin constraint using the Delete Pin Constraints command. To remove the default pin
constraint for all input pins, you should use the Setup Pin Constraints command with the None
literal.
Arguments
• primary_input_pin
A repeatable string that specifies a list of primary input pins whose pin constraints you want
to delete.
• -All
A switch that specifies to delete the pin constraints of all primary input pins.
Examples
The following example adds two pin constraints and then deletes one of them:
add pin constraints ph1 c0
add pin constraints ph2 c0
delete pin constraints ph1
Related Commands
Add Pin Constraints Setup Pin Constraints
Report Pin Constraints
Arguments
• primary_input_pin
A repeatable string that specifies a list of primary input pins whose equivalence
specifications you want to delete.
• -All
A switch that specifies to delete all pin equivalence effects.
Examples
The following example deletes an incorrect pin equivalence specification and adds the correct
one:
add pin equivalences indata2 -invert indata4
delete pin equivalences indata2
add pin equivalences indata3 -invert indata4
Related Commands
Add Pin Equivalences Report Pin Equivalences
Related Commands
Add Primary Inputs Write Primary Inputs
Report Primary Inputs
Related Commands
Add Primary Outputs Write Primary Outputs
Report Primary Outputs
Related Commands
Add Read Controls Report Read Controls
Related Commands
Add Scan Chains Ripup Scan Chains
Report Scan Chains
Related Commands
Add Scan Groups Report Scan Groups
The asterisk (*) is a wildcard that allows you to match many instances in a design. Any
expression that does not contain an asterisk (*) will match exactly zero or one instance.
This argument does not support pathnames to objects below the instance level of an ATPG
library model. You can use a pathname expression to select several instances and the tool
will then delete scan instances for all the pins on those instances; but if the expression
specifies a location below the instance level of an ATPG library model, the tool will issue an
error message.
• -INStance | -Control_signal | -Module
A switch that specifies whether the pathnames are instances, pins (control signals), or
modules. An example Verilog module is “module clkgen (clk, clk_out, …)” where clkgen is
the module name. You can only use the -Control_signal option in Dft mode. The default is
-Instance.
• -All
A switch that specifies to delete all instances from the user-identified scan instance list. This
switch does not affect the instances in the system-identified scan instance list.
Examples
The following example deletes an extra sequential scan instance that was defined to be treated
as a scan cell; thus, the deleted instance is no longer included in the user-identified scan instance
list:
set system mode dft
add scan instances i_1006 i_1007 i_1008
delete scan instances i_1007
Related Commands
Add Scan Instances Report Sequential Instances
Related Commands
Add Scan Instances Report Scan Models
Add Scan Models
Related Commands
Add Scan Partition Report Scan Partitions
Related Commands
Add Scan Pins Report Scan Pins
Related Commands
Add Seq_transparent Constraints Report Seq_transparent Constraints
Related Commands
Add Sub Chains Report Sub Chains
Related Commands
Add Subchain Clocks Report Subchain Clocks
Related Commands
Add Subchain Group Report Sub Chains
Add Sub Chains Report Subchain Groups
Delete Sub Chains
Examples
The following example creates the definitions for three test points (one observe and two
control), then removes two of the definitions:
add cell models and2a -type and
add test point /I_6_16/cp control and2a in2
add test point /I_7_16/q observe out1
add test point /I_8_16/cp control and2a in3
delete test points /I_6_16/cp /I_7_16/q
The Delete Test Points command only specifies the testpoint_pin_names of the test points, not
the type. This example includes both control and observe test points and deletes them by
default.
Related Commands
Add Test Points Setup Scan Identification
Report Test Logic Setup Test_point Identification
Report Test Points Setup Test_point Insertion
Setup Pin Constraints
• -Pin
An optional switch that specifies that the floating_object_name argument that you provide is
a floating pin name.
Examples
The following example deletes the tied value from the user-class tied net “vcc”; thereby leaving
“vcc” as a floating net:
add tied signals 1 vcc vdd
delete tied signals vcc -class user
Related Commands
Add Tied Signals Report Tied Signals
Delete Black Box Setup Tied Signals
Related Commands
Add Write Controls Report Write Controls
Dofile
Scope: All modes
Usage
DOFile filename [-History]
Description
Executes the commands contained within the specified file.
The Dofile command sequentially executes the commands that are contained in a file that you
specify. This command is especially useful when you must issue a series of commands. Rather
than executing each command separately, you can place them into a file in their desired order,
and then execute them by using the Dofile command. You can also place comment lines in the
file by starting the line with a double slash (//); DFTAdvisor handles these lines as comments
and ignores them.
The Dofile command sends each command expression, in order, to the tool which in turn
displays each command from the file before executing it. If DFTAdvisor encounters an error
due to any command, the Dofile command stops and displays an error message. You can enable
the Dofile command to continue regardless of errors by setting the Set Dofile Abort command
to Off.
Arguments
• filename
A required string that specifies the name of the file that contains the commands you want
DFTAdvisor to execute.
• -History
An optional switch that specifies for the tool to add the commands from a dofile to the
command line history list. By default, the commands in a dofile are not inserted into the
history list, but the Dofile command itself is added to the list.
Examples
The following example executes all the commands from the command_file file:
dofile command_file
Related Commands
History Set Command Editing
Save History Set Dofile Abort
Echo
Scope: All modes
Usage
ECHo “string” [{> | >>} file_pathname]
Description
Issues a user-defined string to the transcript.
The Echo command issues a user-defined string to the transcript or to a pathname, if you use
one of the file redirection operators.
Note
Commands that use either the > or >> file redirection operator are first checked for
correctness. Syntax errors are reported to the display prior to the command’s execution.
The redirection operator does not hide these errors.
Arguments
• string
A required string. The string that you want echoed to the transcript. Double quotes are
required if the string contains spaces or special characters.
• > file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
creating or replacing the contents of file_pathname.
• >> file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
appending to the contents of file_pathname.
Examples
The following example redirects output from several commands into a single output file,
my_scan_report. The first command creates or replaces the my_scan_report file. The second
and following commands append to the same file.
echo "----------- scan cells ------------" > my_scan_report
report scan cells >> my_scan_report
echo "----------- scan chains ----------" >> my_scan_report
report scan chains >> my_scan_report
Related Commands
History Report Scan Chains
Report Circuit Components Report Scan Groups
Report Dft Check Report Scan Pins
Report DRC Rules Report Sequential Instances
Report Environment Report Statistics
Report Primary Inputs Report Sub Chains
Report Primary Outputs Report Test Logic
Report Scan Cells Report Test Points
Exit
Scope: All modes
Usage
EXIt [-Discard]
Description
Terminates the current DFTAdvisor session.
The Exit command terminates DFTAdvisor and returns to the operating system. You should
either save the current netlist design before exiting DFTAdvisor or specify the -Discard switch
to not save the netlist.
If you are operating in interactive mode (not running a dofile) and you neither saved the current
netlist or used the -Discard option, DFTAdvisor displays a warning message, and you can
continue the session and save the netlist before exiting.
If you plan to load the scan design into Tessent FastScan, you may also want to save the ATPG
setup to identify the scan chains before exiting.
Arguments
• -Discard
An optional switch that explicitly specifies to not save the current netlist and terminate the
DFTAdvisor session.
Examples
The following example exits DFTAdvisor after performing scan chain insertion, and saving the
test procedure, dofile, and new netlist for the inserted scan chains:
add clocks 1 clk1
add clocks 0 clk0
set system mode dft
run
insert test logic
write atpg setup scan -replace
write netlist scan.edif -edif
exit
Related Commands
Write Atpg Setup Write Scan Identification
Write Netlist
• -Pin
An optional switch that matches only pin pathnames (any pin direction). The following
optional pin filters restrict which pins are matched:
INPut — Match only input pin pathnames.
OUtput — Match only output pin pathnames.
INOut — Match only bidirectional pin pathnames.
ALLIn — Match both input and bidirectional pin pathnames.
ALLOut — Match both output and bidirectional pin pathnames.
• -Cell
An optional switch that finds all library cell (model) names matching the specified regular
expression.
• -Module
An optional switch that finds all netlist module names matching the specified regular
expression.
• > file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
creating or replacing the contents of file_pathname.
• >> file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
appending to the contents of file_pathname.
Examples
The following examples display object pathnames for various input wildcard expressions, given
a netlist with the following instance hierarchy:
/
tiny_i
U5
ret_i
intreg1_reg_0 ... intreg1_reg_31
add_20
U1_0 ... U1_3
add_30
U5 ... U12
mul_18
U5 ... U868
FS
U5 ... U33
mul_19
FS
U5 ... U278
U5 ... U181
mul_22
U5 ... U735
FS
U15 ...
and assuming the U5 instances all reference the following library cell:
model LSR2BUFA(Q, QN, S, R, G, SD, RD) (
input(S, R, G, SD, RD) ()
output(Q) (primitive = _buf UP1 (QT, Q);)
output(QN) (primitive = _buf UP2 (QNT, QN);)
intern(QT_int) (instance = LSI_LSR2 UD1 (QT_int, S, R, G, SD, RD);)
intern(QNT_int) (instance = LSI_LSR2N UD2 (QNT_int, S, R, G, SD, RD);)
intern(QT) (instance = LSI_NOTI UD3 (QT, QT_int);)
intern(QNT) (instance = LSI_NOTI UD4 (QNT, QNT_int);)
)
Example 1:
SETUP> find design names /ret_i/add_2* -instance -design -hier
// Note: Matched 4 names
/ret_i/add_20/U1_0
/ret_i/add_20/U1_1
/ret_i/add_20/U1_2
/ret_i/add_20/U1_3
Example 2:
SETUP> find design names /ret_i/add_2* -instance -netlist -hier
// Note: Matched 5 names
/ret_i/add_20
/ret_i/add_20/U1_0
/ret_i/add_20/U1_1
/ret_i/add_20/U1_2
/ret_i/add_20/U1_3
Finds instance add_20 under /ret_i/, and also descends the hierarchy to find all netlist instances
under /ret_i/add_20/.
Example 3:
This example shows that -Local doesn’t descend the hierarchy to find more matches as the
previous example does.
Example 4:
There are no instances of a library cell under /ret_i/ with instance name starting with add_2.
Example 5:
Note
/ret_i/gt_68_2 did not match because the ‘?’ in the wildcard expression requires another
character after the ‘_2’.
Example 6:
Example 7:
Example 8:
Example 9:
/ret_i/mul_18/U5/UD3
/ret_i/mul_18/U5/UD4
Example 10:
Help
Scope: All modes
Usage
HELp [command_name] [-MANual]
Description
Displays the usage syntax and system mode for the specified command.
The Help command displays useful information for a selected command. You can display the
usage and syntax of a command by typing Help and the command name. You can display a list
of certain groups of commands by entering Help and a keyword such as Add, Delete, Save, and
so on.
Arguments
• command_name
An optional string that consists of any keyword or command. You can use minimum typing
for the command name. If you do not supply a command_name, the default display is a list
of all the valid command names.
• -MANual
An optional string that specifies to also display the reference manual description for the
specified command. The effect is the same as if you executed the menu item, Help > On
Commands > Open Reference Page, from the GUI.
If you type HELp and include only the -MANual switch, the tool opens the product
bookcase, giving access to all the manuals for that product group.
Examples
The following example displays the usage and system mode for the Report Primary Inputs
command:
help report primary inputs
// Report primary inputs
// usage: REPort PRimary Inputs [-Class <User|System|Full>]
[-All | pin_pathname...]
// legal system modes: ALL
History
Scope: All modes
Usage
HIStory [list_count] [-Nonumbers] [-Reverse] [{> | >>} file_pathname]
Description
Displays a list of previously-executed commands.
The History command is similar to the Korn shell (ksh) history command in UNIX. By default,
this command displays a list of all previously-executed commands, including all arguments
associated with each command, starting with the oldest.
Note
The HISTFILE and HISTSIZE ksh environment variables do not control the command
history of the tool. The Save History command controls where the tool stores the history
file.
You can perform command line editing if you set the VISUAL or EDITOR ksh environment
variable to either emacs, gmacs, or vi editing. Refer to the ksh(1) man page for specifics on the
various editing modes. Within the tool, you can override the ksh environment variable settings
by issuing the Set Command Editing command.
Each command line in the history list is preceded by a leading number indicating the order in
which the commands were entered.
Arguments
• list_count
An optional integer that specifies for the tool to display only the specified number
(list_count) of the most recently executed commands. If no list_count is specified, the tool
displays all previously-executed commands.
• -Nonumbers
An optional string that specifies for the tool to display the history list without the leading
numbers. This is useful for creating dofiles. The default displays the leading numbers.
• -Reverse
An optional switch that specifies for the tool to display the history list starting with the most
recent command rather than the oldest.
• > file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
creating or replacing the contents of file_pathname.
• >> file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
appending to the contents of file_pathname.
Examples
The following command displays the history list with leading numbers, starting with the oldest
command.
history
1 help hist
2 dof instructor/fault.do
3 set system mode atpg
4 set fault type stuck
5 add faults -all
6 run
7 report statistics
8 report faults -class ATPG_UNTESTABLE
9 analyze fault /I$20/en -stuck_at 1
10 set system mode setup
11 set system mode atpg
12 set fault type iddq
13 add faults -all
14 run
15 report statistics
16 history
Related Commands
Echo Set Command Editing
Save History
inserted elements can have an arbitrary distribution in the circuit and can therefore cause
uniquification of modules.
There could be reasons to use flat partitioning, depending on your design. For instance, flat
partitioning places cells that have direct access to primary outputs at the end of the chains. This
can reduce the number of scan output pins that DFTAdvisor creates.
Hierarchical partitioning can cause an increased number of scan inputs and outputs for the sub-
modules, which could be an issue for your design. If this is the case, use the -Tolerance switch.
Specifying an integer percentage of tolerance allows DFTAdvisor to create chain lengths
shorter or longer than their ideal length (total number of cells divided by the specified number
of chains), which can reduce the number of chains per sub-module, and, thus, the
interconnections between sub-modules.
One possible result of using a tolerance other than 0 is a variation of the number of scan chains
at the top level. The differences from the ideal length for each chain accumulate at the last chain
during the insertion process. A specified high tolerance can cause the removal or the unwanted
lengthening of the last chain. To see the before and after effect of the -Tolerance option, use the
Report Scan Chains command.
Arguments
• filename -Fixed
An optional string and associated optional switch that specify the name of the ASCII file
that lists the scan instances that you want DFTAdvisor to stitch together. This file can
contain information regarding scan cell ordering along with which instances are to be in
each scan chain.
Note
If you use this file, it must contain all instances you want stitched. If you do not specify a
filename, DFTAdvisor stitches all non-scan cells that it has identified and mapped to scan
cells into a scan chain using the settings of the other Insert Test Logic arguments.
The -Fixed switch specifies for DFTAdvisor to stitch the scan instances in the fixed order
that is given in the filename. The default scan cell ordering is based on hierarchical rules, but
within a hierarchical block the scan cell ordering is random. When using the -Fixed option,
it also ignores certain scan input/output mapping performed by the Add Scan Pins
command. For more information, refer to “Naming Scan Input and Output Ports” in the
Scan and ATPG Process Guide.
The filename that you specify must list one instance per line and use the following format
(all on one line):
instance_pathname cell_id chain_id [&sub_chain_name]
[{+|-}[lockup_latch_model]]
instance_pathname — A string that specifies the name of the non-scan cell that you
want DFTAdvisor to put in the scan chain.
• -Test_point ON | OFf
An optional switch and literal pair that specifies whether DFTAdvisor adds the identified
test logic and test points into the design. The valid literals are as follows:
ON — A literal that enables DFTAdvisor to add the identified test logic and test points
into the design. This is the default.
OFf — A literal that disables DFTAdvisor from adding the identified test logic and test
points into the design.
• -Ram ON | OFf
An optional switch and literal pair that specifies whether DFTAdvisor adds the identified
test logic gates that are necessary to allow the ATPG tools access to the write control lines
of the RAMs. The valid literals are as follows:
ON — A literal that enables DFTAdvisor to add the identified test logic gates for RAM
write control line access. This is the default.
OFf — A literal that disables DFTAdvisor from adding the identified test logic gates for
RAM write control line access.
• -NOlimit
An optional switch specifying that the scan chain has no limit on the number of scan cells it
contains. This is the default.
• -MAx_length integer
An optional switch and integer pair that specifies the maximum number of scan cells that
DFTAdvisor can stitch into a scan chain. DFTAdvisor evenly divides the scan cells into
scan chains that are smaller than the max_length integer. Final results depend upon the
number of scan candidates.
• -NUmber integer
An optional switch and integer pair that specifies the exact number of scan chains that you
want DFTAdvisor to insert. Final results depend upon the number of scan candidates. The
default number of chains is 1.
• -CLock Nomerge | Merge
An optional switch and literal pair that specifies whether DFTAdvisor uses different clocks
on the same scan chain. The two valid literals are as follows:
Nomerge — A literal that disables the use of different clocks on the same scan chain.
This is the default.
Merge — A literal that enables the use of different clocks on the same scan chain.
• -Edge Nomerge | Merge
An optional switch and literal pair that specifies whether DFTAdvisor merges stable high
chains into stable low chains. The two valid literals are as follows:
Nomerge — A literal that specifies to not merge stable high chains into stable low
chains. This is the default.
Merge — A literal that specifies to merge stable high chains into stable low chains.
• -COnnect ON | OFf | Tied | Loop | Buffer
An optional switch and literal pair that specifies whether DFTAdvisor stitches the scan cells
together into a scan chain. The valid literals for stitching the scan chain are as follows:
ON — A literal that specifies for DFTAdvisor to replace the identified non-scan cells
with their corresponding scan replacements and to stitch those scan cells together into
a scan chain. This is the default.
OFf — A literal that specifies for DFTAdvisor to replace the identified non-scan cells
with their corresponding scan replacements, but not stitch those scan cells together
into scan chains.
Tied — A literal that specifies for DFTAdvisor to replace the identified non-scan cells
with their corresponding scan replacements, but not stitch those scan cells together
into scan chains. This option has DFTAdvisor tie the input/output scan pins to
ground.
Loop — A literal that specifies for DFTAdvisor to replace the identified non-scan cells
with their corresponding scan replacements, but not stitch those scan cells together
into scan chains. This option has DFTAdvisor connect the scan_out pin to its own
scan_in pin as a self-loop.
Buffer — A literal that specifies for DFTAdvisor to replace the identified non-scan cells
with their corresponding scan replacements, but not stitch those scan cells together
into scan chains. This option has DFTAdvisor connect the scan_out pin to its own
scan_in pin as a self-loop with a buffer in between.
• -Output Share | New
An optional switch and literal pair that specifies how DFTAdvisor creates scan out ports on
modules. The valid literals are as follows:
Share — A literal specifying that DFTAdvisor may use an existing module output port
on modules for scan out, if that port is directly connected to the scan out of a scan
cell. This is the default.
New — A literal specifying that DFTAdvisor should always create a new output port for
scan out.
Note
If you want DFTAdvisor to only create new scan output ports on the top-level module,
use the -NEw_scan_po switch, instead of the -Output switch.
• -NEw_scan_po
An optional switch that specifies for DFTAdvisor to create new scan primary output pins
even though existing functional outputs are available to use as scan outputs. The switch is a
special case of the -Output switch used with “New” literal, as it performs new scan output
port creation only on the top-level module, instead of all modules.
• -Keep_original_net
An optional switch that specifies for DFTAdvisor to insert a buffer in the scan path, between
the last scan cell at the top-level and the top-level scan output pin, when the scan cell output
has no connection to top-level but has a functional connection to other logic. The buffer
insertion is done to prevent renaming the original net that the scan cell is connected to the
other logic with. When this switch is not specified, DFTAdvisor renames the original net
same as the primary output pin that it creates as scan output port.
Examples
The following example identifies 50 percent of the scannable sequential instances during the
Run command, and then uses the Insert Test Logic command to stitch them together into scan
chains with a maximum length of 10 scan cells each:
add clocks 0 clock
set system mode dft
setup scan identification sequential atpg -percent 50
run
insert test logic -scan on -max_length 10
The following example causes the insertion of three scan chains using hierarchical partitioning
with a 5 percent tolerance:
insert test logic -clock merge -edge merge -number 3 -hierarchical on
-tolerance 5
Related Commands
Add Scan Instances Setup Scan Identification
Add Scan Pins Setup Scan Insertion
Add Test Points Setup Test_point Identification
Report Scan Chains Setup Test_point Insertion
Set Test Logic
Printenv
Scope: All modes
Usage
PRIntenv
Description
Prints out the values of the UNIX variables in the environment.
The DFTAdvisor Printenv command allows the UNIX printenv command to be available as a
common DFT command, for convenience in displaying UNIX environment variables. UNIX
environment variables are automatically available as variable references within DFTAdvisor.
For information on how to define, reference, and report on a variable’s value, see the Report
Variables command.
Examples
The following example prints out the values of the UNIX variables in the environment:
printenv
Related Commands
Report Variables
Read Procfile
Scope: All modes except Setup mode
Usage
REAd PRocfile proc_filename
Description
Reads the specified test procedure file.
The Read Procfile command specifies for the tool to read the test procedure file. The tool
merges the new procedure and timing data contained in the file with the existing data loaded
from previously-read test procedure files. Information loaded with this command is used by the
Write Atpg Setup command.
Arguments
• proc_filename
A required path and filename of the test procedure file to read.
Examples
The following example reads the test procedure file specified:
read procfile my_file.proc
Related Commands
Add Scan Groups Write Atpg Setup
Report Procedure Write Procfile
Report Timeplate
For module-based blackboxes, the tool displays the string MODULE followed by the name of
the module and the default tie value (0, 1, X, or Z). The tool then displays a list of module pins.
For each pin, the tool displays either SYSTEM or USER followed by the direction type of the
pin (Inout or Output), the name of the pin, and its tied value. SYSTEM declares that the pin is
tied to the default value by the system, while USER declares that you explicitly tied the pin to
the specified value.
For instance-based blackboxes, the report replaces the string MODULE with INSTANCE to
explicitly declare that it is an instance-based blackbox.
Arguments
• -Instance [ins_name]
A switch and optional string that specify for the tool to display information on instance-
based blackboxes. If you do not supply an ins_name, DFTAdvisor displays information on
all instance-based blackboxes. If you specify an instance pathname, it reports on that single,
instance-based blackbox.
• -Module [module_name]
A switch and optional string that specify for the tool to display information on module-
based blackboxes. If you do not supply a module_name, DFTAdvisor displays information
on all module-based blackboxes. If you specify a module_name, it reports on that single,
module-based blackbox.
• -All
A switch that specifies for the tool to display information on all defined blackboxes and
undefined models. This is the default.
• -Undefined
A switch that specifies for the tool to display information on undefined models which have
not yet been blackboxed. Use this switch to determine whether your design is complete, or is
missing library models. If you intend to blackbox undefined models, this report allows you
to verify that only the intended models are undefined.
• > file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
creating or replacing the contents of file_pathname.
• >> file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
appending to the contents of file_pathname.
Examples
The following example defines module- and instance-based blackboxes, then reports on them.
add black box -module core -pin do1 0 -pin io1 1
add black box -instance core1 1 -pin do0 0 -pin io0 0
report black box -all
MODULE: core (default tie value = X)
SYSTEM: Output pin do0 tied to X
USER: Output pin do1 tied to 0
SYSTEM: Inout pin io0 tied to X
USER: Inout pin io1 tied to 1
INSTANCE: core1 (default tie value = 1)
USER: Output pin do0 tied to 0
SYSTEM: Output pin do1 tied to 1
USER: Inout pin io0 tied to 0
SYSTEM: Inout pin io1 tied to 1
Related Commands
Add Black Box Report Tied Signals
Delete Black Box
Related Commands
Add Buffer Insertion Delete Buffer Insertion
Examples
The following example displays a list of all added cell models:
add clocks 0 clk
set test Logic -set on -re on -clock on
set system mode dft
report dft check
add cell models and2 -type and
add cell models or2 -type or
add cell models mux21h -type mux s a b
add cell models nor2 -type nor
report cell models
insert test logic
Related Commands
Add Cell Models Set Test Logic
Delete Cell Models
When you use the -Instances switch, the command prints out instance names, module names,
and the level of hierarchy at which they exist. The default formatting is Indent. Note that the
tool prints the string -top- as the name for the top-level instance.
When you use the -Modules switch, the command prints out the module names and the number
of instantiations of each module.
Arguments
• -INStances [-INDent | -Noindent] [-Level integer]
An optional switch with an optional switch and an optional switch and integer pair that
specify to report on the module instances in the design, based on the design hierarchy. This
is the invocation default.
-INDent — An optional switch that specifies to print the report using code-like
indention. This switch works only with the -Instances switch. -Indent is the default.
-Noindent — An optional switch that specifies to print the report without using
indention. This switch works only with the -Instances switch.
-Level — An optional switch and integer pair that specifies to filter the printing based on
the hierarchy level specified by integer. This switch works only with the -Instances
switch.
integer — An optional integer that specifies the hierarchy level at which you want
the report to start. The report will show all instances whose level number is
greater than integer; that is, levels that are at or lower in the hierarchy than
integer. The default value for integer is 0, the top level.
• -Modules
An optional switch that specifies to report on the modules, listing their names and the
number of instantiations of each module in the design.
• > file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
creating or replacing the contents of file_pathname.
• >> file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
appending to the contents of file_pathname.
Example 1
The following example displays a circuit component report, in indented format, of instances at
and below level 0 in the hierarchy:
report circuit components
------------------------------------------------------------
Output Format: InstanceName (ModuleName) [HierarchyLevel]
------------------------------------------------------------
-top- (m8051) [0]
u10 (m3s018bo) [1]
u11 (m3s019bo) [1]
u5 (m3s006bo) [1]
u4 (m3s005bo) [1]
u3 (m3s004bo) [1]
u14 (m3s025bo) [1]
u13 (m3s023bo) [1]
u9 (m3s015bo) [1]
u4 (m3s016bo) [2]
u3 (m3s016bo) [2]
u2 (m3s016bo) [2]
u1 (m3s016bo) [2]
u12 (m3s020bo) [1]
u1 (m3s014bo) [2]
u7 (m3s008bo) [1]
u2 (m3s039bo) [2]
u1 (m3s009bo) [2]
u6 (m3s007bo) [1]
u2 (m3s003bo) [1]
u15 (m3s028bo) [1]
u8 (m3s010bo) [1]
select_program_source_gt_301 (m3s010bo_DW01_cmp2_8_0) [2]
u2 (m3s013bo) [2]
u1 (m3s011bo) [2]
u1 (m3s001bo) [1]
Example 2
The following example displays a circuit component report, in non-indented format, of
instances at and below level 1 in the hierarchy:
report circuit components -instance -noindent -level 1
------------------------------------------------------------
Output Format: InstanceName (ModuleName) [HierarchyLevel]
------------------------------------------------------------
u10 (m3s018bo) [1]
u11 (m3s019bo) [1]
u5 (m3s006bo) [1]
u4 (m3s005bo) [1]
u3 (m3s004bo) [1]
u14 (m3s025bo) [1]
u13 (m3s023bo) [1]
u9 (m3s015bo) [1]
u4 (m3s016bo) [2]
u3 (m3s016bo) [2]
u2 (m3s016bo) [2]
u1 (m3s016bo) [2]
u12 (m3s020bo) [1]
u1 (m3s014bo) [2]
u7 (m3s008bo) [1]
u2 (m3s039bo) [2]
u1 (m3s009bo) [2]
u6 (m3s007bo) [1]
u2 (m3s003bo) [1]
u15 (m3s028bo) [1]
u8 (m3s010bo) [1]
select_program_source_gt_301 (m3s010bo_DW01_cmp2_8_0) [2]
u2 (m3s013bo) [2]
u1 (m3s011bo) [2]
u1 (m3s001bo) [1]
Example 3
The following example displays a circuit component report of the design’s modules, and the
number of instantiations of each:
report circuit components -module
----------------------------------------------------
Output Format: ModuleName [NumberOfinstantiations]
----------------------------------------------------
m8051 [0]
m3s028bo [1]
m3s025bo [1]
m3s023bo [1]
m3s020bo [1]
m3s014bo [1]
m3s019bo [1]
m3s018bo [1]
m3s015bo [1]
m3s016bo [4]
m3s010bo [1]
m3s010bo_DW01_cmp2_8_0 [1]
m3s013bo [1]
m3s011bo [1]
m3s008bo [1]
m3s039bo [1]
m3s009bo [1]
m3s007bo [1]
m3s006bo [1]
m3s005bo [1]
m3s004bo [1]
m3s003bo [1]
m3s001bo [1]
Related Commands
Echo
Examples
The following example connects the unconnected scan enable ports of specified clock gating
instances. The first instance is connected to the sen1 pin, which drives the signal with the active
state set to low. The next two instances are connected to the default scan enable signal, sen.
The results of these commands are shown by the Report Clock Gating command output:
// Note: The following clock gating instances have unconnected ports that
will be connected to a scan enable signal.
-------------------------------------------------------------------------
Clock Gating Unconnected Signal
Instance Port Driver
-------------------------------------------------------------------------
clkg1/clkg1/clkgLA SE sen1
clkg2/clkg1/clkgLA SE sen
clkg3/clkg1/clkgLA SE sen
-------------------------------------------------------------------------
.......
insert test logic
report clock gating -instance clkg1/clkg1/clkgLA clkg2/clkg1/clkgLA
clkg3/clkg1/clkgLA
-------------------------------------------------------------------------
Clock Gating Unconnected Signal
Instance Port Driver
-------------------------------------------------------------------------
clkg1/clkg1/clkgLA SE sen1
clkg2/clkg1/clkgLA SE sen
clkg3/clkg1/clkgLA SE sen
-------------------------------------------------------------------------
Related Topics
Setup Clock Gating
Related Commands
Add Clock Groups Delete Clock Groups
Report Clocks
Scope: All modes
Usage
REPort CLocks [-Display {DEBug | DESign | DAta | ALl}]
Description
Displays a list of all clock definitions.
The Report Clocks command displays a list of all clocks added with the Add Clocks command.
Arguments
• -Display {DEBug | DESign | DAta | ALl}
A switch and literal that displays the reported information graphically in the specified
DFTVisualizer window(s). The choices are as follows:
DEBug — Debug window
DESign — Design window
DAta — Data window
ALl— A literal that displays the information in all of the preceding windows.
See “Using Tessent DFTVisualizer” for more information.
Examples
The following example displays a list of clocks after they have been added to the clock list:
add clocks 1 clk1
add clocks 0 clk0
report clocks
clk1, off_state 1
clk0, off_state 0
Related Commands
Add Clocks Delete Clocks
Related Commands
Add Clocks Report Dft Check
Delete Clocks
• >> file_pathname
An optional redirection operator and pathname pair used at the end of the argument list to
append to the contents of file_pathname.
Examples
The following example displays the scannability check for all non-scan instances in the design:
add clocks 1 clk1
add clocks 0 clk0
set system mode dft
report dft check
SCANNABLE DEFINED-NONSCAN /CLK1 /U1 FD1
SCANNABLE IDENTIFIED /CLK1 /U2 FD1
SCANNABLE UNIDENTIFIED /CLK1 /U3 FD1
SCANNABLE DEFINED-SCAN /CLK1 /U4 FD1
SCANNABLE UNIDENTIFIED /CLK2 /U5 FD1
SCANNABLE IDENTIFIED /CLK2 /U6 FD1
NON-SCANNABLE UNIDENTIFIED S1 /U7 FD2 (34)
Clock #1: /CLK3 (11)
Number of non-scannable instances fails on S1 rule = 1
Number of instances found = 1
Number of instances reported = 1
Related Commands
Echo Report Sequential Instances
Report DRC Rules
You can use the Set DRC Handling command to change the handling of the C (clock), A
(RAM), D (data), P (procedure), T (trace), and E (extra) rules. For more information on the
design rules, refer to the “Design Rule Checking” section in the Tessent Common Resources
Manual for ATPG Products.
Arguments
• -Fails_Summary
A switch that specifies to display the following for each user-controllable rule that resulted
in a violation (fail) during DRC:
o Rule identification (ID)
o Number of failures of the rule
o Current handling status of the rule
o Brief description of the rule
This is the command default.
Note
This switch does not display anything if there are no rule violations or the tool has not yet
performed DRC.
• -Summary
A switch that specifies to display the following for each user-controllable rule, whether or
not it resulted in a violation (fail) during DRC:
o Rule identification (ID)
o Number of failures of the rule
o Current handling status of the rule
o Brief description of the rule
• rule_id
A repeatable string that specifies the identification literal (ID) of a particular design rule for
which you want to display all violation occurrence messages.
The design rule violations and their identification literals are divided into the following six
groups: RAM, Clock, Data, Extra, Scannability, and Trace rules violation IDs.
• For a complete description of the RAM design rule IDs, refer to the “RAM Rules”
section in the Tessent Common Resources Manual for ATPG Products.
• For a complete description of the Clock design rule IDs, refer to the “Clock Rules”
section in the Tessent Common Resources Manual for ATPG Products.
• For a complete description of the Data design rule IDs, see the “Scan Cell Data
Rules” section in the Tessent Common Resources Manual for ATPG Products.
• For a complete description of the Extra design rule IDs, refer to the “Extra Rules”
section in the Tessent Common Resources Manual for ATPG Products.
• For a complete description of the Scannability design rule IDs, refer to “Scanability
Rules (S Rules)” in the Tessent Common Resources Manual for ATPG Products.
• For a complete description of the Trace design rule IDs, refer to the “Scan Chain
Trace Rules” section in the Tessent Common Resources Manual for ATPG Products.
• rule_id-occurrence#
A repeatable string that specifies the identification literal (ID) of a particular design rule and
the violation occurrence for which you want to display the occurrence message. This
argument must include the specific design rule ID (rule_id), the specific occurrence number
of the violation, and the hyphen between them. For example, you can analyze the second
violation occurrence of the C3 rule by specifying C3-2. The tool assigns numbers to
occurrences of rule violations as it encounters them; you cannot change the number assigned
to a specific occurrence.
• -All_Fails
A switch that specifies to display all occurrence messages for all occurrences of rule
violations. The displayed information can be quite lengthy, as it is the same information you
would get if you consecutively entered a “report drc rules <rule_id>” command for each
rule that had a violation. Use this switch to output a report of all violation occurrences (most
likely to a log file) for later analysis.
• > file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
creating or replacing the contents of file_pathname.
• >> file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
appending to the contents of file_pathname.
C1-Only Arguments
• C1
A required literal that specifies reporting C1 DRC rule violations.
• -EXcluded
An optional switch for use only with a C1 violation. Specifying this switch reports the C1
violations that have been excluded from the default C1 list because these C1 violations can
be handled by the tool without causing potential mismatch.
D5-Only Arguments
• -TYpe I0 | I1 | IX | T0 | T1 | TX | TLA
An optional switch and repeatable literal that displays D5 occurrence messages for only the
specified type(s) of non-scan sequential elements. The literal choices for the type of element
are as follows (the term you will see in occurrence messages for each type is shown in
parentheses):
I0 — If the element is at 0 at the beginning of the first capture cycle and may go to any
state during capture. (INIT-0)
I1 — If the element is at 1 at the beginning of the first capture cycle and may go to any
state during capture. (INIT-1)
IX — If the element’s state is unknown at the beginning of the first capture cycle and
may go to any state during capture. (INIT-X)
T0 — If the element is always at 0 during capture. (TIE-0)
T1 — If the element is always at 1 during capture. (TIE-1)
TX — If the element is always at an unknown state during capture. (TIE-X)
TLA — If the element is always transparent when its clock is at its off state. (TLA)
Tip: Except for TLAs, you can also direct the tool to display information for only those
D5 elements that are edge-triggered or level-sensitive. See the -Edge_triggered and
-Level_sensitive switch descriptions for details.
• -NOType I0 | I1 | IX | T0 | T1 | TX | TLA
An optional switch and repeatable literal that specify not to display occurrence messages for
the particular type(s) of D5 violations. See the description of the -Type switch for the
meaning of the literal choices.
• -EDge_triggered | -LEvel_sensitive
Optional switches that specify to display D5 occurrence messages either for edge-triggered
or level-sensitive elements only. The default (when neither option is specified) is to display
information for both edge-triggered and level-sensitive elements.
Examples
The following example changes the severity of the data rule 7 (D7) from a warning to an error,
and also specifies execution of a full test generation analysis, when performing the rules
checking for the clock (C) rules. Next, the example generates a display of a specific rule failure:
set drc handling d7 error atpg_analysis
set system mode dft
//-----------------------------------------------------------
//Begin scan chain identification process, memory elements=8.
//-----------------------------------------------------------
// Reading group test procedure file /user/design/tpf.
// Simulating load/unload procedure in g1 test procedure file.
// Chain = c1 successfully traced with scan_cells = 8.
// Error: Flipflop /FF1 (103) has clock port set to stable high.(D7-1)
// Error: Rules checking unsuccessfule, cannot exit SETUP mode.
//Error: Flipflop /I$3 (16) has clock port set to stable high (D7-1)
Related Commands
Echo Set DRC Handling
Report Environment
Scope: All modes
Usage
REPort ENvironment [{> | >>} file_pathname]
Description
Displays the current values of all the “set” commands and the default names of the scan type
pins. Using the Report Environment command immediately after invocation, displays all of the
default values of the “set” commands.
Arguments
• > file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
creating or replacing the contents of file_pathname.
• >> file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
appending to the contents of file_pathname.
Examples
The following example reports the DFTAdvisor invocation defaults:
report environment
Top Module = /designs/dft/test_design
Gate Level = design
Gate Report = normal
Net Resolution = wire
System Mode = setup
Tied Signal = x
Dofile Abort = on
Trace Report = off
Scan type = mux_scan
Identification Type = sequential:on scan_sequential:off
partition_scan:off full_scan:off test_point:off
Identification Model = clock:original disturb:on
Scan Identification = automatic Internal Full backtrack=30
cycle=16 time=100 control_coverage = 100
observe_coverage = 100
min_detection = 1
Fault Sampling = 100%
Scan-in Naming = prefix:scan_in initial:1 modifier:1 suffix:
Scan-out Naming = prefix:scan_out initial:1 modifier:1 suffix:
Test Enable Name = test_en active = high
Test Clock Name = test_clk
Scan Enable Name (Core)= scan_en
Scan Enable Name (Input wrapper chains)= scan_en_in
Scan Enable Name (Output wrapper chains)= scan_en_out
Related Commands
Echo Any of the “Set” commands
Arguments
• -ALl
An optional switch that specifies to report all currently identified feedback paths. This is the
default.
• loop_id#
An optional, repeatable, non-negative integer that specifies the identification number of a
particular feedback path to report. The tool assigns the numbers consecutively, starting with
0.
• -Display {DEBug | DESign | DAta | ALl}
A switch and literal that displays the reported information graphically in the specified
DFTVisualizer window(s). The choices are as follows:
DEBug — Debug window
DESign — Design window
DAta — Data window
ALl— A literal that displays the information in all of the preceding windows.
See “Using Tessent DFTVisualizer” for more information.
• > file_pathname
An optional redirection operator and pathname pair for creating or replacing the contents of
file_pathname.
• >> file_pathname
An optional redirection operator and pathname pair for appending to the contents of
file_pathname.
Examples
The following example leaves the Setup mode (which, among other things, flattens the
simulation model and performs the learning process), and displays the identification numbers of
any learned feedback paths:
set system mode dft
report feedback paths
Loop#=0, feedback_buffer=26, #gates_in_network=5
INV /I_956__I_582/ (51)
PBUS /I_956__I_582/N1/ (96)
ZVAL /I_956__I_582/N1/ (101)
INV /I_956__I_582/ (106)
TIEX /I_956__I_582/ (26)
Loop#=1, feedback_buffer=27, #gates_in_network=5
INV /I_962__I_582/ (52)
PBUS /I_962__I_582/N1/ (95)
ZVAL /I_962__I_582/N1/ (100)
INV /I_962__I_582/ (105)
TIEX /I_962__I_582/ (27)
Related Commands
Report Loops
• -Verbose
A switch that displays the following for each flattening rule:
o Rule identification number
o Number of failures of each rule
o Current handling status of that rule
o Brief description of that rule
• > file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
creating or replacing the contents of file_pathname.
• >> file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
appending to the contents of file_pathname.
Example
The following example shows the summary information of the FG3 rule:
report flatten rules fg3
// FG3: fails=2 handling=warning/noverbose
Related Commands
Set Flatten Handling
Report Gates
Scope: All modes
Prerequisites: The netlist must already have been flattened before you can use this command in
either Setup or Dft mode. Netlist flattening happens when you first attempt to exit Setup
mode. The next time you return to Setup mode, you can use the command.
Usage
REPort GAtes {gate_id# | pin_or_net_pathname | instance_name}… | {-Type gate_type}…
Description
The Report Gates command displays the netlist information for the specified design-level or
primitive-level gates. You can specify the gate by its gate index number, a pathname of a pin
connected to a gate, an instance name (design level only), a gate type, or a net pathname. You
can specify a design cell by a pathname of a pin connected to the design cell. If you use a gate
index number or gate type, the primitive-level is reported.
The pin_or_net_pathname and instance_name arguments support regular expressions, which
may include any number of ‘*’ or ‘?’ wildcard characters embedded in the pathname string. The
‘*’ character matches any sequence of characters (including none) in a name, and the ‘?’
character matches any single character. If a wildcard name is specified, the command will
search for matching instance names from the top library cell level, down to the primitive gates.
The format for the design level is:
instance_name cell_type
input_pin_name I (data) pin_pathname...
...
output_pin_name 0 (data) pin_pathname...
...
The format for the primitive level is:
instance_name (gate_ID#) gate_type
input_pin_name I (data) gate_ID#-pin_pathname...
...
output_pin_name O (data) gate_ID#-pin_pathname...
...
The list associated with the input and output pin names indicates the pins to which they are
connected. For the primitive-level, this also includes the gate index number of the connecting
gate and only includes the pin pathname if one exists at that point. There is a limitation on
reporting gates at the design-level. If some circuitry inside the design cell is completely isolated
from other circuitry, the command only reports the circuitry associated with the pin pathname.
You can change the output of the Report Gates command by using the Set Gate Report
command.
Note
You must flatten the netlist before issuing this command.
SETUP> b
The following example shows how to use Report Gate and B commands to trace backward
through the first input of the previously reported gate.
SETUP> b
// /u1/inst__565_ff_d_1__13 (14) TIE0
// "OUT" O 269- 268-
The following example shows how to use Report Gate and F commands to trace forward
through the first fanout of the previously reported gate.
// "I0" I 269-
// "OUT" O 268- 75-
SETUP> f
// /u1/inst__565_ff_d_1__13 (268) LA
// "S" I 14-
// "R" I 145-
// BCLK I 1-/scan_sclk
// "D0" I 26-
// "OUT" O 24- 25-
Arguments
• gate_id#
A repeatable integer that specifies the gate identification numbers of the objects for which
you want to display gate information. The value of the gate_id# argument is the unique
identification number that DFTAdvisor automatically assigns to every gate within the
design during the model flattening process.
• pin_or_net_pathname
A repeatable string that specifies the pathnames of pins or nets in the design netlist. You
may use wildcard characters to match multiple pin or net pathnames.
For a hierarchical pathname, the display will include information describing how that
pathname maps to the driving design level pin(s) and gate(s) for which data is displayed.
• instance_name
A repeatable string that specifies the hierarchical pathname of an instance of a library cell
within the design. If a valid library instance pathname is given when in primitive level, all
pins on that library cell are reported. When in primitive level, instance_name may also be
the pathname of a primitive instance.
• -Type gate_type
A repeatable switch and name pair that specifies the gate types for which you want to
display the gate information. The supported gate_types are listed in Table 2-5.
The gate report for the design level may look like the following:
// /P2.13P ND2
// A I /LD.1
// B I /M1.1
// Z O /P2.2P/S
The next example demonstrates how the output report will change if the input pathname is a
hierarchical pin or net. In this case an additional line is output at the top of the report, indicating
the mapping that was found:
Related Commands
Set Gate Level Set Gate Report
Report Loops
Scope: Dft mode
Usage
REPort LOops [-All | loop_id#…] [-Display {DESign | DAta}] [{> | >>} file_pathname]
Description
Displays information about circuit loops.
The Report Loops command displays information about currently identified loops in the circuit.
For each loop, the report indicates whether the loop was broken by duplication. Loops that are
not broken by duplication are shown as being broken by a constant value, which means the loop
is either a coupling loop or has a single multiple fanout gate. The report also includes the pin
pathname and gate type of each gate in each loop.
You can write the loops report information to a file by using the command’s redirection
operators or the Write Loops command.
Arguments
• -ALl
An optional switch that specifies to report all the loops in the circuit. This is the default.
• loop_id#
An optional, repeatable, positive integer that specifies the identification number of a
particular loop to report. The tool assigns loop identification numbers consecutively,
starting with 1.
• -Display {DESign | DAta}
A switch and literal that displays the reported information graphically in the specified
DFTVisualizer window(s). The choices are as follows:
DESign — Design window
DAta — Data window
See “Using Tessent DFTVisualizer” for more information.
• > file_pathname
An optional redirection operator and pathname pair for creating or replacing the contents of
file_pathname.
• >> file_pathname
An optional redirection operator and pathname pair for appending to the contents of
file_pathname.
Examples
The following example displays a list of all the loops in the circuit:
set system mode dft
report loops
Loop = 1: not_duplicated (coupling loop)
my_design/my_minibus (SBUS)
my_design/PAD (BUF)
my_design/my_minibus (Z2X)
Loop = 2: not_duplicated (coupling loop)
...
Loop = 8: not_duplicated (single multiple fanout)
my_design/al/pl/padx (BUF)
my_design/al/pl/pad (BUF)
my_design/pad (WIRE)
The next example writes the display information for loop 8 to a new file named my_loop_file:
report loops 8 > my_loop_file
... writing to file my_loop_file
Related Commands
Report Feedback Paths Write Loops
o If you specify -Module, then for all occurrences of that module, it reports all
instances within that module. Optionally, you can constrain the report to matching
the -Nonscan_model or (for output mapping) matching the -Scan_model.
• -Nonscan_model nonscan_model_name
A switch and string pair that specifies the name of the non-scan model that you want to
report on. This argument is only required if you specify -Instance or -Module switch and
want to constrain the report to objects matching the non-scan model; otherwise, you can
specify the non-scan model in the object_name argument.
• -Scan_model scan_model_name
A switch and string pair that specifies the name of the scan model to report on. This
argument is required when you want to further constrain the report, except when you are
only reporting the mapping of the scan output pin and specify the scan model in the
object_name argument.
• -Output [scan_ouput_pin_name]
An optional switch and string pair that specifies the name of the scan output pin. You can
use this to constrain the report. Specifying just the -Output switch reports all mapped scan
output pins for the specified scan model, while specifying the switch with a pin name,
reports the mapping for only scan models that use that pin for the scan output.
• -Filename filename [-Replace]
An optional switch and string that specifies that DFTAdvisor writes the scan mapping report
to a file. The -Replace switch specifies that the file should be overwritten if it already exists.
Examples
The following example reports the scan and output mapping for all occurrences of the fd1 non-
scan model in the design:
report mapping definition fd1
The following example reports the mapping for each occurrence of the fd1 non-scan model
mapped to the fd1s scan model with the scan output pin mapped to “qn”:
report mapping definition fd1 -scan_model fd1s -output qn
The following example reports the mapping for each occurrence of the fd1s scan model in the
design:
The following example reports the mapping for all instances under the hierarchical instance
“/top/counter1”:
report mapping definition /top/counter1 -instance
The following example reports the mapping for each occurrence of the fd1s scan model with the
scan output pin mapped to “qn” for all matching instances in the “counter” module and for all
occurrences of that module in the design:
report mapping definition counter -module -scan_model fd1s -output qn
Related Commands
Add Mapping Definition Delete Mapping Definition
Report Nofaults
Scope: All modes
Usage
REPort NOfaults {pathname… | -All} [-Instance] [-Stuck_at {01 | 0 | 1}] [{> | >>}
file_pathname]
Description
Displays the no-fault settings for the specified pin or instance pathnames.
The Report Nofaults command displays for pin pathnames or pin names of instances the nofault
settings that you previously specified with the Add Nofaults command.
Arguments
• pathname
A repeatable string that specifies the pin pathnames or the instance pathnames for which you
want to display the nofault settings. If you specify an instance pathname, you must also
specify the -Instance switch.
• -All
A switch that specifies to display the nofault settings on either all pin pathnames or, if you
also specify the -Instance switch, all pin names of instances.
• -Instance
An optional switch that specifies that the pathname or -All argument indicates instance
pathnames.
• -Stuck_at 01 | 0 | 1
An optional switch and literal pair that specifies the stuck-at nofault settings that you want
to display. The valid stuck-at literals are as follows:
01 — A literal that specifies to display both the “stuck-at-0” and “stuck-at-1” nofault
settings. This is the default.
0 — A literal that specifies to only display the “stuck-at-0” nofault settings.
1 — A literal that specifies to only display the “stuck-at-1” nofault settings.
• > file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
creating or replacing the contents of file_pathname.
• >> file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
appending to the contents of file_pathname.
Examples
The following example displays all pin names of the instances that have the nofault settings:
add nofaults i_1006 i_1007 i_1008 -instance
report nofaults
Related Commands
Add Nofaults Delete Nofaults
Related Commands
Add Nonscan Models Delete Nonscan Models
Related Commands
Add Notest Points Delete Notest Points
Related Commands
Add Output Masks Delete Output Masks
Analyze Output Observe Setup Output Masks
— Clocks controlling both the identified wrapper cells and wrapper cells to be added.
If -Summary is specified, the following information is reported:
— Total number of primary inputs.
— Total number of primary outputs.
— Total number of identified wrapper cells.
— Total number of added wrapper cells.
— Total number of design gates between the newly added wrapper cells and the logic
that would have terminated the forward/backward tracing from each PI/PO during
wrapper cells identification.
— Total number of design gates between all PI/POs for which the wrapper cells
identification has succeeded, and the corresponding identified wrapper cells.
Example 1
The following example shows the output generated when the Report Wrapper Cells command is
executed with the -Verbose switch and neither the -allow_internal_feedback or -test_points
switch is specified for the Setup Wrapper Chains command.
report wrapper cells -Verbose
---------------------------------------------------------------------------------------------------------
Primary I/O Max Logic # Wrapper Cells Wrapper Wrapper Clock New Reason For
Port Level Identified Cells Chain Registration Failed
[1/32] [256/256] Identified Type Cell Added Identification
---------------------------------------------------------------------------------------------------------
in2 (I) 1 2 flop3 Input clk No --
flop4 Input clk
in1 (I) 0 2 flop1 Input clk No --
flop2 Input clk
in3 (I) 0 0 new cell Input clk Yes Max Logic Level
in4 (I) 0 0 new cell Input clk Yes Combin. Logic Only
in5 (I) 0 0 new cell Input clk Yes Max Logic Level
in6 (I) 0 0 new cell Input clk Yes Combin. Logic Only
out1 (O) 0 0 new cell Output test_clk Yes Input Wrapper Cell
out2 (O) 0 0 new cell Output test_clk Yes Combin. Logic Only
---------------------------------------------------------------------------------------------------------
Example 2
The following example shows the output generated when the Report Wrapper Cells command is
executed with the -Verbose switch when the -test_points option switch is specified for the Setup
Wrapper Chains command.
report wrapper cells -Verbose
---------------------------------------------------------------------------------------------------------
Primary I/O Max Logic #Wrapper Cells #Internal Wrapper Wrapper Clock New
Port Level (Direct/Internal-Feedback)Feedback Cells Chain Regist
[32/32] Identified [256/256] Gates Identified Type Cell Added
---------------------------------------------------------------------------------------------------------
o[1] (O) 2 3 d7 Output clk No
d8 Output clk
d9 Output clk
o[2] (O) 0 1 d9 Output clk No
i[3] (I) 3 3/3 4 d2 Input clk No
d3 Input clk
d10 Input clk
i[2] (I) 2 1/2 2 d1 Input clk No
---------------------------------------------------------------------------------------------------------
Example 3
The following example shows the output generated when the Report Wrapper Cells command is
executed without the -Verbose switch when the -test_points option switch is specified for the
Setup Wrapper Chains command.
report wrapper cells
------------------------------------------------------------------
Primary I/O Max Logic # Wrapper Cells New
Port Level Identified Registration
[32/32] [256/256] Cell Added
------------------------------------------------------------------
o[1] (O) 2 3 No
o[2] (O) 0 1 No
i[3] (I) 3 3 No
i[2] (I) 2 1 No
------------------------------------------------------------------
Example 4
The following example shows the output generated when the Report Wrapper Cells command is
executed with the -Verbose switch when the -allow_internal_feedback option switch is
specified for the Setup Wrapper Chains command.
report wrapper cells -Verbose
Primary I/O Max Logic #Wrapper Cells Internal Wrapper Wrapper Clock New Reason
Port Level (Dir/Int-Feedback) Feedback Cells Chain Registr. Failed
[32/32] Identified[256/256]Gates Identified Type Cell Added Ident.
---------------------------------------------------------------------------------------------------------
o[1] (O) 0 1 d2 Output clk No --
i[2] (I) 2 1/2 2 d3 Input clk No --
d2(int feedb) Output clk
d4(int feedb) Output clk
i[1] (I) 1 1/1 1 d1 Input clk No --
d2(int feedb) Output clk
---------------------------------------------------------------------------------------------------------
Related Commands
Setup Registered IO Setup Wrapper Chains
Setup Scan Identification
Arguments
• -All
An optional switch that specifies to display the current constraints for all primary input pins.
This is the default.
• primary_input_pin
An optional repeatable string that specifies a list of primary input pins whose constraints
you want to display.
• -Display {DEBug | DESign | DAta | ALl}
A switch and literal that displays the reported information graphically in the specified
DFTVisualizer window(s). The choices are as follows:
DEBug — Debug window
DESign — Design window
DAta — Data window
ALl— A literal that displays the information in all of the preceding windows.
See “Using Tessent DFTVisualizer” for more information.
Examples
The following example displays the cycle behavior constraints of all primary inputs.
add pin constraints ph1 c0
add pin constraints ph2 c1
report pin constraints -all
Related Commands
Add Pin Constraints Setup Pin Constraints
Delete Pin Constraints Setup Scan Identification
Examples
The following example displays all pin equivalences that have been added to the primary inputs:
add pin equivalences indata2 indata4
add pin equivalences indata3 -invert indata5
report pin equivalences
Related Commands
Add Pin Equivalences Delete Pin Equivalences
Related Commands
Echo Write Primary Inputs
Related Commands
Echo Write Primary Outputs
Report Procedure
Scope: All modes except Setup mode
Usage
REPort PRocedure {procedure_name [group_name]} | -All [{> | >>} file_pathname]
Description
Displays the specified procedure.
The Report Procedure command displays all procedures or the specified procedure.
Arguments
• procedure_name
A string that specifies which procedure to display.
• group_name
An optional string that specifies a particular scan group from which to display the specified
procedure.
• -All
A switch that specifies for the tool to display all procedures. This is the default.
• > file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
creating or replacing the contents of file_pathname.
• >> file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
appending to the contents of file_pathname.
Related Commands
Add Scan Groups Write Procfile
Read Procfile
Report Timeplate
Related Commands
Add Read Controls Delete Read Controls
Arguments
• -All | chain_name…
An optional switch or repeatable string. The -All switch specifies to display the scan cells
for all scan chains. This is the default. The repeatable string specifies the scan chains whose
scan cells you want to display.
• -SHift_register_flops
An optional switch that specifies to print only the shift register flip-flops that are stitched
into scan chains.
• -Filename filename [-Replace]
An optional switch and string that specifies that DFTAdvisor writes the list of scan cells to a
file. The format of the written file is different than the format of the viewed report. The
-Replace switch specifies that the file should be overwritten if it already exists.
• -Display {DEBug | DESign | DAta}
A switch and literal that displays the reported information graphically in the specified
DFTVisualizer window(s). The choices are as follows:
DEBug — Debug window
DESign — Design window
DAta — Data window
See “Using Tessent DFTVisualizer” for more information.
• > file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
creating or replacing the contents of file_pathname.
• >> file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
appending to the contents of file_pathname.
Example 1
The following example displays a list of all scan cells in the DFT system mode:
add scan groups group1 scanfile
add scan chains chain1 group1 indata2 outdata4
set system mode dft
report scan cells
--------------------------------------------------------------------------------
Chain Group Clock
CellNo Name Name Pathname CellName ScanOut Clock Polarity
--------------------------------------------------------------------------------
0 chain1 group1 /MQ_I400 sffr Q clk2 (+)
1 chain1 group1 /FH_I400 sffr QB clk2 (+)
2 chain1 group1 /FQ_I10 sffr QB clk2 (+)
- chain1 group1 /lckup1 latch Q clk1 (-)
3 chain1 group1 /RP_I10 sffr Q clk1 (+)
4 chain1 group1 /IS_I10 sffr Q clk1 (+)
5 chain1 group1 /CZ_I400 sffr QB clk1 (+)
--------------------------------------------------------------------------------
• The first column displays the chain cell index number, where 0-0 is the scan cell closest
to the scan-out pin.
• The second column displays the chain name where the scan cell resides.
• The third column displays the group name where the scan cell resides.
• The fourth column displays the hierarchical path of the scan cell.
• The fifth column displays the library model name for the scan cell.
• The sixth column displays the scan out port of the scan cell.
• The seventh column displays the clock for the scan cell.
• The eighth column displays the polarity of the clock of the scan cell.
Example 2
The following example adds the new column ShiftRegID/CellNo to the report when it identifies
a shift register in the netlist. This column contains a tool-assigned number for the shift register
ID and a cell number that indicates the order in which the flip-flops are originally connected in
the shift register structures. The column contains “-/-” for those cells that are not part of a shift
register.
Example 3
The following example uses the -shift_register_flops switch to print only the shift register flops
in the report:
Example 4
The following example shows the additional output that is reported when sub-chains are
encountered. Specifically, the starting and ending cell in a sub-chain are listed as a range value
in the CellNo column, the clock for the first and last cell in the sub-chain are listed in the Clock
column, and the polarity of each clock is listed in the Clock Polarity column.
--------------------------------------------------------------------------------
Chain Group Clock
CellNo Name Name Pathname CellName ScanOut Clock Polarity
--------------------------------------------------------------------------------
0 chain1 grp1 /usf2 SCIFTD11S10 SO sysCLK (+)
1 chain1 grp1 /usf1 SCIFTD11S10 SO sysCLK (+)
0-3 chain2 grp1 /um1 &subchain1 SO sysCLK,sysCLK (+,+)
4-7 chain2 grp1 /uB1/um1 &subchain1 SO sysCLK,sysCLK (+,+)
8-9 chain2 grp1 /uC1 &subchain2 so sysCLK,sysCLK (+,+)
10 chain2 grp1 /uff2 SCIFTD11S10 SO sysCLK (+)
11 chain2 grp1 /uB1/uff2 SCIFTD11S10 SO sysCLK (+)
0-3 chain3 grp1 /um2 &subchain1 SO MYTCLK,MYTCLK (+,+)
4-7 chain3 grp1 /uB2/um2 &subchain1 SO MYTCLK,MYTCLK (+,+)
8-11 chain3 grp1 /uB2/um1 &subchain1 SO MYTCLK,MYTCLK (+,+)
12-15 chain3 grp1 /uB1/um2 &subchain1 SO MYTCLK,MYTCLK (+,+)
16-17 chain3 grp1 /uC2 &subchain2 so MYTCLK,MYTCLK (+,+)
18 chain3 grp1 /uff1 SCIFTD11S10 SO MYTCLK (+)
19 chain3 grp1 /uB1/uff1 SCIFTD11S10 SO MYTCLK (+)
20 chain3 grp1 /uB2/uff1 SCIFTD11S10 SO MYTCLK (+)
21 chain3 grp1 /uB2/uff2 SCIFTD11S10 SO MYTCLK (+)
---------------------------------------------------------------------------------
Related Commands
Add Scan Chains Report Shift Registers
Add Scan Groups
Related Commands
Add Scan Chains Echo
Delete Scan Chains
Related Commands
Set Scan Enable Set Scan_enable Sharing
Related Commands
Add Scan Groups Echo
Delete Scan Groups
Related Commands
Add Scan Models Delete Scan Models
partition, partB, is added by the container module instance of the sequential instances. The scan
partitions are then reported twice, with and without the expand switch.
add sub chain D subch1 si so 5 mux_scan se -subclock clk
add nonscan instances /umodA/udff1
add scan partition partA -instance udff1 umodA/udff1 umodB/udff1 -module modD
add scan partition partB -instance umodC -number 3
Note that the subchain cells are not reported, rather, the entire subchain is reported with its
container module instance. Also, the sequential instance /umodA/udff1 is still reported as part
of the scan partition, partA, even though it is declared as a nonscan instance.
report scan partitions
-----------------------------------------------------------------------
ScanPartitionName TotalNumCells/ScannableCells Members
-----------------------------------------------------------------------
partA 13/12 udff1 [instance]
umodA/udff1 [instance]
umodB/udff1 [instance]
modD [module]
partB 4/4 umodC [instance]
default_scan_partition 3/3 <all_remaining_cells>
-----------------------------------------------------------------------
Related Commands
Add Scan Pins Echo
Delete Scan Pins
Related Commands
Add Seq_transparent Constraints Setup Scan Identification
Delete Seq_transparent Constraints
• -IDentified
An optional switch that reports the sequential instances identified as scannable by
DFTAdvisor. This is only valid after executing a Run command.
• -UNidentified
An optional switch that reports sequential instances not identified as scannable by
DFTAdvisor.
• -STitched
An optional switch that reports the sequential instances already placed in scan chains. Such
instances that cannot hold the scannable or non-scannable conditions.
• -Polarity + | -
An optional switch and a sign character that reports the sequential instances clocked by
stable_low (+) or stable_high (-) clocks.
• -INstance object_pathname …
An optional switch and repeatable string that reports the sequential instances that reside
under specified instances.
• -Module object_name …
An optional switch and repeatable string that reports the sequential instances that reside
under specified modules.
• -NOHeader
An optional switch that disables reporting of the header information in the output.
• -NOFooter
An optional switch that disables reporting of the footer information in the output. The footer
information includes the total number of reported instances.
• -NOVerbose
An optional switch that reports the body of the report output, which is all the information
except the header and the footer.
• -Format format_code …
An optional switch and repeatable string that specifies which information columns to
include in the report. When this switch is used, the specified columns are reported in the
specified order.
Use the format codes described in Table 2-6 to specify columns.
• -DRIVEN_SEN_info
An optional switch that reports sequential instances with functionally-driven scan enable
pins. The scan enable pin is considered functionally driven if the driving pin is a PI pin or an
output pin of a library instance that is not an inverter or buffer. The driver and driven pins
can be at different levels of hierarchy where the buffers and inverters between them are
transparent to the tool. When functionally-driven sequential instances are found, they are
added to the non-scan instance list and a warning message displays.
This switch also writes out a dofile (delete_nonscan_instances_for_driven_sen.dofile) that
can be used to remove the functionally-driven sequential instances from the non-scan cell
list and include them back into scan insertion. This also preserves the original connection to
the driving scan enable signal for these sequential instances.
Alternately, if the reported global scan enable pin (driving pin) is common to all reported
sequential instances, you can define it as the global scan enable pin with the Set Scan Enable
command in a new DFTAdvisor session. Once defined, it will be used as the scan enable
signal during scan insertion.
• > file_pathname
An optional redirection operator and pathname pair used at the end of the argument list to
create or replace the contents of a specified file with command output.
• >> file_pathname
An optional redirection operator and pathname pair used at the end of the argument list to
append command output to the contents of a specified file.
• -DRIVEN_SCAN_pin_cells
An optional switch that reports sequential instances with functionally-driven scan input
pins. The scan input pin is considered to be functionally driven if the driving pin is a PI pin
or an output pin of a library instance that is not an inverter or buffer. The driver and driven
pins can be at different levels of hierarchy where the buffers and inverters between them are
transparent to the tool.
The sequential instances with functionally-driven scan input pins are still considered as scan
candidates by default, unlike the sequential instances with functionally-driven scan enable
pins. DFTAdvisor reports the existence of functionally-driven sequential instances to the
user when it switches to DFT mode. This provides you with the option of examining
instances with this switch and including them in the list of previously inserted scan chains
via the Add Scan Chains or Add Sub Chains commands; otherwise, the tool disconnects the
original connections to the scan input pins and stitches them in new scan chains along with
the other scan candidates.
Example
The following example identifies sequential instances with functionally driven scan enable pins,
and restores the sequential instances to the scannable cell list with the original scan enable
connections preserved.
The following command sets DFT mode, runs DRC and returns a warning message when driven
scan enable pins are found.
set system mode dft
// Warning: The design includes scan cells whose scan enable pins are
// driven.
// 1) These scan cells have been added to the non-scan cell list by the
// tool
// 2) You can use the Report Sequential Instances command to examine them
// 3) If a pre-routed global scan enable is used, you can define it using
// the 'Setup Scan Insertion' command to have these cells re-evaluated.
// 4) You can also use the Delete Nonscan Instances command to preserve
// the original scan enable pin driver without specifying a global
// scan enable pin and a re-evaluation.
The following command reports on the sequential instances with driven scan enable pins.
report sequential instances -driven_sen_info
--------------------------------------------------------------------------------
Model Clock Clock Sen SenDriver
PathName Name Name Polarity Type Status Pinname PinPathname
--------------------------------------------------------------------------------
udff4 sff clk (+) Scannable Defined-nonscan SE /sen
uA/udff3 sff clk (+) Scannable Defined-nonscan SE /sen
uA/udff1 sff clk (+) Scannable Defined-nonscan SE /uA/ux/Y
--------------------------------------------------------------------------------
Number of instances: 3
// Note: A dofile named 'delete_nonscan_instances_for_driven_sen.dofile'
// is written out in the current directory.
The following command executes the dofile created by the previous example and deletes the
instances from the non-scan cell list.
dofile delete_nonscan_instances_for_driven_sen.dofile
// command: delete nonscan instances udff4
// command: delete nonscan instances uA/udff3
// command: delete nonscan instances uA/udff1
The following command runs the scan identification process as specified by the Setup Scan
Identification command.
run
// Number of targeted sequential instances = 4
// Performing scan identification ...
// Total sequential instances identified = 4
The following commands insert test logic and report on the inserted sequential instances
stitched into scan chains.
insert test logic
report sequential instances
----------------------------------------------------
Model Clock Clock
PathName Name Name Polarity Type Status
----------------------------------------------------
udff4 sff clk (+) chain1 0
uA/udff3 sff clk (+) chain1 1
uA/udff1 sff clk (+) chain1 2
uA/udff2 sff clk (+) chain1 3
----------------------------------------------------
Number of instances: 4
Related Commands
Add Nonscan Instances Report Dft Check
Delete Nonscan Instances Report Scan Cells
Echo Run
Insert Test Logic Set Scan Enable
Report Circuit Components Set System Mode
Example 2
The following example shows the output when the -verbose switch is specified:
report shift registers -verbose
--------------------------------------------------------------------
Hierarchical SequentialCell Clock Library
Id Length Path InstanceName Edge & Name ModelName
--------------------------------------------------------------------
[1] 4 / ud1 + clk dff
ud2 + clk dff
ud3 + clk dff
ud4 + clk dff
// Number of sequential elements in design: 6
// Number of shift register flops recorded for scan insertion: 4
// => 66.67% of all sequential elements in design
// Number of shift registers recorded for scan insertion: 1
// Longest shift register has 4 flops.
// Shortest shift register has 4 flops.
// Potential number of nonscan flops to be converted to scan cells: 1
// Potential number of scan cells to be converted to nonscan flops: 0
Example 3
The following example shows the output when the -summary switch is specified:
report shift registers -summary
// Number of sequential elements in design: 6
// Number of shift register flops recorded for scan insertion: 4
// => 66.67% of all sequential elements in design
// Number of shift registers recorded for scan insertion: 1
// Longest shift register has 4 flops.
// Shortest shift register has 4 flops.
// Potential number of nonscan flops to be converted to scan cells: 1
// Potential number of scan cells to be converted to nonscan flops: 0
Related Topics
Setup Shift_register Identification
Report Statistics
Scope: All modes
Usage
REPort STAtistics [{> | >>} file_pathname]
Description
Displays a detailed report of the design’s statistics.
The Report Statistics command displays a detailed statistics report to the screen. The report
includes the following information when in Setup and Dft modes:
• Total number of sequential instances
• Number of defined non-scan instances
• Number of non-scan instances identified by the DRC
• Number of defined scan instances
• Number of scan instances identified by the DRC
• Number of identified scan instances
• Number of scannable instances with test logic
• Number of pre-existing scan chains
• The total numbers for the following:
o Total patterns simulated in the preceding fault simulation process. This subgroup
may additionally contain total numbers for the following internal patterns sets:
basic scan patterns
Clock_po patterns
Ram_sequential patterns
Clock_sequential patterns
o Total patterns currently in the test pattern set
o Total CPU time
If a pattern type has no patterns, the report does not display the count for that type. If all patterns
are basic patterns, it will not display any count. And, it counts clock_sequential patterns that are
also clock_po only as clock_sequential patterns.
Arguments
• > file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
creating or replacing the contents of file_pathname.
• >> file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
appending to the contents of file_pathname.
Examples
The following example displays the statistics report after performing the scan identification
process in Dft mode:
add clocks 0 clock
set system mode dft
run
report statistics
Total number of sequential instances =40
Number of defined nonscan instances =5 (12.50%)
Number of nonscan instances identified by drc =5 (12.50%)
Number of defined scan instances =5 (12.50%)
Number of scan instances identified by drc =5 (12.50%)
Number of identified scan instances =5 (12.50%)
Number of scannable instances =10
Number of scannable instances with test logic =5
Related Commands
Echo
Related Commands
Add Sub Chains Echo
Delete Sub Chains
Related Commands
Add Subchain Clocks Delete Subchain Clocks
Related Commands
Add Subchain Group Delete Subchain Groups
Add Sub Chains Report Sub Chains
Delete Sub Chains
Examples
The following example uses both test logic and test points. The report displays the locations
where DFTAdvisor inserted the test logic as a result of both the Add Test Point command and
the Set Test Logic command:
add cell models and2a -type and
add cell models inv1a -type inv
add cell models mux1a -type mux s a b
add test point /I_6_16/cp control and2a control_input
set test logic -set on -reset on
set system mode dft
run
insert test logic
report test logic -location
/I_6_16/reset (test points)
/I_7_16/set (scan cell)
Related Commands
Add Test Points Echo
Delete Test Points Report Test Points
• > file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
creating or replacing the contents of file_pathname.
• >> file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
appending to the contents of file_pathname.
Examples
The following example creates one user-defined control point and one user-defined observe
point and then reports their definitions:
add test points /I_7_16/q Observe observe_output
add cell models and2a -type and
add cell models sdff1a -type sdff clk data
add test points /I_6_16/reset control and2a tp_clk -new_scan_cell sdff1a
insert test logic
report test points
Control: /I_6_16/reset Control and2a tp_clk -New_scan_cell sdff1a
// (internal scan) ctlff1
Observe: /I_7_16/q Observe observe_output
The control point report columns consist of the control point pathname, the library model name
used for the control point, the top-level clock pin specified for the control point scan cell, the
library model name used for the scan cell, the type of scan chain the test point inserted into, and
the instance pathname for the scan cell inserted. The last two columns are not printed if the
command is issued before the Insert Test Logic command.
The observe point report columns consists of the observe point pathname and the primary
output pin created for the observe point.
Related Commands
Add Test Points Run
Delete Test Points Setup Pin Constraints
Echo Setup Scan Identification
Insert Test Logic Setup Test_point Identification
Report Test Logic Setup Test_point Insertion
Tip: For more information, see “Setting Up for Test Point Insertion” in the Scan and
ATPG Process Guide.
Arguments
• pathname
An optional string that specifies the instance name whose pins for which you want
DFTAdvisor to display the controllability or observability values. The default is all pins for
all instances.
• -Controllability
An optional switch that specifies for DFTAdvisor to only display the pin controllability
values. This is the default. The controllability report displays the following information in
columnar format:
o The controllability value for the low logic state
o The controllability value for the high logic state
The report displays the controllability value for the low logic state (where NC means non-
controllable), the controllability value for the high logic state, the primitive gate type, the gate
identification number, and the pathname to the gate.
Related Commands
Analyze Testability
Related Commands
Add Tied Signals Report Black Box
Delete Tied Signals Setup Tied Signals
Report Timeplate
Scope: All modes except Setup mode
Usage
REPort TImeplate timeplate_name | -All [{> | >>} file_pathname]
Description
Displays the specified timeplate.
The Report Timeplate command displays all timeplates or the specified timeplate.
Arguments
• timeplate_name
A string that specifies which timeplate to display.
• -All
A switch that specifies for the tool to display all timeplates. This is the default.
• > file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
creating or replacing the contents of file_pathname.
• >> file_pathname
An optional redirection operator and pathname pair, used at the end of the argument list, for
appending to the contents of file_pathname.
Related Commands
Add Scan Groups Write Procfile
Read Procfile
Report Procedure
Report Variables
Scope: All modes
Usage
REPort VAriables
Description
Displays user-defined variables and values.
The Report Variables command displays the list of user-defined variables and their
corresponding values. This list does not include environment variables defined in the parent
shell environment.
Variables are defined, referenced, and reported on in the following manner:
1. Defining — Use the following syntax to create and set a variable’s value. Define
variables from the tool’s command line, throughout a dofile, or from a startup file.
$variable = value
If a variable is not meant to be concatenated with any other strings, then use the
$variable-name construct as in the following example:
insert test logic -max_length $MAX_SCAN_LEN -scan on
Variables are not expanded if there has been no definition. This condition behaves like
any other syntax error that may be present on the command line or within a dofile.
3. Reporting — Use the Report Variables command to display user-defined variables and
values.
REPort VAriables
Examples
The following example defines four variables, refers to them within tool commands, and
displays a list of all variables:
...
set system mode dft
$design_base_file = scan
$design_base_dir = /$USER/dft_scan_designs
$max_scan_len = 100
$revision = 1.42
run
insert test logic
write netlist -verilog ${design_base_dir}/${design_base_file}.v
report variables
design_base_dir /$USER/dft_scan_designs
design_base_file scan
revision 1.42
max_scan_len 100
Note
As $USER is defined in the parent shell environment, it is available for use within the
tool and in other variable definitions.
exit
Related Commands
Printenv
Related Commands
Add Write Controls Delete Write Controls
Reset State
Scope: All modes
Usage
RESet STate
Description
Removes all instances from both the scan identification and test point identification lists that
DFTAdvisor identified during a run.
The Reset State command removes scan instances or test points identified with the Run
command. If, however, you have stitched the scan chain or inserted test points, this command
has no effect on these.
Examples
The following example performs a full scan identification process, then removes the identified
scan instances and performs a 75 percent ATPG scan identification process:
set system mode dft
setup scan identification full_scan
run
report sequential instances
.
.
.
reset state
setup scan identification sequential atpg -percent 75
run
report sequential instances
.
.
.
Arguments
• -All
A switch that specifies to remove all scan chains.
• chain_name
A repeatable string that specifies the names of the scan chains that you want to remove.
• -Output
An optional switch that specifies that the existing scan chain output pins are to be ripped up
together with the scan chains.
• -Keep_scancell [Off | Tied | Loop | Buffer]
An optional switch and literal pair that specifies to remove the connection between the scan
input/output ports of each scan cell. The connections of all other ports are not altered and the
scan cells are not mapped to their non-scan models. If this switch is not specified, the default
is to remove the connections of all test ports and map the scan cells back to their original
non-scan model.
Off — DFTAdvisor disconnects the scan_out pin and scan_in pin and leaves them
dangling. This is the default.
Tied — DFTAdvisor disconnects the scan_out pin and scan_in pin and ties them to
ground.
Loop — DFTAdvisor disconnects the scan_out pin and scan_in pin and connects them
to each other as a self-loop for each scan cell.
Buffer —DFTAdvisor disconnects the scan_out pin and scan_in pin and connects them
to each other as a self-loop with a buffer in between for each scan cell.
• -Model model_name
An optional switch and string pair that specifies the name of a buffer in the ATPG library for
DFTAdvisor to insert in the self-loop. This option is only valid if you specify the
“-Keep_scancell Buffer”. You must first identify the buffer with either the Add Cell Models
command or with the cell_type library attribute. If you do not specify the -Model switch, by
default, DFTAdvisor uses the first buffer model in the buffer cell model list—see the Report
Cell Models command.
Examples
The following example illustrates usage of the Ripup Scan Chains command.
add clocks 0 clock
add scan groups group1 scan.testproc
add scan chains chain1 group1 scan_in1 scan_out1
set system mode dft
report scan chains
ripup scan chains -all
Related Commands
Add Scan Chains Report Scan Chains
Run
Scope: Dft mode
Usage
RUN
Description
Runs the scan or test point identification process.
The Run command performs the scan or test point identification process in Dft mode depending
on the identification type you set with the Setup Scan Identification command. The Run
command performs the scan identification process, as indicated by the Setup Scan Identification
command (if the identification type is set to -Sequential), and the test point identification
process as indicated by the Setup Test_point Identification command.
During the identification run, DFTAdvisor displays progress messages. The first number
indicates the number of instances currently identified for scan (added to the scan candidate list).
During the controllability phase, the second number indicates the estimated percentage of
toggle coverage. During the observability phase, this number indicates the estimated
observability coverage of stuck-at faults. For example, if you set the identification type to
sequential, the tool may display the following for the controllability phase:
// Sequential instances identified = 238 (Controllability = 97.31%)
Examples
The following example runs a scan identification process:
set system mode dft
setup scan identification sequential atpg
run
report sequential instances
Related Commands
Setup Scan Identification Setup Test_point Identification
Save History
Scope: All modes
Usage
SAVe HIstory filename [-Replace]
Description
Saves the command line history file to the specified file.
The Save History command saves the list of previously executed commands in the file that you
specify. You can then execute the file using the Dofile command.
Arguments
• filename
A required string that specifies the name of the file in which the tool saves the command line
history list.
• -Replace
An optional switch that specifies for the tool to overwrite the contents of filename, if a file
by that name already exists.
Examples
The following example displays the current history list, then saves it in a file called my_history,
which already exists.
history -nonumbers
add clocks 0 clock
set system mode dft
setup scan identification sequential atpg -percent 50
run
setup scan insertion -seb MY_SEN
insert test logic -nolimit
report scan chains
ripup scan chains -all
set system mode setup
set system mode dft
reset state
setup scan identification sequential atpg -percent 50
run
insert test logic -max_length 100
report scan chains
history -nonumbers
Related Commands
Dofile Set Command Editing
History
You can also specify which enable signal (TEN or SEN) enables bidi pins.
Arguments
• OFf | ON | Scan
Required literal that specifies whether to insert test logic to control the enable lines of bidi
pins during scan chain shifting. For more information on scan chain shifting, see “Enabling
Test Logic Insertion” in the Scan and ATPG Process Guide. Literal options include:
OFf — no test logic is inserted to control bidi pins. Default setting.
ON — test logic is inserted as necessary to control bidi pins.
Scan — inserts test logic on the scan I/O bidi pins to control the direction of the bidi pin
for scan shifting and ensure the success of scan chain tracing. Scan output bidi pins
are gated to be in output mode while all other bidi pins are gated to be in input mode
(Z state on the tester).
• -Control SEn | TEn
An optional switch and literal pair that specifies the enable signal used to control bidi pins.
Options include:
SEn — scan_enable signal. Default setting.
TEn — test_enable signal.
• -Direction Input | Output
An optional switch and literal pair that specifies the direction of the bidi pins specified by
the -Top switch. Options include:
Input — bidi pins are gated so they are in input mode. Default setting.
Output — bidi pins are gated so they are in output mode.
Example 2
The following example uses the force_gating switch to insert gating logic controlled by the
TEN control signal on the enable line of /uio1 and reports the gated tri-state devices. /uio1 is a
bidirectional device driving primary inout port dinout[1]; its enable signal is directly controlled
by the primary input /io_control1.
set bidi gating on -control ten -direction input -top dinout[1] -force_gating
report dft check -tri
-----------------------------------------------------------------------
Bidi Primitive Control Control
Tri-state State Direction Gating ID Signal Driver
-----------------------------------------------------------------------
/uioM OFF IN YES 84 TEN /udff20/QB
/uio3 ON OUT YES 77 SEN /io_control
/uio2 OFF IN NO 76 SEN /io_control
/uio1 OFF IN YES 75 TEN /io_control1
/uio0 OFF IN NO 73 SEN /io_control
-----------------------------------------------------------------------
Related Commands
Report Dft Check Set Test Logic
Report Test Logic Set Tristate Gating
Report Control Signals
Related Commands
Add Clocks Report Clocks
Delete Clocks Report Environment
Related Commands
History Save History
• -ALl
An optional switch that specifies for DFTAdvisor to perform contention checking for both
tri-state driver buses and multiple-port flip-flops and latches.
Examples
The following example performs contention checking on both multiple-port sequential gates
and tri-state buses, stops the simulation if any bus contention occurs, and displays an error
message that will indicate the gate on which the contention occurred:
set system mode dft
set contention check on -all
run
Set Display
Scope: All modes
Usage
SET DIsplay display_name
Description
Sets the DISPLAY environment variable from the tool’s command line.
The Set Display command sets the DISPLAY environment variable to display_name without
exiting the currently running application. If you invoke the tool in command line mode (the
default), then the DISPLAY variable is not required in order to use most commands
successfully.
Note
This command effects the DISPLAY setting within the currently running application
only. When you exit the tool, the setting in the invocation shell will be what it was when
you invoked the tool.
Arguments
• display_name
A required string that specifies a valid display setting for the machine on which the tool is
running.
Examples
The following example sets the DISPLAY variable. The example also uses the System
command to pass a UNIX “echo $DISPLAY” command to the shell in order to check the
variable’s setting.
system echo $DISPLAY
Related Commands
System
Related Commands
Dofile
The Set DRC Handling command does not support any (F )rules. Use the Set Flatten
Handling command to specify how design rule violations are handled for (F) rules.
Each design rule has an associated occurrence message and summary message. The tool
displays the occurrence message only for either error conditions or if you specify the Verbose
option for that rule. The tool displays the rule identification number in all rules violation
messages.
The Atpg_analysis option provides full test generation analysis when performing rules checking
for some clock (C) rules, for some data (D) rules, and for some extra (E) rules. For example, if
you specify Atpg_analysis for clock rule C1 and the tool simulates a clock input to be X, the
rule violation occurs when it is possible for the test generator to create a test pattern while that
clock input is on, all defined clocks are set off, and constrained pins are set to their constrained
state.
Note
When you specify Atpg_analysis, the tool requires some additional CPU time and
memory to perform the full test generation analysis. (The Atpg_analysis option is enabled
by default for rules C1, E4, E10, E11 and E13; you can disable it for these rules by
specifying the Noatpg_analysis option.)
Arguments
• rule_id
A required literal that specifies a design rule.
The design rule violations and their identification literals are divided into the following
seven groups: RAM, Clock, Data, Extra, Procedure, Scannability, and Trace rules violation
IDs.
• For a complete description of the RAM design rule IDs, refer to the “RAM Rules”
section in the Tessent Common Resources Manual for ATPG Products.
• For a complete description of the Clock design rule IDs, refer to the “Clock Rules”
section in the Tessent Common Resources Manual for ATPG Products.
• For a complete description of the Data design rule IDs, see the “Scan Cell Data
Rules” section in the Tessent Common Resources Manual for ATPG Products.
• For a complete description of the Extra design rule IDs, refer to the “Extra Rules”
section in the Tessent Common Resources Manual for ATPG Products.
• For a complete description of the Procedure design rule IDs, refer to the “Procedure
Rules” section in the Tessent Common Resources Manual for ATPG Products. The
violation handling for Procedure rules can only be set to ignore or error.
• For a complete description of the Scannability design rule IDs, refer to “Scanability
Rules (S Rules)” in the Tessent Common Resources Manual for ATPG Products.
• For a complete description of the Trace design rule IDs, refer to the “Scan Chain
Trace Rules” section in the Tessent Common Resources Manual for ATPG Products.
• Error
An optional literal that both displays the error occurrence message and immediately
terminates the rules checking.
• Warning
An optional literal that displays a warning summary message to indicate the number of
times the rule was violated. If you also specify the Verbose option, the tool also displays the
occurrence message for each occurrence of the rules violation.
• NOTe
An optional literal that displays a summary message to indicate how many times the rule
was violated. If you also specify the Verbose option, the tool also displays the occurrence
message for each occurrence of the rules violation.
• Ignore
An optional literal that disables the display of any messages when the specified rule is
violated. The tool must still check some rules and they must pass to allow certain functions
to be performed later.
• NOVerbose
An optional literal that displays the occurrence message only once for the rules violation.
This is the default.
• Verbose
An optional literal that displays the occurrence message for each violation of a design rules.
• NOAtpg_analysis
An optional literal that disables full test generation analysis when performing rules
checking. This is the default.
• Atpg_analysis
An optional literal that enables full test generation analysis when performing rules checking
for clock rules (like C1, C3, C4, and C5), some D rules (like D6 and D9), and some E rules
(like E4, E5, E8, E10, E11, and E12).
Note
To use the constraint values during the D6 rule analysis, you need to use the
Atpg_analysis option.
Related Commands
Report DRC Rules Set Flatten Handling
The next example re-enables compressed file handling, then saves the file fault.pat in GNU
format:
set file compression on
write netlist verilog.scan.gz -verilog
Related Commands
Set Gzip Options
• Ignore
An optional literal that specifies for the tool to not display any message for the rule’s
violations. The tool must still check some rules and they must pass to allow certain
functions to be performed later.
• NOVerbose
An optional literal that specifies for the tool to only display the occurrence message once for
the rules violation and to give a summary of the number of violations. This is the default.
• Verbose
An optional literal that specifies for the tool to display the occurrence message for each
occurrence of the rules violation.
Example
The following example changes the handling of the FG7 flattening rule to warning and specifies
that each occurrence should be listed:
set flatten handling fg7 warning verbose
Related Commands
Report Flatten Rules Set DRC Handling
Related Commands
Report Gates Set Gate Report
Arguments
• Normal
A literal that specifies only default information is in the gate report.
• Trace
A literal that adds the simulated values of the gates for shift patterns to the gate report. Use
the Trace option to determine why a scan chain was not properly sensitized during the shift
procedure.
• Error_pattern
A literal that adds the inputs and simulated values of the gates for patterns with audit error to
the gate report.
• PATtern_index pattern_index [-Internal | -External]
A literal, integer, and optional switch triplet that specifies the pattern to use when displaying
the value of a gate. The pattern_index must be a non-negative integer.
Depending on whether the tool is set up for primitive or design level gate reporting, you
may see additional information as follows (use the Report Environment command to check
the current gate level):
• Primitive level (Set Gate Level Primitive):
If a reported sequential element is part of a scan cell, and the value captured by the
element is not what is observed/unloaded from the scan cell for that particular pattern,
the display shows “Unobs” next to the captured value and explanatory text is included
indicating which element is observed for that scan cell and that pattern. “Unobs” and
extra explanatory text is displayed, for example, if you report on the slave latch within
an LSSD scan cell and the test procedure file includes a master_observe procedure (the
slave is not observed when a master_observe procedure exists).
Note
When reporting gates at the primitive level, the tool displays captured/unload values only
for the outputs of DFF and LA primitives, both scan and non-scan. Captured/unload
values are not reported for transparent latches (TLAs).
A literal and integer pair that specifies the pattern number from the last simulation pass that
you want the Report Gates command to use when displaying the value of a gate. For 32-bit
invocations, the pattern_number must be an integer between 0 and 31. For 64-bit
invocations, the pattern_number must be an integer between 0 and 63.
With Set Clock_off Simulation on, Set Split Capture_cycle on, and the Set Gate Report
command set with the Parallel_pattern option, the gate report displays three values. The first
is the result of the analysis for clock_off simulation. The second is the value at the leading
edge of the clock. Finally, the third is the trailing edge of the clock (for split capture_cycle
analysis).
When reporting a sequential element (scan or nonscan), the command also displays in a pair
of brackets ([ ]) at each output of the element, the value that resulted from capture. If set up
for primitive level gate reporting (Set Gate Level Primitive), the tool displays captured
values only for the outputs of DFF and LA primitives. Captured values are not reported for
transparent latches (TLAs).
• Fault_status
A literal that specifies fault detection status of both SA-0 and SA-1 of all gates. If a
schematic is currently displayed in the DFTVisualizer Debug window and you change the
gate report data (by issuing the Set Gate Report command), all fault sites are annotated with
fault detection status.
The format of the fault status data is as follows:
<sa0-status:sa1-status>
where sa0-status and sa1-status are one of the following:
DS — Detected by simulation
DI — Detected by implication
PU — Possible detect untestable
PT — Possible detect testable
AU — Atpg untestable
UC — Undetected uncontrolled
UO — Undetected unobserved
UU — Untestable unused
BL — Untestable blocked
TI — Untestable tied
RE — Untestable redundant
F — Recognized fault site, but no fault has been added yet
N — Site is nofaulted; either due to internal faults being on or off depending on
where the fault site is), or because a user has nofaulted it with the Add Nofaults
command.
“-” — Nothing known about this pin; used for pins created by the flattening process or
pins that are not fault sites (for example, the pins of an unnamed internal instance of a
library cell).
The DFTVisualizer command, Report Display Instances, reports the fault detection status in
the transcript.
• Test_data
A literal that specifies previously-calculated control and observe values. You must specify
the Test_data option prior to running design rules checking to make test data available.
This option is primarily for logic BIST purposes (when inserting control and observation
points). It is typically used with the Analyze Control Signals and Analyze Output Observe
commands. The data for each pin of a reported gate consists of three integers indicating how
many times the pin was controllable to 0, how many times it was controllable to 1, and how
many times it was observable during the preceding analysis. The data is displayed in the
following format:
(# of times controlled to 0-# of times controlled to 1, # of times observed)
Note
When the Test_data option is in effect, the Report Environment command shows “BIST
data” as the current gate report setting.
• TIe_value
A literal that adds the simulated values that result from all natural tied gates and learned
constant value non-scan cells to the gate report.
• Constrain_value
A literal that adds the simulated values that result from all natural tied gates, learned
constant value non-scan cells, constrained pins, and constrained cells to the gate report.
The Report Gates command displays three values which are separated by a slash (/). These
values are the gate constrained value (0, 1, X, or Z), the gate forbidden values (-, 0, 1, Z, or
any combination of 01Z), and the fault blockage status (- or B, where B indicates all fault
effects of this gate are blocked).
• Drc_pattern procedure_name [-All | time]
Two literals and an optional time triplet that specifies the name of the procedure and the
time in the test procedure file that the Report Gates command uses to display a gates-
simulated value.
The valid options for use with Drc_pattern are as follows:
procedure_name — A literal that specifies a procedure in the test procedure file for the
Report Gates command to use when displaying the value of a gate. The valid literals
for the procedure_name option are as follows:
Test_setup — A literal that specifies the use of the test_setup procedure. In the test
procedure file, this procedure sets non-scan elements to the state you desire for
the load_unload procedure. The tool uses the entire test_setup procedure unless
you restrict the report to a certain portion using the -Cycle or -Time switch. In
order to conserve screen width, time values are listed vertically in Test_setup gate
reports.
-Cycle | -Time n1 — A switch and integer pair that specifies to use the part of the
test_setup procedure that begins either at a particular cycle or at a particular time.
The following describes each of the arguments in more detail:
-Cycle — A switch that indicates n1 is a cycle number and specifies to
start the report at cycle n1.
-Time — A switch that indicates n1 is a time and specifies to start the
report at time n1. The time units are based on the timescale defined in the
test procedure file, which by default is 1 nanosecond.
n1 — An integer that specifies a cycle or time at which to start
reporting. When used with the -Time switch, n1 specifies a time.When
used with the -Cycle switch, n1 specifies a cycle. The tool numbers cycles
beginning with 0; so, for example, to specify the second cycle, you would
use “-cycle 1”.
n2 — An optional integer that specifies to report from cycle (or time) n1 to cycle (or
time) n2 and stop reporting.
End — An optional literal that specifies to report from cycle (or time) n1 to the end
of the test_setup procedure.
Note
When using the -Cycle or -Time switch, if you do not include either the n2 or End
argument, gate reports will show data for only the n1 cycle (or time).
Load_unload — this required procedure describes how to load and unload data in
the scan chains.
SHIft — this required procedure describes how to shift data one position down the
scan chain.
SKew_load — this optional procedure describes how to propagate the output value
of the preceding scan cell into the master memory element of the current cell
(without changing the slave) for all scan cells.
SHADOW_Control — this optional procedure describes how to load the contents
of a scan cell into the associated shadow.
Master_observe — this procedure describes how to place the contents of a master
into the output of its scan cell.
SHADOW_Observe — this optional procedure describes how to place the contents
of a shadow into the output of its scan cell.
-All — An optional switch that specifies to use all times in the test procedure file. This is
the default.
time — An optional positive integer greater than 0 that specifies a time in the test
procedure file.
Example 2
The following example illustrates how to use the Report Gate command to trace the transition of
the pattern along the false paths. In this example, false path and an internal pattern simulation
values are reported.
ATPG> set gate report –false_paths on
ATPG> set gate report pattern_index 1
ATPG> report gates /ix21/UD1
ATPG> rep gat /ix21/UD1
// /ix21/UD1 (36) DFF
Functional Specification for New ATPG Kernel
Rev. 0.1 Page: 8
Date Modified: 1/20/09 9:49 PM
// "S" I (0-0)(--) 6-
// "R" I (0-1)(--) 20-
// "C0" I (1-0)(--) 10-
// "D0" I (1-1)(To) 32-
// "OUT" O (1-1 [0])(In/Ef) 9-
// MASTER cell_id=2 chain=chain1 group=grp1 invert_data=FFFT
ATPG> f
// /ix21/UD1 (9) BUF
// "I0" I (1-1)(Fr/Ef) 36-
// "OUT" O (1-1)(In) 18- 19-
ATPG> f
// /ix21 (18) BUF
// "I0" I (1-1)(In) 9-
// Q O (1-1)(To) 28-/fdgd/A 29-/ix19/A
ATPG> f
// /fdgd (28) NAND
// A I (1-1)(To) 18-/ix21/Q
// B I (1-0)(--) 1-/s
// Z O (0-1)(Ef) 37-/y[2]
ATPG> f
// /y[2] (37) PO
// "I0" I (0-1)(Ef) 28-/fdgd/Z
// y[2] O (0-1)(Ef)
Related Commands
Report Gates Set Gate Level
Related Commands
Set File Compression
Extra — A literal specifying that external controllable clocks replace the original clocks
so that the scan cells are capable of holding their scan values right after scan loading.
This option is the default for non-scan cells that DFTAdvisor determines do require
extra logic for controllability of that non-scan cell’s clocks. If you specify this option,
then DFTAdvisor adds extra logic to every non-scan cell on a global design-wide
basis.
• -Disturb ON | OFf
An optional switch and literal pair that determines the effect of scan loading on non-scan
memory elements. The two -Disturb options are as follows.
ON — A literal specifying that the value of the non-scan memory elements can be
disturbed by scan loading operations. This is the default. If the disturb option is on,
DFTAdvisor sets the states of non-scan memory elements to the unknown (X) state
after the scan loading operation.
OFf — A literal specifying that the value of non-scan memory elements cannot be
disturbed by scan loading. When the disturb option is off, the states of the non-scan
memory elements are the same as before the scan loading operation.
Examples
The following example forces DFTAdvisor to add extra primary input pins to replace the
original clocks on a global design-wide basis:
set identification model -clock extra
set system mode dft
setup scan identification full_scan
run
Related Commands
Report Environment
Set Io Insertion
Scope: All modes
Prerequisites: Input and output buffers must be defined in either the ATPG library or with the
Add Cell Models command.
Usage
SET IO Insertion ON | OFf | {[TEn] [Ram] [SEn] [TClks] [SIns] [SOuts] [Control]
[OBserve] [-Model model_name]}
Description
Specifies whether to insert I/O buffers.
The Set IO Insertion command specifies whether DFTAdvisor should insert I/O buffers
automatically during scan insertion. By having automatic I/O buffer insertion turned off (the
default), you can perform scan insertion at the block level, or insert the I/O buffers manually
after inserting scan at the design level.
If you defined I/O buffers in the ATPG library or used the Add Cell Models command to define
them, when you set this command to ON, DFTAdvisor will automatically insert the I/O buffers
during scan insertion.
You can specify which test control signals should have I/O buffers added. You can specify one
or more of the test signal literal arguments. The specified signals can be internal signals (output
port of a library cell) or new pins generated by DFTAdvisor.
The Set IO Insertion command is additive. This means that each time you issue the command, it
adds any new options to those already defined.
Arguments
• ON | OFf
A required literal that specifies whether to insert I/O buffers for all test signals. If you are
not turning On or Off all test signals, you must specify at least one of the test signal
arguments. If you want to remove any existing I/O buffer signals from the list of signals to
buffer, you turn off I/O buffer insertion (Set IO Insertion off). The default upon invocation
is off.
• TEn
A literal that specifies to buffer the test_enable pin.
• Ram
A literal that specifies to buffer the ram_write_control and ram_read_control pins.
• SEn
A literal that specifies to buffer the scan_enable pin(s).
• TClks
A literal that specifies to buffer all test clock pins, including clock, set, and reset.
• SIns
A literal that specifies to buffer all scan_in pins of inserted scan chains.
• SOuts
A literal that specifies to buffer all scan_out pins of inserted scan chains. No buffer is
inserted unless a buffer has been defined with the “-Type outbuf” option of the Add Cell
Models command, or if you have used the -Model switch, and specified a buffer as part of
this command.
• Control
A literal that specifies to buffer all test point control pins, if no scan cell is requested with
the Setup Test_point Insertion command.
• OBserve
A literal that specifies to buffer all test point observe pins, if no scan cell is requested with
the Setup Test_point Insertion command.
• -Model model_name
An optional switch and string pair that specifies the name of a buffer in the ATPG library for
DFTAdvisor to insert on the test pins. You must first identify the buffer with either the Add
Cell Models command or with the cell_type library attribute. The specified model should be
the OUTBUF type for scan outputs and the INBUF type for all scan inputs and test signals.
If you do not use the -Model switch, by default, DFTAdvisor uses the first buffer model in
the buffer cell model list (which you can see with the Report Cell Models command).
Examples
The following example shows how to enable the adding of I/O buffers automatically to all test
control signals:
set io insertion on
To enable the adding of I/O buffers to only the scan in, scan out, control, and observe signals,
enter:
Related Commands
Add Buffer Insertion Add Cell Models
If a cell order file is used with the Insert Test Logic command, lockup cells are inserted only at
the locations specified in the cell order file. If you are using a DLAT model as a lockup cell, you
must specify the model type using the Add Cell Model command. If you are using a DFF model
as a lockup cell, you must specify the model type using the Set Lockup Cell command because
it is the only way to specify the type of library model to use for lockup cells. Using the Set
Lockup Cell command also turns on the reporting of those locations that require lockup cells in
theory but are not covered in the the cell order file. If no lockup cell location is specified in the
cell order file, the tool inserts lockup cells automatically at the required locations.
For more information, see the Insert Test Logic command.
Table 2-7 illustrates how DFTAdvisor inserts lockup cells at different clock/edge domains.
The first column lists a clock/edge transition where an active high-clock 1 to an active-low
clock 2 is shown as c1+ --> c2-.
The second column lists the lockup cell models defined in the DFT library where lat+ is an
active-high model and lat- is an active-low model.
The third column lists the transitions after lockup cell insertion where the lockup cell inserted is
listed in the parenthesis. A lockup cell labeled as (lat+ + inv) in the table indicates that a lockup
model is inserted in the scan path and an inverter is inserted on the clock line of the lockup cell
to provide a half cycle delay. In Table 2-7, it is assumed that the clock signal is tapped from the
clock input of the leading flop. The inverter is used when an active low model is needed but not
defined.
DFTAdvisor can also insert lockup cells at the non-transition locations in a chain, namely, at the
beginning and at the end of the chain. The -Capture_edge_at_scan_chain_input switch provides
the ability to control the time when the first cell of the scan chain captures a value. To guarantee
a capture edge (specified with LE or TE argument) at the first cell in chain, DFTAdvisor inserts
a lockup cell before the first cell in the chain (closer to the scan chain input) if the first cell has
the opposite capture edge. If the ANY argument is specified, DFTAdvisor always inserts a
lockup cell at the beginning of the chain with the opposite capture edge of the first cell. The tool
uses the clock signal of the first cell with the opposite clock edge when a DLAT model is used
and with the same clock edge when a DFF model is used for a lockup cell. Note that the capture
and the change edges for a DLAT model are the opposite, whereas for a DFF model, they are
the same. For example, for an active high DLAT model, the capture edge is trailing (TE) and the
change edge is leading (LE).
Similarly, for a leading edge DFF model, the capture and change edges are both leading (LE).
The Change_edge_at_scan_chain_output switch provides the ability to control the change time
at the output of the last scan cell in the chain. To guarantee a change edge (specified with LE or
TE argument) at the last cell in chain, DFTAdvisor inserts a lockup cell after the last cell in the
chain (closer to the scan chain output) if the last cell has the opposite change edge. If the ANY
argument is specified, DFTAdvisor always inserts a lockup cell at the end of the chain with the
opposite change edge of the last cell. The tool uses the clock signal of the last cell with the
opposite clock edge regardless of the latch model being used (DLAT or DFF) for a lockup cell.
Lockup cells are inserted based on the change edge of the source cell clock and the capture edge
of the destination clock. For a lockup cell that will be inserted at the beginning of a scan chain,
the source cell does not exist and therefore the capture edge of the destination cell (first cell in
chain) is specified. Similarly, for lockup cell that will be inserted at the end of a scan chain, the
destination cell does not exist and the change edge of the source cell (last cell in chain) is
specified. The lockup cells between two cells within the scan chain are inserted automatically
by DFTAdvisor since both source and destination cells are available.
For more information on change edge and capture edge, refer to Lockups Between
Decompressor and Scan Chain Inputs in the Tessent TestKompress User’s Guide.
For more information on inserting lockup cells, refer to Merging Chains with Different Shift
Clocks in the Scan and ATPG Process Guide.
Arguments
• OFf | ON
A required literal that determines whether lockup cells are inserted. By default, lockup cells
are inserted.
• -First_clock | -SEcond_clock
An optional switch that determines which clock signal the lockup cells use. Options include:
-First_clock — clock signal is tapped from the clock input of the scan cell closer to the
scan chain input. By default, the first clock is used.
-SEcond_clock — clock signal is tapped from the clock input of the scan cell closer to
the scan chain output.
• -Type {DLat | DFf}
Optional switch and literal pair that specifies the type of model used for a lockup cell.
Options include:
DLat — Specifies D latch with two input pins (enable and data).
DFf — Specifies a D flip-flop with two input pins (clock and data).
Example 1
The following example defines two different groups of clocks, specifies a flop model and
inverter model to use for lockup cells, enables lockup cell insertion, and performs the insertions.
The -Clock Merge option combines the scan cells associated with each of the specified clock
groups into a scan chain when the test logic is inserted.
add clocks 0 clk1 clk2 clk3
add clocks 1 clk4 clk5 clk6
add clock groups group1 clk1 clk2 clk3
add clock groups group2 clk4 clk5 clk6
add cell model dff04 -type dff clk data
add cell model inv -type inv
set lockup cell on -type dff
run
insert test logic -scan on -clock merge
In this example, DFTAdvisor creates two scan chains, one for each clock group and inserts
lockup cells between the clock domains that are in the same clock group.
Example 2
The following example defines a latch model and inverter model to use for lockup cells, turns
on the insertion of lockup cells to ensure that the first scan cell captures data on the leading
edge, and inserts the test logic.
add cell model dlat1a -type dlat enable data
add cell model inv -type inv
set lockup cell on -capture_edge_at_scan_chain_input LE -type dlat
run
insert test logic -scan on
Example 3
The following example inserts lockup cells at the end of all wrapper chains with ANY capture
edge and at the end of core chains with a LE capture edge. The following commands must be
executed in the order shown because the effect of the switches is cumulative. Note that the
second command overrides the capture edge constraint for wrapper chains only which leaves
the LE capture constraint to apply to core chains only.
Related Commands
Add Cell Models Delete Test Points
Add Clock Groups Insert Test Logic
Add Test Points Report Test Points
The following information shows what the logfile contains after running the preceding set of
commands:
// command: set scr d off
// command: add clocks 0 clk
// command: add clocks 1 pre clr
// command: report clocks
PRE, off_state 1
CLR, off_state 1
CLK, off_state 0
Related Commands
Set Screen Display
Related Commands
Add Nonscan Instances Set DRC Handling
Add Nonscan Models
The Set Scan Enable command uses either the default scan enable signal names or allows you to
assign a new scan enable signal name to all or to just the specified scan chains using the
scan_enable_pin_pathname argument. Table 2-8 shows the default names for three types of
scan enable signals used in DFTAdvisor.
Table 2-8. Default Scan Enable Signal Names
Default Name Description
scan_en Scan enable for mux-DFF type (core scan cells)
scan_en_in Scan enable for mux-DFF type (input wrapper cells)
scan_en_out Scan enable for mux-DFF type (output wrapper cells)
DFTAdvisor creates three types of scan enable signals: one for core scan cells, one for input
wrapper cells, and one for output wrapper cells. You can override the default base names for
each scan enable signal type using one of the following commands:
The Set Scan Enable command can be issued in a sequence to either refine the scan enable
signals assignments or overwrite the previous assignments (see the example section for this
command). In general, the following rules are applied to determine how signal assignments are
affected by subsequent commands:
• The most recent command that assigns a scan_enable signal takes precedence.
• If the most recent command operates on a disjoint set of scan chains, then the previous
scan enable signal assignments remain intact.
• If the most recent command operates on previously specified scan chains, then previous
scan_enable signal assignments are overwritten.
Arguments
• scan_enable_pin_pathname [-Isolate]
An optional string that specifies a pin pathname for the scan_enable signal driver. The
specified pin can be either a top-level scan enable port or an internal instance pin
(connection node). If an internal instance pin is specified, it must trace back to a primary
input via a simple path (only inverters or buffers) or the primary_input argument.
-Isolate — Isolates new fanouts of the specified scan enable signal. Each new fanout
connection is gated by an AND or NOR gate and controlled by the global test enable
signal. This switch is applicable to a scan enable signal driven by a top-level port or a
top-level internal instance pin only.
If no scan_enable signal driver is specified, the default scan enable name is used: scan_en,
scan_en_in, scan_en_out.
• primary_input
An optional string that specifies a top-level scan_enable port. This argument supplies a
primary input/top-level port for an internal instance pin specified by the
scan_enable_pin_pathname argument. The specified top-level port is used when generating
the ATPG dofile and test procedure files. If the specified top-level port does not exist, it is
created. The specified top-level port must be a primary input port.
• -Active {High | Low}
An optional switch and literal pair that specifies whether the scan_enable signal is active
low or high.
• -CHain chain_name…
An optional switch and a repeatable string that identifies individual scan chains to assign the
specified scan_enable signal to.
• -Wrapper_chain [chain_name… | -INPut | -OUTput]
An optional switch and a repeatable string or literal pair that identifies the wrapper chains to
assign a specified scan_enable signal to. Options include:
chain_name... — Specifies one or more wrapper chain names.
-INPut — Specifies all input wrapper chains when two-domain distribution is used.
-OUTput — Specifies all output wrapper chains when two-domain distribution is used.
The -Input | -Output options should be used if the specified scan enable signal will be
associated with either all input wrapper chains or all output wrapper chains, respectively.
When the -Wrapper_chain switch is issued without arguments, the specified scan enable
signal is assigned to all wrapper chains when one-domain distribution is used.
Wrapper chain creation must be enabled. For more information on distribution modes and
creating wrapper chains, see the Setup Pin Constraints command.
This switch, along with either the -Input or -Output option, can be used in conjunction with
the -Clock switch. In this case, the specified scan enable signal is assigned only to the
wrapper chains that belong to both the specified type of wrapper chains and the specified
clock domain.
• -Partition partition_name…
An optional switch and repeatable string pair that specifies names of scan partitions added
using the Add Scan Partition command. Use this option to assign a specified scan_enable
signal to the scan chains created within one or more partitions.
This option can be used in conjunction with the -Clock switch. In this case, the specified
scan enable signal is assigned only to the scan chains that belong to both the specified scan
partition and the specified clock domain.
• -Clock clock_pin
An optional switch and string pair that associates the specified scan enable signal with the
specified clock (clock domain). Clock_pin can be either an existing top level port (primary
input pin) or an existing internal pin pathname.
This switch can be used in conjunction with either the -Wrapper_chain or -Partition option,
in which case a unique scan enable signal is generated just for the scan chains that belong to
both the specified wrapper chain type or partition and the specified clock domain. This
switch is ignored when it is used in conjunction with the -Chain option.
An error message is issued when this switch is specified with either the -Clock Merge or the
filename -Fixed option of the Insert Test Logic command.
This switch can be used in conjunction with the -Edge Merge option of the Insert Test Logic
command.
Example 1
Assuming two-domain distribution of the identified wrapper cells, the following example uses a
sequence of Set Scan Enable commands to make all input wrapper chains controllable via the
insen1 signal, and all output wrapper chains controllable via the outsen1 signal. All of the
commands operate on disjoint sets of scan chains; therefore, each command affects different
scan chains and does not override scan_enable assignments made by the previous command.
Set Scan Enable insen1 -wrapper_chain -input
Set Scan Enable outsen1 -wrapper_chain -output
Example 2
The following example defines two scan partitions: partA and partB. A single scan chain is
inserted by default for partA and two scan chains are inserted for partB. Two scan chains are
inserted for the remaining cells in the default scan partition, as specified by the -number
argument of the Insert Test Logic command.
Set System Mode dft
Add Scan Partition partA -instance udff1 umodA/udff2 umodB/udff3 // 1 chain
Add Scan Partition partB -instance umodC -number 2 // 2 chains
Insert Test Logic -number 2 // 2 chains inserted for the default partition
The first Set Scan Enable command makes all scan chains controllable via the sen scan enable
signal. The second Set Scan Enable command refines the first command and makes scan chains
of partA controllable via the senPartA scan enable signal. The third Set Scan Enable command
further refines the first command and makes scan chains of partB controllable via the senPartB
scan enable signal.
The second command operates on a set of scan chains that is entirely within the set specified in
the first command; therefore, the scan chains that are in both sets will get the most recent
assignment. The third command operates on a set of scan chains that is disjoint from the set in
the second command but is entirely contained within the first set; therefore, the scan chains that
are in both the first and the third sets get the most recent assignment.
Example 3
The following example defines two scan partitions: partA and partB. The first Set Scan Enable
command makes all scan chains controllable via the sen scan enable signal. The second Set
Scan Enable command specifies an internal pin, /modX/i_sen/x, associated with the primary
input, senPartA, as a driver of the scan enable signal controlling all scan chains of partA. The
third Set Scan Enable command specifies an internal pin, /modY/i_sen/x, associated with the
primary input, senPartB, as driver of the scan enable signal controlling all scan chains of partB.
Add Clock 0 /clkInput
Set System Mode dft
Add Scan Partition partA -instance udff1 umodA/udff2 umodB/udff3 // 1 chain
Add Scan Partition partB -instance umodC -number 2 // 2 chains
Set Scan Enable sen
Set Scan Enable /modX/i_sen/x senPartA -partition partA
Set Scan Enable /modY/i_sen/x senPartB -partition partB
Insert Test Logic -number 2 // 2 chains inserted for the default partition
The last Set Scan Enable command specifies that all scan chains in the clkInput clock domain
are controllable by the senClk scan enable signal. The second and the third Set Scan Enable
commands overwrite the assignments of the first Set Scan Enable command affecting chains
that are in partA and partB. Since the second and the third Set Scan Enable commands operate
on disjoint sets, they do not affect previous assignments.
The fourth command will overwrite some of the assignments of the second and the third
commands for scan chains that are in partA and partB and also in the clkInput clock domain. If
it is desirable to restrict the clock domain's assignments to a specific partition, the -Partition and
-Clock options should be issued in conjunction in the same Set Scan Enable call as shown in
Example 4.
Example 4
In this example, two scan partitions are defined: partA and partB. This example uses a Set
Scan_enable Sharing command to make all scan chains within each scan partition controllable
via a unique scan enable signal partSenN where N is a unique number for each partition. Next,
the Set Scan Enable command specifies to assign a unique scan enable signal, clkSen, to only
the scan chains inside the partB scan partition that are also in the clock1 clock domain. The
second call operates on a set of scan chains that is the same as the set of scan chains in the first
call; therefore, certain previous assignments that are subject to the most recent assignment are
overwritten.
Related Commands
Add Scan Partition Setup Pin Constraints
Report Scan Enable Setup Scan Insertion
Set Scan_enable Sharing
• -Max_number_of_chains integer
A required switch and integer or literal pair that divides scan chains into groups. Options
include:
integer — Groups chains by a specified integer, where each group cannot have more
than the integer number of scan chains. A unique scan_enable signal is then generated
and assigned to each group.
• -Input_wrapper_chain | -Output_wrapper_chain
Optional switches specifying to generate a unique scan enable signal for either all input
wrapper chains or all output wrapper chains. When the switches are used in conjunction
with the -Max_number_of_chains option, the number specified by integer is applied only to
the specified type of wrapper chains. The generated scan enable signals are treated as
SEN_IN or SEN_OUT type, respectively.
-Input_wrapper_chain — Used to specify grouping for input wrapper chains. When this
switch is used in conjunction with the the Max_number_of_chains switch, the
number specified by integer is applied to only input wrapper chains. Only valid when
input wrapper chains are defined. For more information, see the Setup Pin Constraints
command.
-Output_wrapper_chain — Used to specify grouping for output wrapper chains. When
this switch is used in conjunction with the the -Max_number_of_chains switch, the
number specified by integer is applied to only output wrapper chains. Only valid
when output wrapper chains are defined. For more information, see the Setup Pin
Constraints command.
These switches can be used in conjunction with the -Clock_domain switch.
• -Scan_partition
An optional switch that specifies groupings for each scan partition added using the Add
Scan Partition command.
With this switch, a unique scan enable signal is generated for every scan partition (that is,
for scan chains within each partition). When this switch is used in conjunction with the
-Max_number_of_chains switch, the number specified by integer is applied to each scan
partition.
This switch can be used in conjunction with the -Clock_domain switch.
• -Clock_domain
An optional switch that specifies to generate a unique scan enable signal for each clock
domain. When this switch is used in conjunction with the -Max_number_of_chains switch,
the number specified by integer is applied to each clock domain.
This switch can be used in conjunction with either the -Input_wrapper_chain or
-Output_wrapper_chain option; in this case a unique scan enable signal is generated only for
each clock domain within the input or output wrapper chains.
This switch cannot be used in conjunction with the -Clock Merge or the filename
-Fixed switches of the Insert Test Logic command; in this case an error message is issued.
This switch can be used in conjunction with the -Edge Merge switch of the Insert Test Logic
command.
Example 1
The following example uses a sequence of Set Scan_enable Sharing commands to make every
group of 3 input wrapper chains controllable via a unique scan_enable signal, insenN, and every
group of 5 output wrapper chains controllable via a unique scan enable_signal, outsenN.
Set Scan_enable Sharing -Prefix insen -Max_number_of_chains 3 -Input_wrapper_chain
Set Scan_enable Sharing -Prefix outsen -Max_number_of_chains 5 -Output_wrapper_chain
The second command operates on a set of scan chains that is disjoint from the set of scan chains
operated on by in the first command, so the previous assignments remain intact.
Example 2
The following example defines 3 scan partitions: spar1, spar2, spar3. Two scan chains are
created for spar1, 6 scan chains for spar2, and 3 scan chains for spar3. Two scan chains are
created in the default scan partition for the remaining cells, as specified by the -number
argument of the Insert Test Logic command.
add scan partition spar1 -ins a2/e* -verbose // 2 chains: chain1, chain2
add scan partition spar2 -ins a1/b2 a1/b1/e2 -max_length 2 -verbose // 6 chains: chain3, chain4,
chain5, chain6, chain7, chain8
add scan partition spar3 -mod C -number 3 -verbose // 3 chains: chain9, chain10, chain11
set scan_enable sharing -prefix SENPAR -scan_partition
insert test logic -number 2 // 2 chains for the default partition: chain12, chain13
report scan enable
---------------------------------------------------------------------------
// command: report scan enable
---------------------------------------------------------------------------
Primary Input Internal Connection Node Scan Chain
---------------------------------------------------------------------------
/SENPAR1 -- chain12
chain13
---------------------------------------------------------------------------
/SENPAR2 -- chain1
chain2
---------------------------------------------------------------------------
/SENPAR3 -- chain3
chain4
chain5
chain6
chain7
chain8
---------------------------------------------------------------------------
/SENPAR4 -- chain9
chain10
chain11
---------------------------------------------------------------------------
A unique scan_enable signal, SENPARN, is generated and assigned to all core scan chains.
Example 3
The following example uses a sequence of Set Scan_enable Sharing commands to make every
group of three input wrapper chains controllable via a unique scan enable signal insenN, where
N is a unique number for each group, and every group of five output wrapper chains
controllable via a unique scan enable signal outsenN, where N is a unique number of each
group.
The second command operates on a set of scan chains that is disjoint from the set of scan chains
in the first command; therefore, the previous assignments are not affected by the subsequent
assignments.
Example 4
In this example, two scan partitions are defined: partA and partB. This example uses a Set
Scan_enable Sharing command to make all scan chains within each scan partition controllable
via a unique scan enable signal partSenN, where N is a unique number for each partition. Next,
the Set Scan Enable command specifies to assign a unique scan enable signal, clkSen, to only
the scan chains inside the partB scan partition that are also in the clock1 clock domain. The Set
Scan Enable command operates on a set of scan chains that is the same as the set of scan chains
in the Set Scan_enable Sharing command; therefore, certain previous assignments that are
subject to the most recent assignment are overwritten.
Related Commands
Add Scan Partition Setup Pin Constraints
Report Scan Enable Setup Scan Insertion
Set Scan Enable
Related Commands
Report Environment Set Logfile Handling
Related Commands
Set DRC Handling Report Environment
of many flip-flops (which results in multiple C6 violations), the multiplexer is inserted at the
highest possible level of hierarchy. The driving scan cells are selected to be in the same
clock domain as the flip-flops generating the C6 violations. This setting is off by default.
Note
This option cannot be used when the Set Drc Handling -Conservative switch is enabled.
Example
The following example checks the set and clock signals of uncontrollable memory elements and
makes them controllable with the addition of test logic:
add clocks 0 clk
set test logic -set on -clock on
set system mode dft
report dft check
add cell models and2 -type and
add cell models or2 -type or
add cell models mux21h -type mux s a b
add cell models nor2 -type nor
report cell models
insert test logic
Related Commands
Add Cell Models Report Cell Models
Delete Cell Models Set Latch Handling
Related Commands
Add Scan Chains Report Scan Chains
Related Commands
Report Environment
Arguments
• {OFf | ON | Busdrivers | Scan | primary_input_or _output... | Decoded}
Required literal or repeatable string that specifies which tri-state devices to control during
scan shifting. The default setting is off. Options include:
OFf — no test logic is inserted to control tri-state devices. Default setting.
ON — test logic is inserted when necessary to control all tri-state devices.
Busdrivers — test logic is inserted to control tri-state devices driving bus nets.
Scan — test logic is inserted to control tri-state devices used as scan inputs/outputs.
primary_input_or_output — specifies a primary input or output pin. Test logic is
inserted to control the tri-state devices driving the specified primary output pin(s) or
driven by the specified primary input pin(s).
Decoded — test logic is inserted to control tri-state devices with the TEN signal to
ensure test logic structures are valid only in test mode.
Example 2
The following example uses the force_gating switch to insert test logic controlled by the SEN
control signal on the enable line of /tpin_2. /tpin_2 is a tristate device driving primary output
out4; its enable signal is directly controlled by the primary input /io_control1.
----------------------------------------------------------------------
Bidi Primitive Control Control
Tri-state State Direction Gating ID Signal Driver
----------------------------------------------------------------------
/tpin_1 ON -- NO 44 SEN /io_control
/tpin_2 ON -- YES 43 SEN /io_control1
/bidi_1 ON OUT NO 45 SEN /io_control
/bidi_2 ON OUT NO 46 SEN /io_control
/bidi_3 ON OUT NO 41 SEN /io_control
----------------------------------------------------------------------
Related Commands
Report Dft Check Set Bidi Gating
Report Test Logic Set Test Logic
Report Control Signals
// Note: The following clock gating instances have unconnected ports that
will be connected to a scan enable signal.
-------------------------------------------------------------------------
Clock Gating Unconnected Signal
Instance Port Driver
-------------------------------------------------------------------------
clkg1/clkg1/clkgLA SE sen1
clkg2/clkg1/clkgLA SE sen
clkg3/clkg1/clkgLA SE sen
-------------------------------------------------------------------------
.......
insert test logic
Related Topics
Report Clock Gating
Setup EDT
Scope: All modes
Usage
SETup EDt -Location {External | Internal}
Description
The Setup EDT command identifies a design that uses the internal flow and enables the Write
ATPG Setup command to write out EDT-specific commands for the internal flow to the ATPG
setup files.
Arguments
• -Location Internal | External
A required switch and literal pair that specifies whether the location of the EDT logic is
internal or external to an existing chip. The default is the external flow.
Note
Tessent TestKompress supports two flows for inserting compression hardware into a
netlist: an internal flow and an external flow. For more information on these flows, refer
to the Tessent TestKompress User’s Guide.
Examples
The following example writes out EDT-specific commands for an internal flow to the ATPG
setup files.
setup edt -location internal
write atpg setup scan -edt
Related Commands
Write Atpg Setup
Setup Naming
Scope: All modes
Usage
SETup NAming [{-Net prefix_name} |
{-INStance {[Tristate | Xbound | Lockup | CONTROL_Flop | CONTROL_Point |
OBSERVE_Flop|OBSERVE_Point|IN_register|OUt_register] prefix_name}…}
{-Scan_chain prefix_name} |
{-INPut_wrapper_chain prefix_name} |
{-Output_wrapper_chain prefix_name}]
Description
Explicitly defines the default names for nets and instances, and reports current or modified
settings.
The Setup Naming command serves two purposes. You can use it to change the default prefix
that DFTAdvisor uses to name certain types of added test logic, and you can change the default
the tool uses to name nets.
If you invoke the command without an argument, it automatically reports on the current settings
for all prefixes. If you make any changes, it reports the modified settings. Table 2-9 shows the
invocation defaults for particular logic instance types:
Table 2-9. Instance Type Prefix Defaults
Object Type Default Prefix Name Instance Literal
Tri-state control tcntl Tristate
X bounding xbnd Xbound
lockup cells lckup Lockup
Control point flip-flop ctlff CONTROL_Flop
Control point logic ctlpt CONTROL_Point
Observe point flip-flop obsff OBSERVE_Flop
Observe point logic obspt OBSERVE_Point
Input partition flip-flop inreg IN_register
Output partition flip-flop outreg OUt_register
Other logic uu
Arguments
• -Net prefix_name
An optional switch and string pair that specifies the prefix_name you want as the default
prefix for naming nets. The invocation default prefix is net.
DFTAdvisor will change the prefix names and issue the following report:
// Setup naming prefixes:
// nets : net
// tristates : tric
// xbounding : xbnd
// lockup cells : lockl
// observe flops : obsff
// observe points : obspt
// control flops : ctlff
// control points : ctlpt
// input registers : inreg
// output registers : outreg
// other instances : uu
Example 2
The following example overrides the default scan chain name assignments for all three scan
chain types and applies the new default prefixes to the newly created chains of each type.
setup naming -scan_chain coreChain
setup naming -input_wrapper_chain inputWrapper
setup naming -output_wrapper_chain outputWrapper
...
report scan chains
Input wrapper chains:
-------------------------------------------------------------------------
chain = inputWrapper1 group = group1 input = /scan_in1 output = /out1
length = 3 scan_enable = /se_in clock = /clk
chain = inputWrapper2 group = group1 input = /scan_in2 output = /scan_out1
length = 3 scan_enable = /se_in clock = /clk
chain = inputWrapper3 group = group1 input = /scan_in3 output = /scan_out2
length = 2 scan_enable = /se_in clock = /clk
Related Commands
Insert Test Logic Report Scan Chains
Set Test Logic Setup Registered IO
Examples
The following example defines the default mask for all but the LBISTArchitect scan output
pins, then adds two additional pin masks with a hold value of 1:
setup output masks on -lbist_exclude
add output masks out1 out2 -hold 1
Related Commands
Add Output Masks Report Output Masks
Delete Output Masks
• -Exclude primary_input_pin
An optional switch and repeatable string that specifies to exclude the specified primary
input pins from the setup setting.
Examples
The following example defines the default pin constraints for all but the LBISTArchitect related
control and data pins, then adds two additional pin constraints that override the default:
setup pin constraints c0 -lbist_exclude
add pin constraints kgmt c1
add pin constraints ckgmt c1
Related Commands
Add Pin Constraints Delete Pin Constraints
Add Seq_transparent Constraints Report Pin Constraints
Analyze Input Control
Setup Registered IO
Scope: All modes
Prerequisites: A scan model must be defined with the Add Cell Models command before using
this command.
Usage
SETup REgistered IO {[-Exclude pin_names…] | [-INClude pin_names...]}
[-INPUT_Model model_name] [-OUTPUT_Model model_name]
[-INPUT_Clock pin_pathname] [-OUTPUT_Clock pin_pathname]
[-REG_Floating] [-REG_Comb_feedthrough] [-REG_Seq_feedthrough]
Description
Turns on the automatic registration of the primary I/O pins of the design. The registered cells
are also placed into scan chains. The user-defined clocks and scan-related I/O pins are
automatically excluded from registration.
The specified I/O pins are registered with scan cells defined through the Add Cell Models
command, and the inserted scan cells can be included in the same scan chains along with the
existing cells of the design. To place the input and output registration cells in separate scan
chains, the Setup Wrapper Chains command can be used in conjunction with this command to
specify different number of chains and scan enable pins for the input and output registration
cells. The input registration cells and the input wrapper cells are then placed in the same scan
chains. Similarly, the output registration cells and the output wrapper cells are placed in the
same scan chains.
By default, I/Os that are designated as scan-in/scan-out pins or are driving/driven by scan-
in/scan-out pins are not registered unless they are explicitly added to the -Include list of this
command. During I/O registration, DFTAdvisor will report scan-in/scan-out related I/Os that
are not explicitly listed with the -Include switch as not being registered. The -Include switch
cannot be used in conjunction with the -Exclude switch.
You can specify that specific clocks are used for the registration cells by using the -Input_clock
and -Output_clock switches. If clocks are not specified, the clocks of adjacent cells in the chain
or new test clock signals will be used for the registration cells.
By default, unconnected I/Os are not registered. You can specify that unconnected I/Os should
be registered by doing one of the following:
• Specify the PI/POs of the combinational feed-throughs in the -Include list of this
command.
Be default, sequential feed-throughs are not registered. You can specify that sequential feed-
throughs should be registered by doing one of the following:
Note
This feature does not address the stitching of multiple cores, but rather the insertion of
wrapper chains in a single core.
Arguments
• -Exclude pin_names
An optional switch and repeatable string that specifies primary I/O pins to exclude from
registration. Note that clock and scan-related pins are automatically excluded. This switch
cannot be used with the -Include switch.
• -Include pin_names
An optional switch and repeatable string that specifies which primary I/O pins to register.
Clock and scan-related pins are automatically excluded from registration. This switch
cannot be used with the -Exclude switch.
• -Input_model model_name
An optional switch and string pair that uses model_name cells for registering primary
inputs. You must first define model_name with the Add Cell Models command.
• -Output_model model_name
An optional switch and string pair that uses model_name cells for registering primary
outputs You must first define model_name with the Add Cell Models command.
• -Input_clock pin_pathname
An optional switch and string pair that specifies to use pin_pathname clock to control
registration cells inserted for input pins. The specified pin pathname should either be a
primary input or a top-level instance output pin. If this switch is not specified, DFTAdvisor
uses the clock of the neighboring cell in the input wrapper chain (when wrapper chains are
inserted) or a test clock (when neighboring cell does not exist).
• -Output_clock pin_pathname
An optional switch and string pair that specifies to use the pin_pathname clock to control
registration cells inserted for output pins. The specified pin pathname should either be a
primary input or a top-level instance output pin. If this switch is not specified, DFTAdvisor
uses the clock of the neighboring cell in the output wrapper chain (when wrapper chains are
inserted) or a test clock (when neighboring cell does not exist).
• -REG_Floating
An optional switch that specifies to register unconnected I/Os. By default, unconnected I/Os
are not registered.
• -REG_Comb_feedthrough
An optional switch that specifies to register combinational feed-throughs. A combinational
feed-through is a path between a PI and PO that is either through combinational logic only
or no logic at all. By default, combinational feed-throughs are not registered. Note: A multi
fan-out PI is considered a combinational feed-through only when all of its fan-outs are
combinational feed-throughs.
• -REG_Seq_feedthrough
An optional switch that specifies to register sequential feed-throughs. A sequential
feedthrough is a path between PI and PO that has only one sequential cell and contains no
combinational logic other than buffers and inverters. By default, sequential defaults are not
registered. Note: A multi fan-out PI is considered a sequential feed-through only when all of
its fan-outs are sequential feed-throughs.
Examples
The following example illustrates how scan-based I/O registration can be used along with
wrapper chains:
add cell model FDSQ -type scancell CLK D
setup wrapper chains -exclude in1 in2 out1 out2 -input_number 1 -output_number 1
setup registered IO -include in1 in2 out1 out2
set system mode dft
run
report wrapper cells
insert test logic
In this example, DFTAdvisor identifies the input and output wrapper cells upon issuing the Run
command. Four I/O pins are excluded from identification by the Setup Wrapper Chains
command and explicitly included for I/O registration by the Setup Registered IO command.
The input registration cells are placed into the input wrapper chains and output registration cells
are placed into the output wrapper chains. For more information, see the Setup Wrapper Chains
command. Note that this registration allows inserting registration cells along with the identified
wrapper cells.
The scan cell used for registration can be modeled in many ways as long as it has the same input
and output pins as a scan cell. The following figure shows a scan cell that is used as a control
and observe point. When used as an observe point, it can capture data by means of the feedback
connection. Also, note that the input registration cell uses the input wrapper chain scan enable
signal, whereas the output registration cell uses the output wrapper chain scan enable signal.
Related Commands
Add Cell Models Setup Naming
Related Commands Setup Wrapper Chains
• -External filename
An optional switch and string pair that specifies a fault file to base scan identification. The
file must contain the user-defined fault list for identifying critical flip-flops that you want to
convert to scan flip-flops.
• -COntrollability integer
An optional switch and integer pair that specifies the percentage of controllability test
coverage. DFTAdvisor continues the scan identification process until it either reaches the
specified test coverage or no productive scan candidates are available. The default upon
invocation of DFTAdvisor is 100 percent.
• -Observability integer
An optional switch and integer pair that specifies the percentage of observability test
coverage. DFTAdvisor continues the scan identification process until it either reaches the
specified test coverage or no productive scan candidates are available. The default upon
invocation of DFTAdvisor is 100 percent.
• -Backtrack integer
An optional switch and integer pair that specifies the number of conflicts DFTAdvisor
encounters before aborting the target fault. The default upon invocation of DFTAdvisor is
30 conflicts.
• -CYcle integer
An optional switch and integer pair that specifies the number of test cycles DFTAdvisor
encounters before aborting the target fault. The default upon invocation of DFTAdvisor is
16 test cycles.
• -Time integer
An optional switch and integer pair that specifies the CPU time in seconds that DFTAdvisor
uses before aborting the target fault. The default upon invocation of DFTAdvisor is 100
seconds of CPU time.
• -Min_detection floating_point
An optional switch and floating point pair that specifies the minimum percentage of test
coverage that a scan cell must provide. If a scan cell does not detect at least the specified
minimum percentage of faults, DFTAdvisor does not select the cell for scan. The default
upon invocation of DFTAdvisor is 0.01 percent.
Sequential Using Automatic Arguments
• AUtomatic
An optional literal that enables the automatic technique for partial scan selection. This
method selects scan cells using a combination of several scan selection techniques. The goal
is to select the minimum set of best scan candidates needed to achieve high fault coverage.
Examples
The following example sets up for full scan:
setup scan identification full_scan
run
Related Commands
Add Test Points Setup Test_point Identification
Report Sequential Instances Write Scan Identification
Run
Setup Pin Constraints
Use the -Active switch to specify whether the test clock pin is active high or low. This value
is used to verify the off-state value on the scan clock found by tracing back from a specified
internal pin.
• -SClk pathname
An optional switch and string pair that specifies a pathname for the clock pin in clock-scan
type scan. A scan clock pin is only created for the scan clock port in the dual-port type mux
scan. By default, the new scan clock pin is named scan_clk.
• -SMclk pathname
An optional switch and string pair that specifies a pathname for the scan master clock pin in
LSSD type scan. By default, the scan master clock pin is named scan_mclk.
• -SSclk pathname
An optional switch and string pair that specifies a pathname for the scan slave clock pin in
LSSD type scan. By default, the scan slave clock pin is named scan_sclk.
• -SET pathname
An optional switch and string pair that specifies a pathname for the set pin used for the flip-
flop or latch when inserting test logic. By default, the set pin is named scan_set.
Use the -Active switch to specify whether the set pin is active high or low.
• -RESet pathname
An optional switch and string pair that specifies a pathname for the reset pin used for the
flip-flop or latch when inserting test logic. By default, the set pin is named scan_reset.
Use the -Active switch to specify whether the reset pin is active high or low.
• -Write pathname
An optional switch and string pair that specifies a pathname for the write control pin used
for RAM when inserting test logic. By default, the write control pin is named write_clk.
• -REAd pathname
An optional switch and string pair that specifies a pathname for the read control pin used for
RAM when inserting test logic. By default, the read control pin is named read_clk.
• -Muxed | -Disabled | -Gated
An optional switch that determines how the specified set, reset, write control, or read control
lines are gated. These options can only be used with -Set, -Reset, -Write, and
-Read switches specified in the same command.
Options include:
-Muxed — Multiplexes all set and reset pins with the original signal. Only set and reset
pins defined as clocks are affected. Default setting.
-Disabled — Uses an AND gate with the test enable signal to disable the set and reset
inputs of flip-flops and the SEN type scan enable signal to disable the write and read
clocks.
-Gated — Uses either the set and reset pins defined as clocks or the write and read
clocks to disable the set and reset inputs of flip-flops.
• -Active High | Low
An optional switch and literal pair that determines whether the scan clock activates the
specified test enable, set, or reset pins on high or low. Within a single command, you can
only use the -Active switch once. The -Active switch applies to any of the following pins
specified in the command: -Ten, -Tclk, -Set, and -Reset. By default, all these signals are
active on high.
Example 1
The following example renames the test enable pin name to test_en_L, connects it to an internal
node, and makes it active low during the scan insertion process.
add clocks 0 clock
set system mode dft
run
setup scan insertion -ten modxyz/nand02/test_en_L -active low
insert test logic -number 8
Example 2
The following example shows how to set different controls with successive Setup Scan
Insertion commands.
Related Commands
Insert Test Logic Set Scan Enable
Related Commands Set Scan_enable Sharing
Report Scan Pins Set Tristate Gating
Set Bidi Gating
Arguments
• Input
A literal specifying that DFTAdvisor apply the index or bus format on the scan-in pins.
• Output
A literal specifying that DFTAdvisor apply the index or bus format on the scan-out pins.
• -INDexed
An optional switch specifying that DFTAdvisor apply the index format to the scan-in or
scan-out pin names. This is the default.
• -Bused
An optional switch specifying that DFTAdvisor apply the bus format to the scan-in or scan-
out pin names.
• -Prefix base_name
An optional switch and string pair that specifies the root name of the scan-in or scan-out pin.
The default name is scan_in.
• -INItial index#
An optional switch and integer pair that specifies the initial index value of the scan-in or
scan-out pin name. The default value is 1.
• -Modifier incr_index#
An optional switch and integer pair that specifies the incremental value that to add to the
index# when creating additional names with the same base_name. The default is 1.
• -Suffix suffix_name
An optional switch and string pair that specifies the name that you want to place after the
index#. DFTAdvisor only uses this for indexed naming. The default is null.
Examples
The following example configures scan insertion to use bus names for the scan-in pins and scan-
out pins, with the index number starting at 5 and incrementing by 2 for scan-in pins, and the
index number starting at 4 and incrementing by 2 for scan-out pins:
add clocks 0 clock
set system mode dft
run
setup scan pins input -bused -prefix scin -initial 5 -modifier 2
setup scan pins output -bused -prefix scout -initial 4 -modifier 2
insert test logic -number 7
Related Commands
Insert Test Logic
For more information about automatic identification of shift registers, see “Automatic
Recognition of Existing Shift Registers” in the Scan and ATPG Process Guide.
Arguments
• ON
A required literal that enables shift registration identification. This is the default.
• OFf
A required literal that disables shift registration identification.
Example
The following example disables automatic shift register identification.
setup shift_register identification off
Related Topics
Report Scan Cells Report Shift Registers
Tip: See “Analyzing the Design for Controllability and Observability of Gates” in the
Scan and ATPG Process Guide.
Arguments
• -COntrol integer
An optional switch and integer pair that specifies how many test points you want
DFTAdvisor to identify to aid in increasing the controllability of the design. The default
upon invocation of DFTAdvisor for identifying test points for controllability is 0.
• -OBserve integer [-Primary_outputs [-EXClude pins…]]
An optional switch and integer pair that specifies how many test points you want
DFTAdvisor to identify to aid in increasing the observability of the design. The default upon
invocation of DFTAdvisor for identifying test points for observability is 0.
-Primary_outputs — An optional switch that specifies to add an observe point to
primary outputs. The implementation of this option depends on the settings in the
Setup Test_point Insertion command.
-EXClude pins — An optional switch and repeatable string that excludes the
specified primary output pins from use as observe points.
• -Verbose | -NOVerbose
An optional switch that specifies the amount of information that DFTAdvisor displays
during test point generation.
• -Internal | {-External filename}
An optional switch or switch and string that specifies which faults to use when performing
SCOAP-based test point selection.
-Internal — A switch that specifies to consider all faults. This is the default.
-External filename — A switch and string that specifies to use only those faults listed in
the specified faults list file for evaluating the benefit of a test point. Detected,
redundant, and unused fault found in the file are ignored. Any other faults previously
loaded are discarded. Typically, this fault list file is saved after running ATPG. This
file only needs to be set once, and it is used by all SCOAP test point selection
methods until it is changed (with -Internal or -External).
Examples
The following example shows the flow of having DFTAdvisor automatically identify and insert
two test points for controllability:
set system mode dft
setup scan identification none
setup test_point identification -control 2
run
// Performing test_point identification ...
// Number of control points to be identified = 2
// Number of observe points to be identified = 0
Related Commands
Add Cell Models Setup Scan Identification
Add Test Points Setup Scan Insertion
Insert Test Logic
Report Test Points
If you use the -None switch (the default) in combination with this switch, DFTAdvisor does
not use a scan cell, instead controlling the test point it inserts with the pin specified by the
“prefix” name, pin_pathname, as shown in Figure 2-3.
If you use the -Model switch in combination with the -Control switch, DFTAdvisor controls
the test point by adding an additional scan cell, defined by model_name, when the test logic
is synthesized (Figure 2-3). Each of the new scan cells is fitted into a nearby existing scan
chain that does not exceed the chain length limit. The clock for each new scan cell is the
same as the scan cell it feeds in the chain. If DFTAdvisor cannot find a nearby chain, it
drops the control point.
If you use the -New_scan_cell switch in combination with the -Control switch, DFTAdvisor
controls the test point by adding an additional scan cell when the test logic is synthesized
(Figure 2-4). The new scan cell is fitted into a nearby existing scan chain that does not
exceed the chain length limit. DFTAdvisor chooses the new cell to be edge-compatible with
the existing scan cells in the chain. The clock for each new scan cell is the same as the scan
cell it feeds in the chain. If DFTAdvisor cannot find a nearby chain, it drops the control
point.
• -Observe
An optional switch that specifies how to configure the outputs for observe test points.
If you use the -None switch (the default) in combination with this switch, DFTAdvisor
controls the test point it inserts with the pin specified by the “prefix” name, pin_pathname,
as shown in Figure 2-5.
If you use the -Model switch in combination with the -Observe switch, DFTAdvisor
controls the test point by adding an additional scan cell when the test logic is synthesized, as
shown in Figure 2-5. Each of the new scan cells is fitted into a nearby existing scan chain
that does not exceed the chain length limit. The clock for each new scan cell is the same as
the scan cell it feeds in the chain. If DFTAdvisor cannot find a nearby chain, it drops the
observe point.
If you use the -New_scan_cell switch in combination with -Observe, it behaves much the
same as when using -Model, except DFTAdvisor will choose the new cell to be edge-
compatible with the existing scan cells in the target scan chain when the test logic is
synthesized (Figure 2-6). This matching of the rising/falling edge attribute will prevent D7
type DRC violations. Each of the new scan cells is fitted into nearby existing scan chains
that do not exceed the chain length limit. The clock for each new scan cell is the same as the
scan cell it feeds in the chain. If DFTAdvisor cannot find a nearby chain, it drops the
observe point.
If you use the -Existing_scan_cell switch in combination with the -Observe switch,
DFTAdvisor controls the test point by adding multiplexing to an existing nearby scan cell
when the test logic is synthesized, as shown in Figure 2-7. The observe_enable specifies the
name of the observe enable signal that controls the input to the scan cell.
• pin_pathname -None
An optional string and switch pair that specifies for DFTAdvisor to only insert the test point
without inserting an additional scan cell, as shown in Figure 2-3 and Figure 2-5. This is the
default.
• -Existing_scan_cell observe_enable
An optional switch and string pair that specifies for DFTAdvisor to use nearby scan cells for
observation points, as shown in Figure 2-7. The observe point is propagated to a nearby scan
cell and multiplexed with the functional path D input of the cell. In this case, you must
specify the “data_in” parameter in the scan_definition section of the model for all scan cells
used in the design. This option is only valid with the -Observe switch.
observe_enable — The observe_enable specifies the name of the observe enable signal
that controls the input to the scan cell.
• -New_scan_cell — An optional switch that specifies for DFTAdvisor to determine the
rising/falling edge of scan cells in use in the nearby target scan chain, and to use an edge-
compatible scan cell model for the new scan cell. See Figure 2-4 and Figure 2-6. You must
identify the type of the scan cell models with the Add Cell Models command or have the
type assigned in the library models before using this switch.
• -Model modelname
An optional switch and string pair that specifies for DFTAdvisor to insert a cell along with
the test point, as shown in Figure 2-3 and Figure 2-5. The specified model must be of type
SCANCELL. You must identify the type of the modelname with the Add Cell Models
command or have the type assigned in the library model before using this switch.
Examples
The following example shows the flow of having DFTAdvisor automatically identify and insert
two test points for controllability:
set system mode dft
setup scan identification none
setup test_point identification -control 2
run
// Performing test_point identification ...
// Number of control points to be identified = 2
// Number of observe points to be identified = 0
// 1: CV1=16458424 gate_index=3805 INV /CNTR/U783/ZN
// 2: CV1=16458417 gate_index=1058 BUF /ADDR/U23/D1
Related Commands
Add Cell Models Setup Scan Identification
Insert Test Logic Setup Test_point Identification
Related Commands
Add Tied Signals Report Tied Signals
Delete Tied Signals
Note
In the 2009_2 release and all subsequent releases, the Setup Wrapper Chains command
performs both wrapper chain and core chain insertion in a single run. This is a change in
behavior from previous releases and is not backward-compatible.
Wrapper cells are sequential elements used as input/output registration cells (cells only
accessible via combinational logic from primary inputs or primary outputs). Depending on the
specified switches, wrapper cells are identified and distributed to scan chains in either
one-domain or two domains.
Wrapper cell distribution is determined by the switches: -Input_number, -Input_max_length, -
Output_number, or -Output_max_length.
If any of these switches are specified, two-domain distribution is used. If none are specified,
one-domain distribution is used.
• One-domain distribution — Wrapper cells are distributed to scan chains as specified
by the -number, -max_length, and -nolimit arguments of the Insert Test Logic command.
The SEN type scan_enable signal is used for both one-domain wrapper chains and core
chains.
• Two-domain distribution — Input and output wrapper cells are distributed separately
to input wrapper chains and output wrapper chains. When two-domain distribution is
enabled, the -Number, -Max_length, and -Nolimit arguments of the Insert Test Logic
command are ignored and separate, dedicated scan enable signals are used; SEN_IN
type for input, SEN_OUT type for output, and SEN for core chains.
You can modify the scan enable signals with the Set Scan_enable Sharing command and the Set
Scan Enable command.
If you specify to insert both an at-speed test flip-flop at the beginning of each wrapper chain
(-AT_SPEED_TEST_FLOP_Insertion option) and a lockup cell at the end of each wrapper
chain (Set Lockup Cells command’s argument (-CApture_edge_at_scan_chain_input option),
the order of stitching is: scan input, lockup cell, at-speed test flip-flop, and first wrapper chain
cell. Inserted at-speed flip-flops are reported as part of the wrapper chain by the Report Scan
Cells command.
You can specify how wrapper cells are identified with the -No_internal_feedback,
-Allow_internal_feedback, and -Test_points switches. By default, DFTAdvisor identifies the
wrapper cells by structurally tracing forward from the primary inputs until the first level of
memory cells is reached and then, traces backward from the primary outputs until the last level
of memory cells is reached. Figure 2-8 illustrates the default tracing where the traced logic and
identified wrapper cells are shown in bold.
To control all the inputs of the combinational logic traced from the primary inputs, use the -
Allow_internal_feedback switch. Figure 2-9 shows the gate inputs with feedback connections
marked as a and b. Tracing backward from these inputs identifies one additional cell from the
second level of memory cells to include in the input wrapper chains.
Depending on the circuit topology, tracing such internal feedback may include an impractical
number of core cells (not first or last level memory cells). In that case, you can control the
feedback inputs on the logic gates by means of control points. In the above circuit, only the gate
input b requires a control point because gate input a is controlled from its driver gate which is an
identified input wrapper cell. In a multiple-phase testing of wrapper cells and core cells (i.e.
hierarchical at-speed testing at a higher level of the design), the gate output marked as c cannot
be observed when the testing of core cells is active and the testing of input wrapper cells is
inactive. In that case, an observe point may be necessary at the gate output c.
The automatic insertion of such control and observe points can be specified using the
-Test_points switch. Upon issuing the Run command, the test point locations are identified
along with the wrapper cell candidates. The identified test points are scheduled for insertion
automatically. At this point, you can examine and modify the scheduled test points with the
following commands: Report Test Points, Add Test Points, and Delete Test Points. The actual
insertion of the test points occurs later when the Insert Test Logic command is issued.
Figure 2-10 highlights the logic DFTAdvisor adds as the control and observe points.
DFTAdvisor uses SEN_OUT type scan enable for the control points and SEN_IN type scan
enable for the observe points, where possible.
Arguments
• -Exclude pin_names
An optional switch and a repeatable string that specifies the primary input/output pins to
exclude from the wrapper cell identification process. The system clock pins (set, reset,
clock, etc.) and test-related pins such as scan I/O, scan enable and test enable pins are
excluded from the identification process automatically.
• -INPUT_NUMber integer
An optional switch and an integer pair that enables two-domain distribution and specifies
the number of scan chains for input wrapper cells. The default value for the number of input
wrapper chains is 1.
• -INPUT_MAX_length integer
An optional switch and an integer pair that enables two-domain distribution and specifies
the maximum length of scan chains for input wrapper cells. The default value for the
maximum length of the input wrapper chains is unlimited.
• -OUTPUT_NUMber integer
An optional switch and an integer pair that enables two-domain distribution and specifies
the number of scan chains for output wrapper cells. The default value for the number of
output wrapper chains is 1.
• -OUTPUT_MAX_length integer
An optional switch and an integer pair that enables two-domain distribution and specifies
the maximum length of scan chains for output wrapper cells. The default value for the
maximum length of the output wrapper chains is unlimited.
• -INPUT_Flops_reached {integer | Nolimit}
An optional switch and integer or literal pair that specifies the maximum number of
sequential elements allowed to be reached during the forward tracing from a primary input.
Default is 256.
• -OUTPUT_Flops_reached {integer | Nolimit}
An optional switch and integer or literal pair that specifies the maximum number of
sequential elements to be reached during the backward tracing from a primary output.
Default is 256.
• -INPUT_Gates_level integer
An optional switch and integer pair that specifies the maximum number of levels of
combinational gates to be traversed during the forward tracing from a primary input until the
first sequential element is reached. Default is 32.
• -OUTPUT_Gates_level integer
An optional switch and integer pair that specifies the maximum number of levels of
combinational gates to be traversed during the backward tracing from a primary output until
the first sequential element is reached. Default is 32.
Examples
The following example excludes the primary I/O pins a and b from wrapper cell identification;
sets up four input wrapper scan chains and eight output wrapper scan chains; sets sen1 and sen2
for the scan enable pin names of the input and output wrapper chains and reports the sequential
cells identified per I/O pin.
add cell model LATX -type dlat G D
add cell model INVX -type inv
setup wrapper chains -input_num 4 -output_num 8 -exclude a b
set scan enable sen1 -wrapper_chain -input
set scan enable sen2 -wrapper_chain -output
set system mode dft
run
report wrapper cells
insert test logic -clock merge -edge merge
Related Commands
Add Test Points Setup Output Masks
Delete Test Points Setup Registered IO
Related Commands Setup Scan Identification
Report Test Points Set Scan Enable
Run Set Scan_enable Sharing
Set Lockup Cell Write Netlist
System
Scope: All modes
Usage
SYStem os_command
Description
Passes the specified command to the operating system for execution.
The System command executes one operating system command without exiting the currently
running application.
Arguments
• os_command
A required string that specifies any legal operating system command.
Examples
The following example performs a scan identification run, then displays the current working
directory without exiting DFTAdvisor:
set system mode dft
run
system pwd
Note
If the test procedure file loaded with the Read Procfile command contains scan
procedures (for example, shift and load_unload), they are replaced by ones generated
with the Write Atpg Setup command based on test logic inserted during the current
session. DFTAdvisor issues a W14 warning each time it replaces a procedure. However,
it uses timeplates specified in the original procedure file for the newly-generated
procedures. The only exceptions are for the test_setup procedure. Instead of being
replaced, the events created by the Write Atpg Setup command are appended to the end
of the test_setup procedure.
Arguments
• basename
A required string that specifies the root name for the test procedure and dofile. The files
produced are basename.testproc and basename.dofile.
• -Replace
An optional switch that replaces the contents of a file that already exists. By default, files are
not replaced.
• -Procfile
An optional switch that creates the test procedure file. By default, a test procedure file is
created.
• -No_merge
An optional switch that prevents merging the test procedure and the dofile of the newly
inserted scan chains with those of the existing scan chains. By default, the test procedures
and dofiles are merged.
• -Edt
An optional switch that writes EDT-specific commands to the ATPG setup files. For more
information, see the Setup EDT command.
• -All_internal_clocks
An optional switch that specifies to write all internally defined clocks to the timeplate, to the
ATPG dofile, and to the shift procedure.
Example 1
The following example writes the test procedure, the dofile, and the new netlist for the inserted
scan chains to the specified filenames:
add clocks 1 clk1
add clocks 0 clk0
set system mode dft
run
insert test logic
write atpg setup scan -replace
write netlist scan.v -verilog
Example 2
The following example uses the ‘write atpg setup -all_internal_clocks’ switch on a design with
a single internal clock (output net is pll/out1) and a single top-level clock (clk1) to specify to
write out the internally defined clock as shown in the following generated test procedure file.
...
procedure shift =
scan_group grp1 ;
timeplate gen_tp1 ;
// cycle 1 starts at time 0
cycle =
force_sci ;
measure_sco ;
pulse clk1 ;
pulse pll/out1 ; //internal PLL output net is pulsed during scan
chain shifting
end;
end;
procedure load_unload =
scan_group grp1 ;
timeplate gen_tp1 ;
// cycle 1 starts at time 0
cycle =
force clk1 0 ;
force pll/out1 0 ; //internal PLL output initialized at start of
scan unload sequence
force scan_en 1 ;
end ;
apply shift 4;
end;
Related Commands
Insert Test Logic Write Netlist
Read Procfile Write Procfile
Setup EDT
You can perform formal verification after any DFTAdvisor step. FormalPro always compares
the original non-scan design to the current output of DFTAdvisor.
Arguments
• constraint_filename
A required string that specifies the name of the file to which DFTAdvisor writes the formal
verification constraints file.
• -Replace
An optional switch that specifies for DFTAdvisor to replace the contents of the file,
constraint_filename, if the file already exists.
Examples
The following example writes out a constraints file named scan.constraints and also includes a
shell script to invoke FormalPro:
//scan dofile
//perform scan analysis and test logic synthesis
write netlist m8051_scan.v -replace
write formal_verification setup scan.constraints -replace
exit -d
Related Commands
Write Netlist
Write Loops
Scope: Dft mode
Usage
WRIte LOops filename [-Replace]
Description
Writes a list of all loops to the specified file.
The Write Loops command writes all loops in a circuit to a file. For each loop, the report
indicates whether the loop was broken by duplication. Loops that are not broken by duplication
are shown as being broken by a constant value, which means the loop is either a coupling loop,
or has a single multiple fanout gate. The report also includes the pin pathname and gate type of
each gate in each loop.
You can display the loops report information to the transcript by using the Report Loops
command.
Arguments
• filename
A required string that specifies the name of the file to which DFTAdvisor writes the loop
report information.
• -Replace
An optional switch that specifies for DFTAdvisor to replace the contents of the file, if the
file already exists.
Examples
The following example writes a list of all loops to a file:
set system mode dft
write loops loop.info -replace
Related Commands
Report Loops
Write Netlist
Scope: All modes
Usage
WRIte NEtlist filename [-Replace] [-User_setup] [-Split_bus] [{-BLock module_name...
{-FUll | -CHildren} -FIle block_filename}] [-PREserve_assign]
Description
Writes the current design to a Verilog netlist. Depending on the process, the current design is
either the one used to invoke DFTAdvisor or the one created by the scan insertion process.
This command can be used to write out:
• A complete design netlist to a specified file.
• A netlist for particular modules and all of their children to a specified file.
• A netlist for the children of particular modules to a specified file.
Arguments
• filename
A required string that specifies a pathname for the Verilog netlist.
• -Replace
An optional switch that overwrites the contents of the specified file if it already exists.
• -User_setup
An optional switch that writes the design netlist based on the state of the current design,
with respect to Add Black Box and Delete Black Box commands.
• -Split_bus
An optional switch that writes out mapped buses as individual pins in the port mapping. By
default, all pins are listed together. For example:
By default, bus pins are written as follows:
ex_mod ex_inst (.ex_bport (a[3:0]), ...
• -Block module_name...
An optional switch and a repeatable string that specifies the names of the modules whose
netlists are redirected to a separate file. Module definitions redirected to the separate file are
not written out to the file specified by the filename argument.
The output content is determined by the specification of the -Full | -Children switch.
The output is written to the file specified by the -File switch and block_filename string pair.
If -Block is used, the -Full | -Children and -File switches are required as shown. Neither of
these required switches can be used without -Block.
[{-BLock module_name... {-FUll | -CHildren} -File block_filename}]
• -FUll | -CHildren
A switch that specifies, for each module_name string, whether the netlist for the modules’s
complete hierarchy (module_name) is redirected to a separate file or only its children
modules are redirected. This switch is required when -Block is specified; it is invalid when
-Block is not specified.
• -FIle block_filename
A switch and string that specifies the file to which the separate netlists are written. This
switch is required when -Block is specified; it is invalid when -Block is not specified.
• -PREserve_assign
An optional switch that specifies not to replace assign statements in the incoming netlist
with supply statements when writing out the netlist. Nets defined with the supply statement
in the incoming netlist are written out unchanged (using supply) but none of the original
assign statements are modified. By default, nets assigned to a constant 0 or 1 via an assign
statement are replaced with supply nets. This option is useful if you are using a layout tool
that does not recognize supply0 and supply1 nets when identifying nets that are part of the
power grid as part of an automatic flow.
Example 1
The following example adds scan and writes out a Verilog netlist named verilog.scan.
add clocks 0 clock
set system mode dft
setup scan identification sequential atpg -percent 50
run
insert test logic -max_length 10
write netlist verilog.scan
Example 2
The following example writes out the A module and its sub-blocks to one file and writes the
remaining netlist to the main output file.
module C (clk);
input clk;
dff udff (.CLK(clk));
endmodule
The following output is written to results/blockA.v. The remainder of the output is written to
results/c_scan.v.
Example 3
This example writes out the child hierarchy of the specified A module; the remaining netlist
including module A is written to the main netlist.
Given the same input as shown in the previous example, the following output is written to
results/blockA.v. The remainder of the output is written to results/c_scan.v:
Related Commands
Write Atpg Setup Delete Black Box
Add Black Box
Related Commands
Report Primary Inputs
Related Commands
Report Primary Outputs
Write Procfile
Scope: DFT mode
Usage
WRIte PRocfile proc_filename [-Replace] [-Full]
Description
Writes existing procedure and timing data to the named test procedure file.
The Write Procfile command writes out existing procedure and timing data to the named test
procedure file.
Arguments
• proc_filename
A required string that specifies the name of the file to which you want to write existing
procedure and timing data.
• -Replace
An optional switch that replaces the contents of the file if the proc_filename already exists.
• -Full
An optional switch that causes the tool to parse the ATPG pattern list (if any) and create all
needed non-scan procedures before writing the procedure file data.
Note
The -Full option can cause the Write Procfile command to take more time if there are a
large number of ATPG-generated patterns in the internal pattern list.
Examples
The following example writes the existing procedure and timing data to the specified file:
write procfile myprocfile.proc
Related Commands
Add Scan Groups Report Timeplate
Read Procfile
Report Procedure
• -DOfile | -Backannotation
An optional switch that specifies to write the scan instances in dofile or back annotation
format. In dofile format the file is written as a list of lines that can be executed by the Dofile
command. For example:
add scan instances instance_pathname
Examples
The following example writes all scan instances to a file after performing a full scan
identification run:
set system mode dft
setup scan identification full_scan
run
write scan identification scanfile -identified
Related Commands
Report Sequential Instances
The Add Scan Pins command affects the scan definitions in the DEF file. If you specify
existing/non-existing scan I/O with this command, the specified names are used in the scan
chain START and STOP point definitions.
When DFTAdvisor successfully traces through a subchain, the cells that comprise the subchain
are written to the ORDERED section of the generated scan DEF file by default. DFTAdvisor
tries to avoid having any subchain cells at scan chain boundaries during scan chain stitching in
order to prevent the cells comprising the subchain from being written to the START and STOP
sections. If there is not a scan cell available that is not part of a subchain, DFTAdvisor inserts
lockup cells at the boundaries of the scan chains. This default behavior can be overridden when
adding subchains with the Add Sub Chains command by using the –Allow_reordering switch.
In this case, cells comprising such subchains are considered to be floating cells and can be
written to the START and STOP sections.
Arguments
• -Scandef | -Def
An optional switch that determines the type of DEF file output. Options include:
-Scandef — scan chain definitions only. Default setting.
-Def — entire flattened netlist. This file can be quite large.
• filename
A required string that specifies the name of the DEF file.
• -Replace
An optional switch that replaces the specified file, filename, if it exists.
• -No_segmentation
An optional switch that disables the segmentation of scan chains in the DEF file. By default,
scan chains with different clocks/edges are segmented into separate chains.
If you disable the segmentation of scan chains, cells of scan chains with different clock/edge
domains are written out into a single ORDERED list and the PARTITION and MAXBITS
information is not written out for these scan chains in the DEF file. This prevents the
reordering of scan flip-flops along the scan chains and across the scan chains.
• -Keep_short_segments
An optional switch that specifies that scan chains that contain only one or two scan cells and
contain no lockup latches are written to the scan DEF file and are not commented out; by
default, scan chains of this type are written to the scan DEF file and are commented out.
Example 1
Assume the following in this example:
1. The design has two sub-modules, subA and subB, each having three D-type flip-flops.
2. All flip-flops in the design will be included in a single scan chain at the top level.
3. The flip-flops in subA and in subB are clocked with clockA and clockB, respectively.
4. The user turns on lockup cell insertion between clock domains in a chain.
5. The user specifies internal scan input/output pins using the Add Scan Pins command;
pad/buf1/Z and pad/buf2/A are the scan input and output pins, respectively.
The following command generates the default scan DEF file with a segmented scan chain as
shown.
write scan order -scandef deffile
VERSION 5.7 ;
DIVIDERCHAR "/" ;
BUSBITCHARS "[]" ;
DESIGN top ;
SCANCHAINS 2 ;
- chain1_sub0
+ START pad/buf1 Z
+ FLOATING
subA/flop1 ( IN SI ) ( OUT QN )
subA/flop2 ( IN SI ) ( OUT QN )
subA/flop3 ( IN SI ) ( OUT QN )
+ STOP subA/lockup D
# Partition for clock clockA (pos-edge)
+ PARTITION partition_1 MAXBITS 3 ;
- chain1_sub1
+ START subB/flop1 QN
+ FLOATING
subB/flop2 ( IN SI ) ( OUT QN )
subB/flop3 ( IN SI ) ( OUT QN )
+ STOP pad/buf2 A
# Partition for clock clockB (neg-edge)
+ PARTITION partition_2 MAXBITS 2 ;
END SCANCHAINS
END DESIGN
Example 2
Assume the following in this example:
1. The design has two sub-modules, subA and subB, each having three D-type flip-flops.
2. All flip-flops in the design will be included in a single scan chain at the top level.
3. The flip-flops in subA and the flip-flops in subB are clocked with clockA and clockB,
respectively.
The following command generates an unsegmented scan DEF file as follows.
write scan order -scandef deffile -no_segmentation
VERSION 5.7 ;
DIVIDERCHAR "/" ;
BUSBITCHARS "[]" ;
DESIGN top ;
SCANCHAINS 1 ;
- chain1
+ START PIN scan_in1
+ FLOATING
subA/flop1 ( IN SI ) ( OUT QN )
subA/flop2 ( IN SI ) ( OUT QN )
subA/flop3 ( IN SI ) ( OUT QN )
subB/flop1 ( IN SI ) ( OUT QN )
subB/flop2 ( IN SI ) ( OUT QN )
subB/flop3 ( IN SI ) ( OUT QN )
+ STOP PIN scan_out1 ;
END SCANCHAINS
END DESIGN
Example 3
This example illustrates the information reported with the Report Scan Cells command and
written to the scanDEF file.
The tool identifies three shift registers as shown in the following output generated by the Report
Shift Registers command.
Given this input, the following command generates the scan DEF file that follows.
Note
s Regular flip-flops and shift register flip-flops within the same domain are separated by
FLOATING and ORDERED segments, respectively. Each shift register is written out in a
separate ORDERED list.
#
# DESC: Generated by DFTAdvisor at Thu Apr 15 15:54:34 2010
#
VERSION 5.7 ;
DIVIDERCHAR "/" ;
BUSBITCHARS "[]" ;
DESIGN A ;
UNITS DISTANCE MICRONS 1000 ;
SCANCHAINS 2 ;
- chain1_sub0
+ START ud8 QB
+ ORDERED
ud9 ( IN SI ) ( OUT Q )
ud10 ( IN D ) ( OUT Q )
+ ORDERED
ud1 ( IN SI ) ( OUT Q )
ud2 ( IN D ) ( OUT Q )
ud3 ( IN D ) ( OUT Q )
ud4 ( IN D ) ( OUT QB )
+ STOP ud5 SI
- chain2_sub0
+ START ud15 Q
+ FLOATING
ud14 ( IN SI ) ( OUT Q )
ud13 ( IN SI ) ( OUT Q )
ud12 ( IN SI ) ( OUT Q )
+ ORDERED
ud6 ( IN SI ) ( OUT Q )
ud7 ( IN D ) ( OUT QB )
+ STOP ud11 SI
END SCANCHAINS
END DESIGN
Similarly, given the same input, the following command generates the scan DEF file that
follows:
Note
In the following output:
1. sub1 and sub2 are instances of library cell libsubchmodel which contains a subchain of
length 2. The scan DEF includes this length in the BITS field. For regular cells of
length 1, the BITS field is not printed.
2. All flip-flops are written out in one ORDERED list because chain1 contains cells in
different clock edge domains.
VERSION 5.7 ;
DIVIDERCHAR "/" ;
BUSBITCHARS "[]" ;
DESIGN A ;
UNITS DISTANCE MICRONS 1000 ;
SCANCHAINS 1 ;
- chain1
+ START u5 Q
+ ORDERED
u1 ( IN SI ) ( OUT Q )
u2 ( IN D ) ( OUT Q )
u3 ( IN D ) ( OUT Q )
u4 ( IN D ) ( OUT Q )
u6 ( IN SI ) ( OUT Q )
u7 ( IN D ) ( OUT Q )
u8 ( IN SI ) ( OUT Q )
u9 ( IN D ) ( OUT Q )
u10 ( IN D ) ( OUT Q )
u11 ( IN SI ) ( OUT Q )
u12 ( IN D ) ( OUT Q )
u13 ( IN SI ) ( OUT Q )
u14 ( IN D ) ( OUT Q )
u15 ( IN SI ) ( OUT Q )
lckup1 ( IN D ) ( OUT Q )
sub1 ( IN sci1 ) ( OUT sco1 ) ( BITS 2 )
+ STOP sub2 sci2 ;
END SCANCHAINS
Example 4
This example illustrates the information reported with the Report Scan Cells command and
written to the scanDEF file when traceable subchains are present in the design.
VERSION 5.7 ;
DIVIDERCHAR "/" ;
BUSBITCHARS "[]" ;
DESIGN top ;
UNITS DISTANCE MICRONS 1000 ;
SCANCHAINS 1 ;
- chain1_sub0
+ START lckup2 Q
+ FLOATING
uB/f1 ( IN SI ) ( OUT Q )
uB/f2 ( IN SI ) ( OUT Q )
uB/f3 ( IN SI ) ( OUT Q )
+ STOP lckup1 D
- chain2_sub0
+ START us Q
+ FLOATING
ud ( IN SI ) ( OUT Q )
+ STOP uWA/uA/f21 SI
# The following chain segment with only 1 or 2 scan cells has been
# commented out for compatibility with the layout tools.
#- chain3_sub0
# + START uWA/uA/f31 SI
# + STOP uWA/uA/f31 Q ;
- chain4_sub0
+ START lckup4 Q
+ FLOATING
uWA/mux ( IN A1 ) ( OUT Y ) ( BITS 0 )
uWA/uA/f1 ( IN SI ) ( OUT Q )
uWA/uA/bb/f2 ( IN SI ) ( OUT Q )
uWA/uA/f3 ( IN SI ) ( OUT Q )
+ STOP lckup3 D
END SCANCHAINS
END DESIGN
Example 5
Note
This example is a modification of Example 4.
In this example, the Set Bidi Gating command assigns the attribute hard_macro to the module
blackBox. An instance of this module, uWA/uA/bb, is written to the scanDEF file unexpanded
and the number of scan cells on its scan path appears in the BITS statement. Additionally, the
-no_reordering switch was used with the Add Sub Chains command when defining subchains;
therefore, the flip-flops contained within the subchains are written to the ORDERED sections.
VERSION 5.7 ;
DIVIDERCHAR "/" ;
BUSBITCHARS "[]" ;
DESIGN top ;
UNITS DISTANCE MICRONS 1000 ;
SCANCHAINS 1 ;
- chain1_sub0
+ START lckup2 Q
+ ORDERED
uB/f1 ( IN SI ) ( OUT Q )
uB/f2 ( IN SI ) ( OUT Q )
uB/f3 ( IN SI ) ( OUT Q )
+ STOP lckup1 D
- chain2_sub0
+ START us Q
+ FLOATING
ud ( IN SI ) ( OUT Q )
+ STOP uWA/uA/f21 SI
# The following chain segment with only 1 or 2 scan cells has been
# commented out for compatibility with the layout tools.
#- chain3_sub0
# + START uWA/uA/f31 SI
# + STOP uWA/uA/f31 Q ;
- chain4_sub0
+ START lckup4 Q
+ ORDERED
uWA/mux ( IN A1 ) ( OUT Y ) ( BITS 0 )
uWA/uA/f1 ( IN SI ) ( OUT Q )
uWA/uA/bb ( IN si ) ( OUT so ) ( BITS 1 )
uWA/uA/f3 ( IN SI ) ( OUT Q )
+ STOP lckup3 D
END SCANCHAINS
END DESIGN
Related Commands
Add Scan Pins Add Sub Chains
Related Commands
Add Sub Chains Report Sub Chains
Insert Test Logic
dftadvisor
Prerequisites: Verilog netlist and cell library containing descriptions of the cells used in the
design.
Usage
dftadvisor {design_name... {-LIBrary {filename...}} [-INCDIR include_directory...]
[-INSENsitive | -SENsitive] [-LOg filename [-Replace]] [-TOp module_name]
[-Dofile dofile_name [-HIstory]] [-LICense retry_limit] [-32 | -64]} |
[-Load_warnings] [-TCL] | [-HElp | -USAGE | -MANUAL | -VERSion]
[-LIBRARY_ARRAY_DELIMITER {square | angle}]
Description
Invokes DFTAdvisor in a command-line session.
To invoke DFT, enter the required arguments on the shell command line. The design and library
load and DFTAdvisor invokes in Setup mode.
Arguments
• design_name...
A required, repeatable string that specifies the pathname to a Verilog netlist.
• -LIBrary filename
A required switch and repeatable string pair that specifies the files containing the ATPG
library descriptions for all cell models in design_name. UNIX/Linux wildcard characters
may be used to specify multiple library files.
This argument is not required if all primitives are fully defined in your netlist.
• -INCDIR include_directory...
An optional switch and repeatable string pair that specifies the directories to search for files
included in a Verilog design with the ‘include compiler directive. The specified directories
must be either a pathname relative to the current (tool invocation) directory or an absolute
pathname. Directories are searched in the order they are specified. DFTAdvisor uses the
first occurrence of a specified file and ignores others with the same name.
DFTAdvisor searches for include files in the following order of precedence:
a. Absolute pathnames specified by ‘include directives in the Verilog design
b. Directories specified with the -Incdir invocation switch
c. Directory where the calling file is located
d. Directory the tool was invoked from (current directory)
• -INSENsitive | -SENsitive
Optional switch that specifies whether pin, instance, and net pathnames are case-sensitive.
By default, only object names are treated as case-sensitive.
• -LOg filename
An optional switch and string pair that determines whether a session log file is saved to a
specified file. By default, session information is only sent to the terminal display.
• -Replace
An optional switch that enables DFTAdvisor to overwrite an existing logfile with the same
name.
• -TOp model_name
An optional switch and string pair that specifies the name of the top-level model in the
netlist. By default, the first top-level module is assumed to be the top module.
• -Dofile dofile_name
An optional switch and string pair that specifies the name of a dofile to execute upon
invocation.
• -HIstory
An optional switch that adds commands from a dofile to the command line history list. By
default, the commands in a dofile are not inserted into the history list, but the dofile
command itself is added to the list.
• -LICense retry_limit
An optional switch and integer pair that specifies how long DFTAdvisor should check for an
available license before exiting the invocation process. This switch is only valid for batch
mode. If no license is available, DFTAdvisor checks for a license every minute until the
specified retry_limit is reached. If the retry_limit equals 0 (zero), DFTAdvisor continues
checking for a license until one is obtained. By default, the invocation process exits when no
license is available.
• -32 | -64
An optional switch that invokes the 32-bit or 64-bit version of the software. The default is
64-bit. If the platform does not support the specified version, the tool gives a warning
message and ignores the switch.
• -LOAd_warnings
An optional switch that reports any warnings and notes returned while loading the netlist
and library. By default, only a summary message for most warnings and notes is reported.
• -TCL
An optional switch that invokes the tool in Tcl scripting mode. See “Using the Tcl Scripting
Interface” in the Tessent Common Resources Manual for ATPG Products for complete
information.
• -HElp
An optional switch that displays the version and usage syntax for DFTAdvisor. No other
arguments can be specified with this switch.
• -USAGE
An optional switch that displays a message that contains the DFTAdvisor invocation
switches, with no descriptions.
• -MANUAL
An optional switch that displays the DFT documentation set in an HTML browser.
• -VERSion
An optional switch that displays the version of the DFTAdvisor software currently
available. No other arguments can be specified with this switch.
• -LIBRARY_ARRAY_DELIMITER {square | angle}
An optional switch that sets the default array delimiter for library parsing to either square
brackets “[]” or angle brackets “<>”. The default is “[]”.
Examples
The following example invokes DFTAdvisor on a netlist named design1.v. This design contains
library parts that are specified in a file called mitsu_lib10. A session log is saved to a file named
design1_scan.log that is overwritten if it already exists.
<Tessent_Tree_Path>/bin/dftadvisor design1.v -library mitsu_lib10 \
-log design1_scan.log -replace
stil2mgc
Prerequisites: STIL test procedure file.
Usage
stil2mgc {-STil stil_filename [-TPf tpf_filename] [-DOfile dofile_name] [-FLex_dofile
dofile_name] [-ALias Min | All] [-CApture NOne | Single | NAmed]
[-LOgfile logfile_name [-REplace]]} | {-Version | -Help | -Usage}
Description
The stil2mgc utility translates STIL test procedure files into Tessent FastScan, FlexTest, and
DFTAdvisor dofiles and test procedure files.
The stil2mgc utility produces:
• Dofiles — that define clocks, scan chains, scan groups, and pin constraints
• Test procedure files — that define a timeplate and the test_setup, load_unload, and
shift scan procedures.
The tool translates STIL signal groups used in timeplates or procedures into “alias” statements
in the test procedure file. It also produces a test procedure file timeplate definition for each
WaveformTable in the STIL file, exactly matching the timing specified in the STIL file.
Any procedure or macro whose name matches a Mentor Graphics procedure type (load_unload,
master_observe, and so on) is translated into that Mentor Graphics procedure. Also, any
procedure or macro in the STIL file that has “capture” in its name is translated into a named
capture procedure if the “-Capture named” switch is used. Any other macro whose name does
not match Mentor Graphics names is translated into an unused sub-procedure.
Arguments
• -STil stil_filename
A required switch and string pair that specifies the name of the input STIL test procedure
file.
• -TPf tpf_filename
An optional switch and string pair that specifies a name for the translated test procedure file.
By default, the translated file assumes the name of the STIL test procedure with .proc
appended.
• -DOfile dofile_name
An optional switch and string pair that specifies a name for the generated dofile. By default,
the dofile assumes the name of the STIL test procedure with .dof appended.
• -FLex_dofile dofile_name
An optional switch and string pair that generates an additional dofile for the FlexTest tool.
Table A-1 lists the DFTVisualizer-related DFTAdvisor commands available for your use.
There are several ways to get help when setting up and using Tessent™ software tools.
Depending on your need, help is available from documentation, online command help, and
Mentor Graphics Support.
Documentation
A comprehensive set of reference manuals, user guides, and release notes is available in two
formats:
http://supportnet.mentor.com
For more information on setting up and using Tessent documentation, see the “Using Tessent
Documentation” chapter in the Managing Mentor Graphics Tessent Software manual.
http://supportnet.mentor.com/about/
If you have questions about a software release, you can log in to SupportNet and search
thousands of technical solutions, view documentation, or open a Service Request online at:
http://supportnet.mentor.com
If your site is under current support and you do not have a SupportNet login, you can register for
SupportNet by filling out the short form at:
http://supportnet.mentor.com/user/register.cfm
All customer support contact information can be found on our web site at:
http://supportnet.mentor.com/contacts/supportcenters/index.cfm
Index
• This software application may include GTK 2.6.1 third-party software and may be subject to the following copyright(s)
and/or use terms:
Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd and Clark Cooper
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to
whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Development of this software was funded, in part, by Cray Research Inc., UUNET Communications Services Inc., Sun
Microsystems Inc., and Scriptics Corporation, none of whom are responsible for the results. The author thanks all of
them.
Redistribution and use in source and binary forms -- with or without modification -- are permitted for any purpose,
provided that redistributions in source form retain this entire copyright notice and indicate the origin and nature of any
modifications.
I'd appreciate being given credit for this package in the documentation of software which uses it, but that is not a
requirement.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL HENRY SPENCER BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
• wxWindows adopted the code out of Tcl 8.4.5. Portions of regc_locale.c and re_syntax.n were developed by Tcl
developers other than Henry Spencer; these files bear the Tcl copyright and license notice:
This software is copyrighted by the Regents of the University of California, Sun Microsystems, Inc., Scriptics
Corporation, ActiveState Corporation and other parties. The following terms apply to all files associated with the
software unless explicitly disclaimed in individual files.
The authors hereby grant permission to use, copy, modify, distribute, and license this software and its documentation for
any purpose, provided that existing copyright notices are retained in all copies and that this notice is included verbatim in
any distributions. No written agreement, license, or royalty fee is required for any of the authorized uses.
Modifications to this software may be copyrighted by their authors and need not follow the licensing terms described here,
provided that the new terms are clearly indicated on the first page of each file where they apply.
IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR DIRECT,
INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS
SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE
AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT,
UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
GOVERNMENT USE: If you are acquiring this software on behalf of the U.S. government, the Government shall have
only "Restricted Rights" in the software and related documentation as defined in the Federal Acquisition Regulations
(FARs) in Clause 52.227.19 (c) (2). If you are acquiring the software on behalf of the Department of Defense, the
software shall be classified as "Commercial Computer Software" and the Government shall have only "Restricted Rights"
as defined in Clause 252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the authors grant the U.S.
Government and others acting in its behalf permission to use and distribute the software in accordance with the terms
specified in this license.
Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is
hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this
permission notice appear in supporting documentation.
NEIL HODGSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NEIL HODGSON BE
LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted
without fee, provided that (i) the above copyright notices and this permission notice appear in all copies of the software
and related documentation, and (ii) the names of Sam Leffler and Silicon Graphics may not be used in any advertising or
publicity relating to the software without the specific, prior written permission of Sam Leffler and Silicon Graphics.
THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR
OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS
FOR A PARTICULAR PURPOSE.
IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY
OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE
OR PERFORMANCE OF THIS SOFTWARE.
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for
any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it
and redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If
you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not
required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original
software.
3. This notice may not be removed or altered from any source distribution.
[email protected] [email protected]
If you use the zlib library in a product, we would appreciate *not* receiving lengthy legal documents to sign. The sources
are provided for free but without warranty of any kind. The library has been entirely written by Jean-loup Gailly and
Mark Adler; it does not include third-party code.
If you redistribute modified sources, we would appreciate that you include in the file ChangeLog history information
documenting your changes. Please read the FAQ for more information on the distribution of modified source versions.
• This software application may include GTK 2.6.1 third-party software and may be subject to the following copyrights.
wxWindows Library Licence, Version 3
Everyone is permitted to copy and distribute verbatim copies of this licence document, but changing it is not allowed.
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public
Licence as published by the Free Software Foundation; either version 2 of the Licence, or (at your option) any later
version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General
Public Licence for more details.
You should have received a copy of the GNU Library General Public Licence along with this software, usually in a file
named COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
EXCEPTION NOTICE
1. As a special exception, the copyright holders of this library give permission for additional uses of the text contained
in this release of the library as licenced under the wxWindows Library Licence, applying either version 3 of the
Licence, or (at your option) any later version of the Licence as published by the copyright holders of version 3 of the
Licence document.
2. The exception is that you may use, copy, link, modify and distribute under the user's own terms, binary object code
versions of works based on the Library.
3. If you copy code from files distributed under the terms of the GNU General Public Licence or the GNU Library
General Public Licence into a copy of this library, as this licence permits, the exception does not apply to the code
that you add in this way. To avoid misleading anyone as to the status of such modified files, you must delete this
exception notice from such code and/or adjust the licensing conditions notice accordingly.
4. If you write modifications of your own for this library, it is your choice whether to permit this exception to apply to
your modifications. If you do not wish that, you must delete the exception notice from such code and/or adjust the
licensing conditions notice accordingly.
• This software application may include GTK+ third-party software, portions of which may be subject to the GNU Library
General Public License. You can view the complete license at: http://www.gnu.org/copyleft/library.html, or find the file at
your_Mentor_Graphics_documentation_directory/legal/.
To obtain a copy of the GTK+ source code, send a request to [email protected]. This offer may be
accepted for three years from the date Mentor Graphics Corporation first distributed the GTK+ source code.
This software application may include freestdf third-party software that may be subject to the following copyright(s):
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following
conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of the FREESTDF nor the names of its contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
• This software application may include LEF/DEF third-party software, which is distributed under the terms of the Mentor
Graphics End User License Agreement. You can view the complete license in the Mentor Graphics End User License
Agreement in this document. To obtain a copy of the LEF/DEF source code, or to obtain a copy of changes made to the
source code, if any, send a request to [email protected].
LEF/DEF software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
KIND, either express or implied. See the License for the specific language governing rights and limitations under the
License.
• This software application may include zlib version 1.1.4 third-party software. Zlib version 1.1.4 is distributed under the
terms of the zlib/libpng license and is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
express or implied. See the license for the specific language governing rights and limitations under the license. You can
view a copy of the license at: your_Mentor_Graphics_documentation_directory/legal//zlib_libpng.pdf. Zlib version 1.1.4
may be subject to the following copyrights:
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for
any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it
and redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If
you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not
required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original
software.
3. This notice may not be removed or altered from any source distribution.
This software application may include wxglade version 0.6.3 third-party software, which is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
This software application may include TKtreectrl version 2.2.7 third-party software, which is distributed on an “AS IS”
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied TKtreectrl version 2.2.7 may be subject to the
following copyrights:
This software is copyrighted by Tim Baker and other parties. The following terms apply to all files associated with the
software unless explicitly disclaimed in individual files.
The authors hereby grant permission to use, copy, modify, distribute, and license this software and its documentation for
any purpose, provided that existing copyright notices are retained in all copies and that this notice is included verbatim in
any distributions. No written agreement, license, or royalty fee is required for any of the authorized uses. Modifications to
this software may be copyrighted by their authors and need not follow the licensing terms described here, provided that
the new terms are clearly indicated on the first page of each file where they apply.
IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR DIRECT,
INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS
SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN “AS IS” BASIS, AND THE
AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT,
UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
• This software application may include tkcon version 2.4 third-party software, which is distributed on an “AS IS” basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied.
• This software application may include MiniSat version 1.14 third-party software, which is distributed on an “AS IS”
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
This software application may include tcllib inifile version 1.0 third-party software, which is distributed on an “AS IS”
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. tcllib inifile v1.0 may be subject to the
following copyrights:
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following
conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of the organization nor the names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
• This software application may include Boost version 1.39.0 third-party software. Boost version 1.39.0 is distributed
under the terms of the Boost Software License version 1.0 and is distributed on an "AS IS" basis, WITHOUT
WARRANTY OF ANY KIND, either express or implied. See the license for the specific language governing rights and
limitations under the license. You can view a copy of the license at: <path to legal directory>/legal/ boost_1.0.pdf.
Portions of this software may be subject to the Boost Artistic License. You can view a copy of the Boost Artistic License
at: <path to legal directory>/legal/boost_artistic_2000.pdf. Boost version 1.39.0 may be subject to the following
copyrights:
Indiana University has the exclusive rights to license this product under the following license.
* All redistributions of source code must retain the above copyright notice, the list of authors in the original source code,
this list of conditions and the disclaimer listed in this license;
* All redistributions in binary form must reproduce the above copyright notice, this list of conditions and the disclaimer
listed in this license in the documentation and/or other materials provided with the distribution;
* Any documentation included with all redistributions must include the following acknowledgement:
"This product includes software developed at the University of Notre Dame and the Pervasive Technology Labs at Indiana
University. For technical information contact Andrew Lumsdaine at the Pervasive Technology Labs at Indiana
University. For administrative and license questions contact the Advanced Research and Technology Institute at 351
West 10th Street. Indianapolis, Indiana 46202, phone 317-278-4100, fax 317-274-5902."
Alternatively, this acknowledgement may appear in the software itself, and wherever such third-party acknowledgments
normally appear.
* The name Indiana University, the University of Notre Dame or "Caramel" shall not be used to endorse or promote
products derived from this software without prior written permission from Indiana University. For written permission,
please contact Indiana University Advanced Research & Technology Institute.
* Products derived from this software may not be called "Caramel", nor may Indiana University, the University of Notre
Dame or "Caramel" appear in their name, without prior written permission of Indiana University Advanced Research &
Technology Institute.
Indiana University provides no reassurances that the source code provided does not infringe the patent or any other
intellectual property rights of any other entity. Indiana University disclaims any liability to any recipient for claims
brought by any other entity based on infringement of intellectual property rights or otherwise.
LICENSEE UNDERSTANDS THAT SOFTWARE IS PROVIDED "AS IS" FOR WHICH NO WARRANTIES AS TO
CAPABILITIES OR ACCURACY ARE MADE. INDIANA UNIVERSITY GIVES NO WARRANTIES AND MAKES
NO REPRESENTATION THAT SOFTWARE IS FREE OF INFRINGEMENT OF THIRD PARTY PATENT,
COPYRIGHT, OR OTHER PROPRIETARY RIGHTS. INDIANA UNIVERSITY MAKES NO WARRANTIES THAT
SOFTWARE IS FREE FROM "BUGS", "VIRUSES", "TROJAN HORSES", "TRAP DOORS", "WORMS", OR OTHER
HARMFUL CODE. LICENSEE ASSUMES THE ENTIRE RISK AS TO THE PERFORMANCE OF SOFTWARE
AND/OR ASSOCIATED MATERIALS, AND TO THE PERFORMANCE AND VALIDITY OF INFORMATION
GENERATED USING SOFTWARE.
Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this
permission notice appear in supporting documentation. William E. Kempf makes no representations about the suitability
of this software for any purpose. It is provided "as is" without express or implied warranty.
Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this
permission notice appear in supporting documentation. Hewlett-Packard Company makes no representations about the
suitability of this software for any purpose. It is provided "as is" without express or implied warranty.
Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this
permission notice appear in supporting documentation. Silicon Graphics makes no representations about the suitability of
this software for any purpose. It is provided "as is" without express or implied warranty.
Patterns Applied".
© 2001. Addison-Wesley
Permission to use, copy, modify, distribute and sell this software for any purpose is hereby granted without fee, provided
that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in
supporting documentation.
The author or Addison-Welsey Longman make no representations about the suitability of this software for any purpose. It
is provided "as is" without express or implied warranty.
Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this
permission notice appear in supporting documentation. William E. Kempf makes no representations about the suitability
of this software for any purpose.
Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appears in all copies and that both that copyright notice and this
permission notice appear in supporting documentation. Ronald Garcia makes no representations about the suitability of
this software for any purpose. It is provided "as is" without express or implied warranty.
Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appears in all copies and that both that copyright notice and this
permission notice appear in supporting documentation. Silicon Graphics makes no representations about the suitability of
this software for any purpose. It is provided "as is" without express or implied warranty.
Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this
permission notice appear in supporting documentation. CrystalClear Software makes no representations about the
suitability of this software for any purpose. It is provided "as is" without express or implied warranty.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following
conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following
disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appears in all copies and that both that copyright notice and this
permission notice appear in supporting documentation. We make no representations about the suitability of this software
for any purpose. It is provided "as is" without express or implied warranty.
Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appears in all copies and that both that copyright notice and this
permission notice appear in supporting documentation. Jeremy Siek makes no representations about the suitability of this
software for any purpose. It is provided "as is" without express or implied warranty.
Permission to use, copy, modify, and distribute this software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appears in all copies and that both that copyright notice and this
permission notice appear in supporting documentation. Michael Drexl makes no representations about the suitability of
this software for any purpose. It is provided "as is" without express or implied warranty.
Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this
permission notice appear in supporting documentation, and that the name of M.I.T. not be used in advertising or publicity
pertaining to distribution of the software without specific, written prior permission. M.I.T. makes no representations
about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.
This product includes software developed at the University of Notre Dame and the Pervasive Technology Labs at Indiana
University. For technical information contact Andrew Lumsdaine at the Pervasive Technology Labs at Indiana
University. For administrative and license questions contact the Advanced Research and Technology Institute at 351
West 10th Street. Indianapolis, Indiana 46202, phone 317-278-4100, fax 317-274-5902.
Some concepts based on versions from the MTL draft manual and Boost Graph and Property Map documentation, the SGI
Standard Template Library documentation and the Hewlett-Packard STL, under the following license:
Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appears in all copies and that both that copyright notice and this
permission notice appear in supporting documentation. Silicon Graphics makes no representations about the suitability of
this software for any purpose. It is provided "as is" without express or implied warranty.
Fri Aug 15 16:29:47 EDT 1997
K.A. Remington
NOTICE
Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is
hereby granted provided that the above copyright notice appear in all copies and that both the copyright notice and this
permission notice appear in supporting documentation.
Neither the Author nor the Institution (National Institute of Standards and Technology) make any representations about
the suitability of this software for any purpose. This software is provided "as is" without expressed or implied warranty.
• This software application may include RTreeTemplate third-party software, which is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied.
• This software application may include C++/Tcl version 1.1.3 third-party software, which is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
• This software application may include Swig version 1.3.40 third-party software, which is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. Swig version 1.3.40may be subject to the following
copyrights:
© 1995-1998 The University of Utah and the Regents of the University of California
Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and
distribute this software and its documentation for any purpose, provided that (1) The above copyright notice and the
following two paragraphs appear in all copies of the source code and (2) redistributions including binaries reproduces
these notices in the supporting documentation. Substantial modifications to this software may be copyrighted by their
authors and need not follow the licensing terms described here, provided that the new terms are clearly indicated in all
files where they apply.
IN NO EVENT SHALL THE AUTHOR, THE UNIVERSITY OF CALIFORNIA, THE UNIVERSITY OF UTAH OR
DISTRIBUTORS OF THIS SOFTWARE BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL,
INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
DOCUMENTATION, EVEN IF THE AUTHORS OR ANY OF THE ABOVE PARTIES HAVE BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
THE AUTHOR, THE UNIVERSITY OF CALIFORNIA, AND THE UNIVERSITY OF UTAH SPECIFICALLY
DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED
HEREUNDER IS ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION
TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
This software includes contributions that are © 1998-2005 University of Chicago. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following
conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the University
of Chicago nor the names of its contributors may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF CHICAGO AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE UNIVERSITY OF CHICAGO OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
This software includes contributions that are © 2005-2006 Arizona Board of Regents (University of Arizona). All Rights
Reserved
Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and
distribute this software and its documentation for any purpose, provided that (1) The above copyright notice and the
following two paragraphs appear in all copies of the source code and (2) redistributions including binaries reproduces
these notices in the supporting documentation. Substantial modifications to this software may be copyrighted by their
authors and need not follow the licensing terms described here, provided that the new terms are clearly indicated in all
files where they apply.
THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF ARIZONA AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE UNIVERSITY OF ARIZONA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
• This software application may include zlib version 1.1.3 third-party software. Zlib version 1.1.3 is distributed under the
terms of the zlib license and is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express
or implied. See the license for the specific language governing rights and limitations under the license. You can view a
copy of the license at: your_Mentor_Graphics_documentation_directory/legal/zlib_libpng.pdf. Zlib version 1.1.3 may be
subject to the following copyrights:
© 1997 Christian Michelsen Research AS, Advanced Computing, Fantoftvegen 38, 5036 BERGEN, Norway
http://www.cmr.no
Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this
permission notice appear in supporting documentation. Christian Michelsen Research AS makes no representations about
the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.
• This software application may include Perl 5.8.0 third-party software. Perl 5.8.0 is distributed under the terms of the
GNU General Public License version 2.0 and is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
KIND, either express or implied. See the license for the specific language governing rights and limitations under the
license.
© 1989, 1993, 1994 The Regents of the University of California. All rights reserved.
This code is derived from software contributed to Berkeley by Guido van Rossum.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following
conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following
disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This code is derived from Neil Winton's MD5-1.7 Perl module, which in turn is derived from the reference
implementation in RFC 1321 which comes with this message: © 1991-2, RSA Data Security, Inc. Created 1991. All
rights reserved.
License to copy and use this software is granted provided that it is identified as the "RSA Data Security, Inc. MD5
Message-Digest Algorithm" in all material mentioning or referencing this software or this function.
License is also granted to make and use derivative works provided that such works are identified as "derived from the
RSA Data Security, Inc. MD5 Message-Digest Algorithm" in all material mentioning or referencing the derived work.
RSA Data Security, Inc. makes no representations concerning either the merchantability of this software or the suitability
of this software for any particular purpose. It is provided "as is" without express or implied warranty of any kind.
These notices must be retained in any copies of any part of this documentation and/or software.
• This software application may include Tcl 8.4.11 third-party software, which is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. Tcl 8.4.11 may be subject to the following
copyright:
© Regents of the University of California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState Corporation and
other parties. The following terms apply to all files associated with the software unless explicitly disclaimed in individual
files.
The authors hereby grant permission to use, copy, modify, distribute, and license this software and its documentation for
any purpose, provided that existing copyright notices are retained in all copies and that this notice is included verbatim in
any distributions. No written agreement, license, or royalty fee is required for any of the authorized uses. Modifications to
this software may be copyrighted by their authors and need not follow the licensing terms described here, provided that
the new terms are clearly indicated on the first page of each file where they apply.
IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR DIRECT,
INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS
SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE
AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT,
UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
GOVERNMENT USE: If you are acquiring this software on behalf of the U.S. government, the Government shall have
only "Restricted Rights" in the software and related documentation as defined in the Federal Acquisition Regulations
(FARs) in Clause 52.227.19 (c) (2). If you are acquiring the software on behalf of the Department of Defense, the
software shall be classified as "Commercial Computer Software" and the Government shall have only "Restricted Rights"
as defined in Clause 252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the authors grant the U.S.
Government and others acting in its behalf permission to use and distribute the software in accordance with the terms
specified in this license.
• This software application may include Tk 8.4.11 third-party software, which is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. Tk 8.4.11 may be subject to the following
copyright:
© Regents of the University of California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState Corporation and
other parties. The following terms apply to all files associated with the software unless explicitly disclaimed in individual
files.
The authors hereby grant permission to use, copy, modify, distribute, and license this software and its documentation for
any purpose, provided that existing copyright notices are retained in all copies and that this notice is included verbatim in
any distributions. No written agreement, license, or royalty fee is required for any of the authorized uses. Modifications to
this software may be copyrighted by their authors and need not follow the licensing terms described here, provided that
the new terms are clearly indicated on the first page of each file where they apply.
IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR DIRECT,
INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS
SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE
AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT,
UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
GOVERNMENT USE: If you are acquiring this software on behalf of the U.S. government, the Government shall have
only "Restricted Rights" in the software and related documentation as defined in the Federal Acquisition Regulations
(FARs) in Clause 52.227.19 (c) (2). If you are acquiring the software on behalf of the Department of Defense, the
software shall be classified as "Commercial Computer Software" and the Government shall have only "Restricted Rights"
as defined in Clause 252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the authors grant the U.S.
Government and others acting in its behalf permission to use and distribute the software in accordance with the terms
specified in this license.
• This software application may include itcl 3.2.1 third-party software, which is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. itcl 3.2.1 may be subject to the following
copyrights:
Lucent Technologies disclaims all warranties with regard to this software, including all implied warranties of
merchantability and fitness. In no event shall Lucent be liable for any special, indirect or consequential damages or any
damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other
tortuous action, arising out of or in connection with the use or performance of this software.
© Lucent Technologies, Inc., and other parties. The following terms apply to all files associated with the software unless
explicitly disclaimed in individual files.
The authors hereby grant permission to use, copy, modify, distribute, and license this software and its documentation for
any purpose, provided that existing copyright notices are retained in all copies and that this notice is included verbatim in
any distributions. No written agreement, license, or royalty fee is required for any of the authorized uses. Modifications to
this software may be copyrighted by their authors and need not follow the licensing terms described here, provided that
the new terms are clearly indicated on the first page of each file where they apply.
IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR DIRECT,
INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS
SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE
AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT,
UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
GOVERNMENT USE: If you are acquiring this software on behalf of the U.S. government, the Government shall have
only "Restricted Rights" in the software and related documentation as defined in the Federal Acquisition Regulations
(FARs) in Clause 52.227.19 (c) (2). If you are acquiring the software on behalf of the Department of Defense, the
software shall be classified as "Commercial Computer Software" and the Government shall have only "Restricted Rights"
as defined in Clause 252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the authors grant the U.S.
Government and others acting in its behalf permission to use and distribute the software in accordance with the terms
specified in this license.
Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is
hereby granted, provided that the above copyright notice appear in all copies and that both that the copyright notice and
warranty disclaimer appear in supporting documentation, and that the names of AT&T Bell Laboratories any of their
entities not be used in advertising or publicity pertaining to distribution of the software without specific, written prior
permission.
AT&T disclaims all warranties with regard to this software, including all implied warranties of merchantability and
fitness. In no event shall AT&T be liable for any special, indirect or consequential damages or any damages whatsoever
resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortuous action, arising out
of or in connection with the use or performance of this software.
• This software application may include iwidgets 4.0.1third-party software, which is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. iwidgets 4.0.1 may be subject to the following
copyrights:
Permission to use, copy, modify, distribute and license this software and its documentation for any purpose, and without
fee or written agreement with DSC, is hereby granted, provided that the above copyright notice appears in all copies and
that both the copyright notice and warranty disclaimer below appear in supporting documentation, and that the names of
DSC Technologies Corporation or DSC Communications Corporation not be used in advertising or publicity pertaining to
the software without specific, written prior permission.
DSC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS, AND NON-INFRINGEMENT. THIS SOFTWARE IS
PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO
PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. IN NO EVENT
SHALL DSC BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
OF CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION
WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
RESTRICTED RIGHTS: Use, duplication or disclosure by the government is subject to the restrictions as set forth in
subparagraph (c) (1) (ii) of the Rights in Technical Data and Computer Software Clause as DFARS 252.227-7013 and
FAR 52.227-19.
Permission to use, copy, modify, distribute and license this software and its documentation for any purpose, and without
fee or written agreement with DSC, is hereby granted, provided that the above copyright notice appears in all copies and
that both the copyright notice and warranty disclaimer below appear in supporting documentation, and that the names of
DSC Technologies Corporation or DSC Communications Corporation not be used in advertising or publicity pertaining to
the software without specific, written prior permission.
DSC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS, AND NON- INFRINGEMENT. THIS SOFTWARE IS
PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO
PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. IN NO EVENT
SHALL DSC BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
OF CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION
WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is
hereby granted, provided that the above copyright notice appear in all copies and that both that the copyright notice and
warranty disclaimer appear in supporting documentation, and that the names of Lucent Technologies any of their entities
not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission.
Lucent Technologies disclaims all warranties with regard to this software, including all implied warranties of
merchantability and fitness. In no event shall Lucent Technologies be liable for any special, indirect or consequential
damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract,
negligence or other tortuous action, arising out of or in connection with the use or performance of this software.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that:
1. source code distributions retain the above copyright notice and this paragraph in its entirety,
2. distributions including binary code include the above copyright notice and this paragraph in its entirety in the
documentation or other materials provided with the distribution, and
3. all advertising materials mentioning features or use of this software display the following acknowledgement:
“This product includes software developed by the University of California, Lawrence Berkeley Laboratory and its
contributors.”
Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE.
• This software application may include Tcllib version 1.10 third-party software, which is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. Tcllib version 1.10 may be subject to the following
copyrights:
IMPORTANT NOTICE:
This program can be redistributed and/or modified under the terms of the LaTeX Project Public License Distributed from
CTAN archives in directory macros/latex/base/lppl.txt; either version 1 of the License, or any later version.
This program can be redistributed and/or modified under the terms of the LaTeX Project Public License Distributed from
CTAN archives in directory macros/latex/base/lppl.txt; either version 1 of the License, or any later version.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, provided that the above copyright notice(s) and this permission notice appear in all copies
of the Software and that both the above copyright notice(s) and this permission notice appear in supporting
documentation.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE
COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY
SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
THIS SOFTWARE.
Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote
the sale, use or other dealings in this Software without prior written authorization of the copyright holder.
License to copy and use this software is granted provided that it is identified as the "RSA Data Security, Inc. MD4
Message-Digest Algorithm" in all material mentioning or referencing this software or this function.
License is also granted to make and use derivative works provided that such works are identified as "derived from the
RSA Data Security, Inc. MD4 Message-Digest Algorithm" in all material mentioning or referencing the derived work.
RSA Data Security, Inc. makes no representations concerning either the merchantability of this software or the suitability
of this software for any particular purpose. It is provided "as is" without express or implied warranty of any kind.
These notices must be retained in any copies of any part of this documentation and/or software.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following
conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following
disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
• This software application may include strawberry-perl 5.10.0.6 third-party software. strawberry-perl 5.10.0.6is
distributed under the terms of the GNU General Public License version 2.0 and is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the license for the specific language governing
rights and limitations under the license.
Portions of this software may be subject to the GNU Library General Public License v2. You can view a copy of the
GNU Library General Public License v2 at: your_Mentor_Graphics_documentation_directory/legal/
gnu_library_gpl_2.0.pdf.
Portions of this software may be subject to the GNU Lesser General Public License v2.1. You can view a copy of the
GNU Lesser General Public License v2.1 at: your_Mentor_Graphics_documentation_directory/legal/ gnu_lgpl_2.1.pdf.
Portions of this software may be subject to the Apach License, version 2.0. You can view a copy of the Apache 2.0
license at: your_Mentor_Graphics_documentation_directory/legal/ Apache_2.0.pdf.
Portions of this software may be subject to the Artistic License. You can view a copy of the Apache 2.0 license at:
your_Mentor_Graphics_documentation_directory/legal/ perl_artistic_2.0.pdf.
Portions of this software may be subject to the Unicode Terms of Use. You can view a copy of the Unicode Terms of Use
at: your_Mentor_Graphics_documentation_directory/legal/ unicode_term_of_use.pdf.
To obtain a copy of the strawberry-perl 5.10.0.6 source code, send a request to [email protected]. This
offer shall only be available for three years from the date Mentor Graphics Corporation first distributed strawberry-perl
5.10.0.6. strawberry-perl 5.10.0.6 may be subject to the following copyrights:
© 1982, 1986, 1987, 1989, 1992, 1993, 1994, 1996 The Regents of the University of California. All rights reserved.
This code is derived from software contributed to Berkeley by Guido van Rossum.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following
conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following
disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this
permission notice appear in supporting documentation. Hewlett-Packard Company makes no representations about the
suitability of this software for any purpose. It is provided "as is" without express or implied warranty.
Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this
permission notice appear in supporting documentation. Silicon Graphics makes no representations about the suitability of
this software for any purpose. It is provided "as is" without express or implied warranty.
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for
any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it
and redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If
you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not
required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original
software.
3. This notice may not be removed or altered from any source distribution.
[email protected] [email protected]
© 1991-2, RSA Data Security, Inc. Created 1991. All rights reserved.
License to copy and use this software is granted provided that it is identified as the "RSA Data Security, Inc. MD5
Message-Digest Algorithm" in all material mentioning or referencing this software or this function.
License is also granted to make and use derivative works provided that such works are identified as "derived from the
RSA Data Security, Inc. MD5 Message-Digest Algorithm" in all material mentioning or referencing the derived work.
RSA Data Security, Inc. makes no representations concerning either the merchantability of this software or the suitability
of this software for any particular purpose. It is provided "as is" without express or implied warranty of any kind.
These notices must be retained in any copies of any part of this documentation and/or software.
• This software application may include libftd2xx 0.4.16 third-party software. Portions of libftd2xx 0.4.16 are distributed
under the terms of the GNU Lesser General Public License v2.1 and are distributed on an "AS IS" basis, WITHOUT
WARRANTY OF ANY KIND, either express or implied. See the license for the specific language governing rights and
limitations under the license. You can view a copy of the license at:
your_Mentor_Graphics_documentation_directory/legal/gnu_lgpl_2.1.pdf. To obtain a copy of the libftd2xx 0.4.16
source code, send a request to [email protected]. This offer shall only be available for three years from
the date Mentor Graphics Corporation first distributed libftd2xx 0.4.16. The files usb.h.in and/or usb.h are licensed
under the BSD license:
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following
conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following
disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
• This software application may include gzip version 1.3.12 third-party software. gzip version 1.3.12 is distributed under
the terms of the GNU General Public License version 2.0 and is distributed on an "AS IS" basis, WITHOUT
WARRANTY OF ANY KIND, either express or implied. See the license for the specific language governing rights and
limitations under the license. You can view a copy of the license at:
your_Mentor_Graphics_documentation_directory/legal/gnu_gpl_2.0.pdf. Portions of this software may be subject to the
GNU Free Documentation License version 1.2. You can view a copy of the GNU Free Documentation License version
1.2 at: your_Mentor_Graphics_documentation_directory/legal/gnu_free_doc_1.2.pdf. To obtain a copy of the gzip
version 1.3.12 source code, send a request to [email protected]. This offer shall only be available for
three years from the date Mentor Graphics Corporation first distributed gzip version 1.3.12.
• This software application may include libusb version 0.1.12 third-party software. libusb version 0.1.12 is distributed
under the terms of the GNU Lesser General Public License version 2.1and is distributed on an "AS IS" basis, WITHOUT
WARRANTY OF ANY KIND, either express or implied. See the license for the specific language governing rights and
limitations under the license. You can view a copy of the license at:
your_Mentor_Graphics_documentation_directory/legal/gnu_lgpl_2.1.pdf. To obtain a copy of the libusb version 0.1.12
source code, send a request to [email protected]. This offer shall only be available for three years from
the date Mentor Graphics Corporation first distributed libusb version 0.1.12. libusb version 0.1.12 may be subject to the
following copyrights:
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following
conditions are met:
4. Redistributions of source code must retain the above copyright notice, this list of conditions and the following
disclaimer.
5. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution.
6. The name of the author may not be used to endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
End-User License Agreement
The latest version of the End-User License Agreement is available on-line at:
www.mentor.com/eula
IMPORTANT INFORMATION
This is a legal agreement concerning the use of Software (as defined in Section 2) and hardware (collectively
“Products”) between the company acquiring the Products (“Customer”), and the Mentor Graphics entity that
issued the corresponding quotation or, if no quotation was issued, the applicable local Mentor Graphics entity
(“Mentor Graphics”). Except for license agreements related to the subject matter of this license agreement which
are physically signed by Customer and an authorized representative of Mentor Graphics, this Agreement and the
applicable quotation contain the parties' entire understanding relating to the subject matter and supersede all
prior or contemporaneous agreements. If Customer does not agree to these terms and conditions, promptly return
or, in the case of Software received electronically, certify destruction of Software and all accompanying items
within five days after receipt of Software and receive a full refund of any license fee paid.
2. GRANT OF LICENSE. The software installed, downloaded, or otherwise acquired by Customer under this Agreement,
including any updates, modifications, revisions, copies, documentation and design data (“Software”) are copyrighted, trade
secret and confidential information of Mentor Graphics or its licensors, who maintain exclusive title to all Software and retain
all rights not expressly granted by this Agreement. Mentor Graphics grants to Customer, subject to payment of applicable
license fees, a nontransferable, nonexclusive license to use Software solely: (a) in machine-readable, object-code form (except
as provided in Subsection 5.2); (b) for Customer’s internal business purposes; (c) for the term of the license; and (d) on the
computer hardware and at the site authorized by Mentor Graphics. A site is restricted to a one-half mile (800 meter) radius.
Customer may have Software temporarily used by an employee for telecommuting purposes from locations other than a
Customer office, such as the employee's residence, an airport or hotel, provided that such employee's primary place of
employment is the site where the Software is authorized for use. Mentor Graphics’ standard policies and programs, which vary
depending on Software, license fees paid or services purchased, apply to the following: (a) relocation of Software; (b) use of
Software, which may be limited, for example, to execution of a single session by a single user on the authorized hardware or for
a restricted period of time (such limitations may be technically implemented through the use of authorization codes or similar
devices); and (c) support services provided, including eligibility to receive telephone support, updates, modifications, and
revisions. For the avoidance of doubt, if Customer requests any change or enhancement to Software, whether in the course of
receiving support or consulting services, evaluating Software, performing beta testing or otherwise, any inventions, product
improvements, modifications or developments made by Mentor Graphics (at Mentor Graphics’ sole discretion) will be the
exclusive property of Mentor Graphics.
3. ESC SOFTWARE. If Customer purchases a license to use development or prototyping tools of Mentor Graphics’ Embedded
Software Channel (“ESC”), Mentor Graphics grants to Customer a nontransferable, nonexclusive license to reproduce and
distribute executable files created using ESC compilers, including the ESC run-time libraries distributed with ESC C and C++
compiler Software that are linked into a composite program as an integral part of Customer’s compiled computer program,
provided that Customer distributes these files only in conjunction with Customer’s compiled computer program. Mentor
Graphics does NOT grant Customer any right to duplicate, incorporate or embed copies of Mentor Graphics’ real-time operating
systems or other embedded software products into Customer’s products or applications without first signing or otherwise
agreeing to a separate agreement with Mentor Graphics for such purpose.
4. BETA CODE.
4.1. Portions or all of certain Software may contain code for experimental testing and evaluation (“Beta Code”), which may not
be used without Mentor Graphics’ explicit authorization. Upon Mentor Graphics’ authorization, Mentor Graphics grants to
Customer a temporary, nontransferable, nonexclusive license for experimental use to test and evaluate the Beta Code
without charge for a limited period of time specified by Mentor Graphics. This grant and Customer’s use of the Beta Code
shall not be construed as marketing or offering to sell a license to the Beta Code, which Mentor Graphics may choose not to
release commercially in any form.
4.2. If Mentor Graphics authorizes Customer to use the Beta Code, Customer agrees to evaluate and test the Beta Code under
normal conditions as directed by Mentor Graphics. Customer will contact Mentor Graphics periodically during Customer’s
use of the Beta Code to discuss any malfunctions or suggested improvements. Upon completion of Customer’s evaluation
and testing, Customer will send to Mentor Graphics a written evaluation of the Beta Code, including its strengths,
weaknesses and recommended improvements.
4.3. Customer agrees to maintain Beta Code in confidence and shall restrict access to the Beta Code, including the methods and
concepts utilized therein, solely to those employees and Customer location(s) authorized by Mentor Graphics to perform
beta testing. Customer agrees that any written evaluations and all inventions, product improvements, modifications or
developments that Mentor Graphics conceived or made during or subsequent to this Agreement, including those based
partly or wholly on Customer’s feedback, will be the exclusive property of Mentor Graphics. Mentor Graphics will have
exclusive rights, title and interest in all such property. The provisions of this Subsection 4.3 shall survive termination of this
Agreement.
5. RESTRICTIONS ON USE.
5.1. Customer may copy Software only as reasonably necessary to support the authorized use. Each copy must include all
notices and legends embedded in Software and affixed to its medium and container as received from Mentor Graphics. All
copies shall remain the property of Mentor Graphics or its licensors. Customer shall maintain a record of the number and
primary location of all copies of Software, including copies merged with other software, and shall make those records
available to Mentor Graphics upon request. Customer shall not make Products available in any form to any person other
than Customer’s employees and on-site contractors, excluding Mentor Graphics competitors, whose job performance
requires access and who are under obligations of confidentiality. Customer shall take appropriate action to protect the
confidentiality of Products and ensure that any person permitted access does not disclose or use it except as permitted by
this Agreement. Customer shall give Mentor Graphics written notice of any unauthorized disclosure or use of the Products
as soon as Customer learns or becomes aware of such unauthorized disclosure or use. Except as otherwise permitted for
purposes of interoperability as specified by applicable and mandatory local law, Customer shall not reverse-assemble,
reverse-compile, reverse-engineer or in any way derive any source code from Software. Log files, data files, rule files and
script files generated by or for the Software (collectively “Files”), including without limitation files containing Standard
Verification Rule Format (“SVRF”) and Tcl Verification Format (“TVF”) which are Mentor Graphics’ proprietary syntaxes
for expressing process rules, constitute or include confidential information of Mentor Graphics. Customer may share Files
with third parties, excluding Mentor Graphics competitors, provided that the confidentiality of such Files is protected by
written agreement at least as well as Customer protects other information of a similar nature or importance, but in any case
with at least reasonable care. Customer may use Files containing SVRF or TVF only with Mentor Graphics products. Under
no circumstances shall Customer use Software or Files or allow their use for the purpose of developing, enhancing or
marketing any product that is in any way competitive with Software, or disclose to any third party the results of, or
information pertaining to, any benchmark.
5.2. If any Software or portions thereof are provided in source code form, Customer will use the source code only to correct
software errors and enhance or modify the Software for the authorized use. Customer shall not disclose or permit disclosure
of source code, in whole or in part, including any of its methods or concepts, to anyone except Customer’s employees or
contractors, excluding Mentor Graphics competitors, with a need to know. Customer shall not copy or compile source code
in any manner except to support this authorized use.
5.3. Customer may not assign this Agreement or the rights and duties under it, or relocate, sublicense or otherwise transfer the
Products, whether by operation of law or otherwise (“Attempted Transfer”), without Mentor Graphics’ prior written
consent and payment of Mentor Graphics’ then-current applicable relocation and/or transfer fees. Any Attempted Transfer
without Mentor Graphics’ prior written consent shall be a material breach of this Agreement and may, at Mentor Graphics’
option, result in the immediate termination of the Agreement and/or the licenses granted under this Agreement. The terms
of this Agreement, including without limitation the licensing and assignment provisions, shall be binding upon Customer’s
permitted successors in interest and assigns.
5.4. The provisions of this Section 5 shall survive the termination of this Agreement.
6. SUPPORT SERVICES. To the extent Customer purchases support services, Mentor Graphics will provide Customer updates
and technical support for the Products, at the Customer site(s) for which support is purchased, in accordance with Mentor
Graphics’ then current End-User Support Terms located at http://supportnet.mentor.com/about/legal/.
7. AUTOMATIC CHECK FOR UPDATES; PRIVACY. Technological measures in Software may communicate with servers
of Mentor Graphics or its contractors for the purpose of checking for and notifying the user of updates and to ensure that the
Software in use is licensed in compliance with this Agreement. Mentor Graphics will not collect any personally identifiable data
in this process and will not disclose any data collected to any third party without the prior written consent of Customer, except to
Mentor Graphics’ outside attorneys or as may be required by a court of competent jurisdiction.
8. LIMITED WARRANTY.
8.1. Mentor Graphics warrants that during the warranty period its standard, generally supported Products, when properly
installed, will substantially conform to the functional specifications set forth in the applicable user manual. Mentor
Graphics does not warrant that Products will meet Customer’s requirements or that operation of Products will be
uninterrupted or error free. The warranty period is 90 days starting on the 15th day after delivery or upon installation,
whichever first occurs. Customer must notify Mentor Graphics in writing of any nonconformity within the warranty period.
For the avoidance of doubt, this warranty applies only to the initial shipment of Software under an Order and does not
renew or reset, for example, with the delivery of (a) Software updates or (b) authorization codes or alternate Software under
a transaction involving Software re-mix. This warranty shall not be valid if Products have been subject to misuse,
unauthorized modification or improper installation. MENTOR GRAPHICS’ ENTIRE LIABILITY AND CUSTOMER’S
EXCLUSIVE REMEDY SHALL BE, AT MENTOR GRAPHICS’ OPTION, EITHER (A) REFUND OF THE PRICE
PAID UPON RETURN OF THE PRODUCTS TO MENTOR GRAPHICS OR (B) MODIFICATION OR
REPLACEMENT OF THE PRODUCTS THAT DO NOT MEET THIS LIMITED WARRANTY, PROVIDED
CUSTOMER HAS OTHERWISE COMPLIED WITH THIS AGREEMENT. MENTOR GRAPHICS MAKES NO
WARRANTIES WITH RESPECT TO: (A) SERVICES; (B) PRODUCTS PROVIDED AT NO CHARGE; OR (C) BETA
CODE; ALL OF WHICH ARE PROVIDED “AS IS.”
8.2. THE WARRANTIES SET FORTH IN THIS SECTION 8 ARE EXCLUSIVE. NEITHER MENTOR GRAPHICS NOR
ITS LICENSORS MAKE ANY OTHER WARRANTIES EXPRESS, IMPLIED OR STATUTORY, WITH RESPECT TO
PRODUCTS PROVIDED UNDER THIS AGREEMENT. MENTOR GRAPHICS AND ITS LICENSORS
SPECIFICALLY DISCLAIM ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY.
10. HAZARDOUS APPLICATIONS. CUSTOMER ACKNOWLEDGES IT IS SOLELY RESPONSIBLE FOR TESTING ITS
PRODUCTS USED IN APPLICATIONS WHERE THE FAILURE OR INACCURACY OF ITS PRODUCTS MIGHT
RESULT IN DEATH OR PERSONAL INJURY (“HAZARDOUS APPLICATIONS”). NEITHER MENTOR GRAPHICS
NOR ITS LICENSORS SHALL BE LIABLE FOR ANY DAMAGES RESULTING FROM OR IN CONNECTION WITH
THE USE OF MENTOR GRAPHICS PRODUCTS IN OR FOR HAZARDOUS APPLICATIONS. THE PROVISIONS OF
THIS SECTION 10 SHALL SURVIVE THE TERMINATION OF THIS AGREEMENT.
11. INDEMNIFICATION. CUSTOMER AGREES TO INDEMNIFY AND HOLD HARMLESS MENTOR GRAPHICS AND
ITS LICENSORS FROM ANY CLAIMS, LOSS, COST, DAMAGE, EXPENSE OR LIABILITY, INCLUDING
ATTORNEYS’ FEES, ARISING OUT OF OR IN CONNECTION WITH THE USE OF PRODUCTS AS DESCRIBED IN
SECTION 10. THE PROVISIONS OF THIS SECTION 11 SHALL SURVIVE THE TERMINATION OF THIS
AGREEMENT.
12. INFRINGEMENT.
12.1. Mentor Graphics will defend or settle, at its option and expense, any action brought against Customer in the United States,
Canada, Japan, or member state of the European Union which alleges that any standard, generally supported Product
acquired by Customer hereunder infringes a patent or copyright or misappropriates a trade secret in such jurisdiction.
Mentor Graphics will pay costs and damages finally awarded against Customer that are attributable to the action. Customer
understands and agrees that as conditions to Mentor Graphics’ obligations under this section Customer must: (a) notify
Mentor Graphics promptly in writing of the action; (b) provide Mentor Graphics all reasonable information and assistance
to settle or defend the action; and (c) grant Mentor Graphics sole authority and control of the defense or settlement of the
action.
12.2. If a claim is made under Subsection 12.1 Mentor Graphics may, at its option and expense, (a) replace or modify the Product
so that it becomes noninfringing; (b) procure for Customer the right to continue using the Product; or (c) require the return
of the Product and refund to Customer any purchase price or license fee paid, less a reasonable allowance for use.
12.3. Mentor Graphics has no liability to Customer if the action is based upon: (a) the combination of Software or hardware with
any product not furnished by Mentor Graphics; (b) the modification of the Product other than by Mentor Graphics; (c) the
use of other than a current unaltered release of Software; (d) the use of the Product as part of an infringing process; (e) a
product that Customer makes, uses, or sells; (f) any Beta Code or Product provided at no charge; (g) any software provided
by Mentor Graphics’ licensors who do not provide such indemnification to Mentor Graphics’ customers; or
(h) infringement by Customer that is deemed willful. In the case of (h), Customer shall reimburse Mentor Graphics for its
reasonable attorney fees and other costs related to the action.
12.4. THIS SECTION 12 IS SUBJECT TO SECTION 9 ABOVE AND STATES THE ENTIRE LIABILITY OF MENTOR
GRAPHICS AND ITS LICENSORS FOR DEFENSE, SETTLEMENT AND DAMAGES, AND CUSTOMER’S SOLE
AND EXCLUSIVE REMEDY, WITH RESPECT TO ANY ALLEGED PATENT OR COPYRIGHT INFRINGEMENT
OR TRADE SECRET MISAPPROPRIATION BY ANY PRODUCT PROVIDED UNDER THIS AGREEMENT.
13. TERMINATION AND EFFECT OF TERMINATION. If a Software license was provided for limited term use, such license
will automatically terminate at the end of the authorized term.
13.1. Mentor Graphics may terminate this Agreement and/or any license granted under this Agreement immediately upon written
notice if Customer: (a) exceeds the scope of the license or otherwise fails to comply with the licensing or confidentiality
provisions of this Agreement, or (b) becomes insolvent, files a bankruptcy petition, institutes proceedings for liquidation or
winding up or enters into an agreement to assign its assets for the benefit of creditors. For any other material breach of any
provision of this Agreement, Mentor Graphics may terminate this Agreement and/or any license granted under this
Agreement upon 30 days written notice if Customer fails to cure the breach within the 30 day notice period. Termination of
this Agreement or any license granted hereunder will not affect Customer’s obligation to pay for Products shipped or
licenses granted prior to the termination, which amounts shall be payable immediately upon the date of termination.
13.2. Upon termination of this Agreement, the rights and obligations of the parties shall cease except as expressly set forth in this
Agreement. Upon termination, Customer shall ensure that all use of the affected Products ceases, and shall return hardware
and either return to Mentor Graphics or destroy Software in Customer’s possession, including all copies and
documentation, and certify in writing to Mentor Graphics within ten business days of the termination date that Customer no
longer possesses any of the affected Products or copies of Software in any form.
14. EXPORT. The Products provided hereunder are subject to regulation by local laws and United States government agencies,
which prohibit export or diversion of certain products and information about the products to certain countries and certain
persons. Customer agrees that it will not export Products in any manner without first obtaining all necessary approval from
appropriate local and United States government agencies.
15. U.S. GOVERNMENT LICENSE RIGHTS. Software was developed entirely at private expense. All Software is commercial
computer software within the meaning of the applicable acquisition regulations. Accordingly, pursuant to US FAR 48 CFR
12.212 and DFAR 48 CFR 227.7202, use, duplication and disclosure of the Software by or for the U.S. Government or a U.S.
Government subcontractor is subject solely to the terms and conditions set forth in this Agreement, except for provisions which
are contrary to applicable mandatory federal laws.
16. THIRD PARTY BENEFICIARY. Mentor Graphics Corporation, Mentor Graphics (Ireland) Limited, Microsoft Corporation
and other licensors may be third party beneficiaries of this Agreement with the right to enforce the obligations set forth herein.
17. REVIEW OF LICENSE USAGE. Customer will monitor the access to and use of Software. With prior written notice and
during Customer’s normal business hours, Mentor Graphics may engage an internationally recognized accounting firm to
review Customer’s software monitoring system and records deemed relevant by the internationally recognized accounting firm
to confirm Customer’s compliance with the terms of this Agreement or U.S. or other local export laws. Such review may include
FLEXlm or FLEXnet (or successor product) report log files that Customer shall capture and provide at Mentor Graphics’
request. Customer shall make records available in electronic format and shall fully cooperate with data gathering to support the
license review. Mentor Graphics shall bear the expense of any such review unless a material non-compliance is revealed. Mentor
Graphics shall treat as confidential information all information gained as a result of any request or review and shall only use or
disclose such information as required by law or to enforce its rights under this Agreement. The provisions of this Section 17
shall survive the termination of this Agreement.
18. CONTROLLING LAW, JURISDICTION AND DISPUTE RESOLUTION. The owners of certain Mentor Graphics
intellectual property licensed under this Agreement are located in Ireland and the United States. To promote consistency around
the world, disputes shall be resolved as follows: excluding conflict of laws rules, this Agreement shall be governed by and
construed under the laws of the State of Oregon, USA, if Customer is located in North or South America, and the laws of Ireland
if Customer is located outside of North or South America. All disputes arising out of or in relation to this Agreement shall be
submitted to the exclusive jurisdiction of the courts of Portland, Oregon when the laws of Oregon apply, or Dublin, Ireland when
the laws of Ireland apply. Notwithstanding the foregoing, all disputes in Asia arising out of or in relation to this Agreement shall
be resolved by arbitration in Singapore before a single arbitrator to be appointed by the chairman of the Singapore International
Arbitration Centre (“SIAC”) to be conducted in the English language, in accordance with the Arbitration Rules of the SIAC in
effect at the time of the dispute, which rules are deemed to be incorporated by reference in this section. This section shall not
restrict Mentor Graphics’ right to bring an action against Customer in the jurisdiction where Customer’s place of business is
located. The United Nations Convention on Contracts for the International Sale of Goods does not apply to this Agreement.
19. SEVERABILITY. If any provision of this Agreement is held by a court of competent jurisdiction to be void, invalid,
unenforceable or illegal, such provision shall be severed from this Agreement and the remaining provisions will remain in full
force and effect.
20. MISCELLANEOUS. This Agreement contains the parties’ entire understanding relating to its subject matter and supersedes all
prior or contemporaneous agreements, including but not limited to any purchase order terms and conditions. Some Software
may contain code distributed under a third party license agreement that may provide additional rights to Customer. Please see
the applicable Software documentation for details. This Agreement may only be modified in writing by authorized
representatives of the parties. Waiver of terms or excuse of breach must be in writing and shall not constitute subsequent
consent, waiver or excuse.