Lbist Ref
Lbist Ref
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.
Note - Viewing PDF files within a web browser causes some links not to function (see MG595892).
Use HTML for full navigation
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 HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
U.S. GOVERNMENT LICENSE RIGHTS: The software and documentation were developed entirely at
private expense and are commercial computer software and commercial computer software
documentation within the meaning of the applicable acquisition regulations. Accordingly, pursuant to
FAR 48 CFR 12.212 and DFARS 48 CFR 227.7202, use, duplication and disclosure by or for the U.S.
Government or a U.S. Government subcontractor is subject solely to the terms and conditions set forth in
the license agreement provided with the software, except for provisions which are contrary to applicable
mandatory federal laws.
TRADEMARKS: The trademarks, logos and service marks ("Marks") used herein are the property of
Mentor Graphics Corporation or other parties. No one is permitted to use these Marks without the prior
written consent of Mentor Graphics or the owner of the Mark, as applicable. 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: mentor.com/trademarks.
The registered trademark Linux® is used pursuant to a sublicense from LMI, the exclusive licensee of
Linus Torvalds, owner of the mark on a world-wide basis.
Chapter 1
What is In This Reference Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Chapter 2
BIST-Ready Command Dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Command Line Syntax Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Command Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
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 Multi_cycle Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Add Nofaults. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Add Nonscan Instances. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Add Nonscan Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Add Notest Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Add Output Masks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Add Pin Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Add Pin Equivalences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Add Primary Inputs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Add Primary Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Add Read Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Add Scan Chains. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Add Scan Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Add Scan Instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Add Scan Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Add Scan Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Add Sub Chains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Add Subchain Clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Add Test Points. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Add Tied Signals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Add Write Controls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Analyze Control Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Analyze Input Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Analyze Output Observe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Analyze Testability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Archive Test_points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Delete Black Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Chapter 3
BIST Controller Command Dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Command Line Syntax Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Command Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Command Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Add Capture Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Add Cell Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
Add Clock Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Chapter 4
Fault Simulation Command Dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
Command Line Syntax Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
Command Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
Command Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
Add Bist Capture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
Add Chain Masks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
Add Clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
Add Faults. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
Add LFSR Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
Add LFSR Taps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
Add LFSRs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
Add MTPI Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
Add MTPI Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
Add Nofaults. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
Add Notest Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
Chapter 5
Shell Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
Shell Command Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
Command Line Syntax Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
lbistarchitect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
Appendix A
Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751
The Tessent Documentation System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751
Mentor Support Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 752
Index
Third-Party Information
List of Figures
List of Tables
Tip: For a more comprehensive discussion of the strategy for using these commands, see
the LBISTArchitect Process Guide.
This section contains command descriptions for the BIST-Ready phase of LBISTArchitect.
Command Summary
Table 2-2 contains a summary of the commands described in this manual.
Command Descriptions
The following section provides an alphabetical list and descriptions of the commands available
for your use for the BIST-Ready flow of LBISTArchitect.
Tip: Use the line continuation character, “\\”, when the application commands extend
beyond the end of a line.
• -Pin pinname {0 | 1 | X | Z}
An optional, repeatable switch, string, and literal triplet that specifies the tie value of a
particular pin on the black box. Valid values are 0, 1, X, and Z. You must specify a value.
Unspecified pins assume the default tie value.
• -FAUlt_boundary
A switch that specifies 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 that specifies 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 that specifies to not keep pin pathnames at the boundaries of all blackboxed
instances and to not allow boundary pins to become fault sites.
Example
The following example creates a blackbox for module core with 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
Add Tied Signals Report Black Box
Delete Black Box
SSCLK (slave scan clock; default name scan_sclk) — A literal that specifies the
primary input pin that clocks the scan data into the slave scan elements of the scan
chain when using the LSSD scan type.
SET (scan set; default name scan_set) — A literal that specifies the scan set for the new
scan cells.
RESET (scan reset; default name scan_reset) — A literal that specifies the scan reset for
the new scan cells.
• -Model modelname
An optional switch and string pair that specifies the name of a buffer in the library that
LBISTArchitect 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 can obtain with the Report Cell Models command).
Examples
The following mux-DFF example explicitly specifies the buffer model to use and sets the
maximum fanout for the scan enable pin itself.
You must first 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.
add cell models buf2a -type buf -max_fanout 10
report cell models
BUF : buf1a<infinity> buf2a<10>
add buffer insertion 5 sen -model buf2a
Related Commands
Add Cell Models Report Buffer Insertion
Delete Buffer Insertion Setup Scan Insertion
Buf -Max_fanout integer — A literal with a switch and integer pair that specifies a one-
input buffer gate with an optional buffer fanout limit.
OR — A literal that specifies a two-input OR gate.
NAnd — A literal that specifies a two-input NAND gate.
NOr — A literal that specifies a two-input NOR gate.
Xor — A literal that specifies an exclusive OR gate.
INBuf — A literal that specifies a primary input buffer gate that LBISTArchitect inserts
whenever the tool adds new input pins (such as the scan input or scan enable pins). It
places the buffer between the primary input and the new pin.
OUtbuf — A literal that specifies a primary output buffer gate that LBISTArchitect
inserts whenever the tool adds new output pins (such as the scan output pin). It places
the buffer between the new pin and the primary output.
Mux selector data0 data1 — A literal and three strings that specify a 2-1 multiplexer, as
well as the names of the selector pin and both data pins.
Scancell clk data — A literal and two strings that specify a mux-scan cell with four
input pins (clock, data, scan in, and scan enable), clocked scan cell with four inputs
(clock, data, scan clock, and scan enable), or LSSD scan cell with five inputs (clock,
data, scan in, master clock, and slave clock). You must specify the name of the clock
and data pins of the DFT library cell model.
DFf clk data — A literal and two strings that specify a D flip-flop with two input pins
(clock and data). You must specify the names of the clock and data pins of the DFT
library cell model.
DLat enable data [-Active {High | Low}] — A literal and two strings that specify a D
latch with two input pins (enable and data). You must specify the names of the enable
line and the data pin of the DFT library cell model. You can also include the optional
-Active switch if you are defining this model for use with lockup latches:
-Active {High | Low} — An optional switch and literal pair that specifies whether
the enable input is active high or active low. The information from this option is
used by the Set Lockup Latch command. The default is active high.
• {-Noinvert | -Invert} output_pin
An optional switch and string pair that you can use with values of the cell_model that are
sequential elements. This switch specifies whether the output_pin has an inversion
relationship with the data input of the given sequential element. By default, LBISTArchitect
assumes no inversion relationship between the output_pin and the data input. If you do not
explicitly specify an inversion switch, by default, LBISTArchitect uses the first output_pin
value it identifies on a DFF, ScanCell, or DLAT model.
Examples
The following example shows a typical use of test logic, which involves the set, reset, and clock
pins on sequential elements (flip-flops). LBISTArchitect can usually ensure controllability of
sequential elements with model types of And, Or, and Mux.
The following mux-DFF example adds the buf2a cell to the buffer model list, explicitly
specifies the buffer model to use, and sets the maximum fanout for the scan enable:
add cell models buf2a -type buff
report cell models
BUF : buf1a buf2a
Related Commands
Add Buffer Insertion Set Io Insertion
Add Test Points Set Lockup Latch
Delete Cell Models Set Test Logic
Report Cell Models Setup Scan Identification
The Add Clock Groups command controls which scan cells are merged into the same
scan chain, but the clocks are not considered equivalent from a timing perspective. As a
result, LBISTArchitect does not consider all clocks within a clock group to be equivalent
when identifying the target location for a new scan cell created during X-bounding or
MTPI.
Arguments
• group_name
A required string that specifies the name you want to assign to the list of clock pins that you
provide with the clk_pin argument.
• clk_pin
A required, repeatable string that specifies the names of all the clocks that control the cells
that you want to group together.
• -Tclk
An optional switch that specifies to include the test clock in the clock group. Because
LBISTArchitect adds the clock signal during test structure insertion, you cannot specify the
actual clock name here.
Examples
The following example lists the clocks in the current clock list, splits those clocks into two
different groups, and defines the latch LBISTArchitect will use to synchronize the different
clocks. It also enables automatic lockup latch insertion and then performs the scan and latch
placement.
add clock 1 clk1 clk2
add clock 0 clk3 clk4 clk5 clk6
set system mode dft
…
add clock groups group1 clk1 clk3 clk4
add clock groups group2 clk2 clk5 clk6
add cell models dlat1a -type dlat enable data
add cell models inv -type inv
set lockup latch on
run
synthesize
Note
This example causes LBISTArchitect to create two scan chains because there are two
clock groups.
Related Commands
Add Cell Models Report Clock Groups
Add Clocks Set Lockup Latch
Add Pin Equivalences Synthesize
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 that control the clocks in the
design.
You must declare all control signals (such as clocks, sets, and resets) and their corresponding
off-states with the Add Clocks command before entering the Dft mode. Otherwise, instances
that the design rules checker cannot completely control do not pass the scannability check. If an
instance does not pass the scannability check, LBISTArchitect does not recognize it as a
scannable instance, and cannot replace it with the corresponding scan cell.
As you declare clocks, they are inserted into a default clock group, all_clocks. Deleted clocks
are removed from all_clocks.
Arguments
• off_state
A required literal that specifies 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 that the off-state value is 0.
1 — A literal specifying that 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, LBISTArchitect 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, which, in this case, is simply
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
For additional information on scan cell and scan output mapping, refer to “Scan Cell and Scan
Output Mapping” in the Scan and ATPG User’s Manual.
Arguments
• object_name
A required string that specifies the name of the nonscan model you want to map to a
different scan model. You can also specify an instance, hierarchical instance, module, or
scan model.
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 nonscan model for which you want to
change the mapping. This argument is only required if you specify the -Instance or -Module
switch. Otherwise, specify the nonscan 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 nonscan model. This argument is required except when you are only changing
the mapping of the scan output pin and you 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 LBISTArchitect-defined scan output pin. You must have already declared the
port as a scan-out port in the scan_definition section of the scan cell.
Examples
The following example maps the fd1 nonscan 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 nonscan 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 nonscan 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 nonscan 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.
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]} [-VERbose] [{> | >>} file_pathname]
Description
Places nofault settings either on a pin or on all pins of a specified instance or module.
The Add Nofaults command places a no-fault setting on either a single specified pin or on all
pins of a specified instance or module. If the pathname is a pin, then LBISTArchitect 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. The nofaults that you create with the
Add Nofaults command only exist for the current LBISTArchitect session.
LBISTArchitect recognizes the no-fault setting on pins and instances through two different
tagging processes. The first process involves interactively using the Add Nofaults command
(which you can use on pins and instances); the second process involves using the no-fault DFT
library attribute (which you can only use on pins, not on instances).
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 that specifies to which stuck-at values you want to assign
a nofault setting. The choices for stuck-at values are as follows:
01 — A literal that specifies the placement of a nofault setting on both the “stuck-at-0”
and “stuck-at-1” faults. This is the default.
0 — A literal that specifies the placement of a nofault setting on the “stuck-at-0” faults.
1 — A literal that 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.
• -VERbose
By default when you specify wildcard characters for instance (-INstance) or pin (-PIN)
names, the tool outputs a summary message similar to the following:
// Note: Adding faults for 330 fault sites.
When you specify the optional -VERbose switch, then the tool outputs the instance or pin
names instead of the summary. You can optionally redirect this output to a file using the >
or >> redirection operators.
If you use actual instance or pin names instead of wildcards, then this switch has no effect.
• > 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 first tags all the pin faults on and below an instance. The example 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
Examples
The following example specifies that LBISTArchitect 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
Report Instance Set Nonscan Handling
Related Commands
Delete Nonscan Models Run
Insert Test Logic Report Nonscan Models
Set Nonscan Handling
• -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 User’s Manual.
Examples
The following example first sets up the test point identification parameters, then specifies
output pins tr_io and ts_i that LBISTArchitect cannot use for testability insertion:
setup test_point identification -control 9 -obs 20 -patterns 32000
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 Setup Test_point Insertion
Report Notest Points
When you issue the Run command later in the session, LBISTArchitect identifies all the
sequential elements that are observable only through the primary output pin that you masked.
Then, when you issue the Insert Test Logic command, LBISTArchitect stitches all those scan
cells it previously identified as being in the partition into one partition scan chain.
Related Commands
Analyze Output Observe Setup Output Masks
Delete Output Masks Setup Scan Identification
Report Output Masks
You can set a default pin constraint value for all input pins using the Setup Pin Constraints
command. The pin constraints set by the Setup Pin Constraints command can be 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. 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
A required string that specifies the primary input pin that you want LBISTArchitect to hold
at the constant_value.
• C0 | C1 | CZ | CX | CR0 | CR1
A literal that specifies the application of the constant value with which you want to constrain
the primary_input pin. The constraint choices are as follows:
C0 — A literal that specifies application of the constant 0 to the chosen primary input
pins.
C1 — A literal that specifies application of the constant 1 to the chosen primary input
pins.
CZ — A literal that specifies application of the constant Z (high-impedance) to the
chosen primary input pins.
CX — A literal that specifies application of the constant X (unknown) to the chosen
primary input pins.
CR0 — A literal that specifies a constant that returns to 0; LBISTArchitect uses this
constant only when formatting the patterns. BIST simulation treats CR0 as a C0.
CR1 — A literal that specifies a constant that returns to 1; LBISTArchitect uses this
constant only when formatting the patterns. BIST simulation treats CR1 as a C1.
• -SYnthesize
An optional switch that specifies for LBISTArchitect to synthesize the pin constraints in the
hardware. That is, LBISTArchitect creates extra gates on the input paths that are controlled
by lbist_enable as shown here:
Core
a a_internal
b b_internal
lbist_enable
The CZ and CX constant values can not be used with the -Synthesize switch. The tool adds
the necessary hardware when you issue the Insert Test Logic command.
• -SImulate {ATPG | BIST | ALL}
An optional switch that specifies for LBISTArchitect to constrain the pins through the test
environment (such as the test bench and test vectors). These signals must be driven with the
appropriate values any time a logic BIST test is active. If you use -Simulate, a tester is
required to apply these pin constraints. So, the test may not be usable at the board/system
level.
The ALL literal is the default when you specify (or by default use) the -Simulate switch.
The ATPG literal specifies for the tool to constrain the pins in the ATPG topup pattern
generation (but not during BIST), the BIST literal specifies for the tool to constrain the pins
in the BIST simulation (but not during ATPG), and the ALL literal specifies for the tool to
constrain the pins in both ATPG and BIST.
Examples
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
Analyze Input Control Report Pin Constraints
Delete Pin Constraints Setup 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 LBISTArchitect 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
LBISTArchitect to use when determining the state value of primary_input_pin. You can
immediately precede this string with the -Invert switch to cause LBISTArchitect 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
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
• primary_input_pin
A required string that specifies the primary input pin of the scan chain.
• primary_output_pin
A required string that specifies the primary output pin of the scan chain.
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 of the scan chain group that you want to add to the
system.
• 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
Because of the previous setup in this example, when LBISTArchitect runs the scan
identification process it chooses the optimal 50 percent of eligible scan instances, but always
includes i_1006 and i_1007 within that fifty percent.
Related Commands
Delete Scan Instances Report Sequential Instances
Report Instance Setup Scan Identification
Related Commands
Delete Scan Models Report Scan Models
top of the ATPG dofile and the following command is added in front of the Add Scan
Chains command referencing the internal scan_input_pin argument:
add primary input -cut “scan_input_pin”
If the pin is a top-level bidirectional pin, LBISTArchitect assumes that you configured the
pin to be in input mode during the scan test and does not check for correct configuration.
If you specify -Registered, 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 a
top-level output pin, top-level bidirectional pin (single driver), or an internal signal. If the
scan-out pin you specify is driven by multiple instances, LBISTArchitect adds a mux gate to
multiplex the original functional driver with the driver from the last scan cell of the scan
chain.
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 (such as scan_out), you can also specify an internal
instance pin pathname (such as /I116/q) as the scan_output_pin value. If you do so, that pin
pathname must be an input pin of an instance.
If the specified internal instance pin cannot be traced forward 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 in front of the Add Scan Chains command referencing the internal
scan_output_pin argument:
add primary output “scan_output_pin”
If the pin is a top-level bidirectional pin, LBISTArchitect assumes that you configured the
pin to be in output mode 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
LBISTArchitect to assign to the scan chain. You must have predefined this pin as a scan
clock by 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 specifies to attach head and tail DFF registers to the scan chain.
Example 2
The following example assigns a scan input and scan output name to the scan chain, along with
assigning the top-level primary input and output pins when they have different names than the
specified internal scan_input_pin and scan_output_pin:
add clocks 0 clk
set system mode dft
// run scan identification
run
add scan pins chain1 u125/u121/Qi u126/u224/TI -top scan_in1 scan_out1
// scan insertion
insert test logic
write atpg setup scan.testproc scan.do
Figure 2-1 shows the resulting faultsim dofile from the Write Atpg Setup command. Notice that
the specified top-level primary pin names (scan_in1 and scan_out1) are used in place of the
internal scan in and scan out pin pathnames shown in Figure 2-2. Also notice that the Add Scan
Chains is commented out in the second figure.
Related Commands
Delete Scan Pins Setup Scan Pins
Report Scan Pins
• scan_output_pin
A required string that specifies the scan output pin of the scan sub-chain.
• length
A required integer that specifies the number of scan cells in the scan sub-chain.
• scan_type
Scan type usage:
Mux_scan{{-SEN_Core | -SEN_In | -SEN_Out} 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 mux_scan type and control
of the scan sub-chain. Options include:
[-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 sub-chain container (module or library_model).
Normally, LBISTArchitect inserts one type of scan enable signal, referred to as
Sen_core. In a partition scan insertion flow, LBISTArchitect can also insert two more
types of scan enable signals if partitioning by I/O type is specified. The scan enable
signals inserted for separate input and output partition cells are referred to as Sen_in
and Sen_out. For more information on partitioning by I/O type, refer to the section
that describes the Setup Partition Scan command. At least one of these three types of
scan enables must be specified in the sub-chain declaration. A sub-chain 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 — An optional switch and two strings that specify the
names of the clock pins on the top module that control the defined sub-chain.
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 scan cell partitioning, only the first cell clock pin
information is used to determine which top-level scan chain the sub-chain cell is
placed in. If this switch is not specified, LBISTArchitect tries to find the top-level
clock pins using the sub-clock pins via structural tracing, as described below. If
LBISTArchitect cannot determine the top module clock pins, it places the defined
sub-chain in separate scan chains in the top module, along with other sub-chains with
undetermined top module clock pins.
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 sub-chain.
Lssd master_clock slave_clock — A required literal and two-string triplet that specifies
Level-Sensitive Scan Design and the names of the master and slave clocks,
respectively, for the scan sub-chain.
This next example defines three sub-chains on an instance. Note that each sub-chain has its
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 seout
mux_scan: /mytop subc3 1600 si3 so3 sen
Related Commands
Add Clocks Setup Partition Scan
Add Subchain Clocks Write Subchain Setup
Report Scan Cells
• -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, so it 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, so it is only valid for defining the first and/or last cell clocks.
Example 1
The following example defines a sub-chain 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 0 CK -first_cell_clock -leading_edge
add subchain clocks 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 Subchain Clocks
Delete Subchain Clocks Write Subchain Setup
Report Dft Check
/I$21 /I$23
input_pin_pathname
contains no scan, the test point scan cells are connected into one or more scan chains,
depending on their clock pins.
• Observe output_pin_pathname [-New_scan_cell scancell_model_name2]
The Observe test point argument specifies for LBISTArchitect to place an observe point at
the location specified by the value of the tp_pin_pathname argument.
output_pin_pathname — A string that specifies the pathname of the primary output pin
that you want LBISTArchitect to connect to the observe point. If the primary output
pin does not currently exist in the design, LBISTArchitect creates a new primary
output pin with the specified name during the insertion of the scan chain(s).
PO
output_pin_pathname
(default)
tp_pin_pathname
/I$21 /I$23
New scan cell
(if -New_scan_cell)
D Q
Connected at si
“insert test logic” se
Existing scan clk
chain clock
pin, the tool inserts the latch after the pin, and it will drive all fanouts that were originally
driven by the pin.
lockup_latch_model_name — A required string (if you use the Lockup argument) that
specifies the library latch model name. If you use this option, you must first define the
model with the Add Cell Models command.
clkpin — A string that specifies the pathname of the clock pin to which the clock pin of
the latch is connected.
-INVert | -NOInvert — A switch that specifies whether to insert an inverter between the
specified clkpin and the clock input to the latch. The default is -NOInvert.
Examples
The following example first defines a DFT library model (and2a) of type AND, and then
defines a control test point, which LBISTArchitect then generates as part of the Insert Test
Logic command:
add cell models and2a -type and
add test point /I_6_16/cp control and2a control1
set system mode dft
run
insert test logic
Related Commands
Add Cell Models Report Test Points
Delete Test Points Set Lockup Latch
Insert Test Logic Set Test Logic
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
Delete Tied Signals Report 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 BIST-Ready command, UNIX command, or existing
command alias, or any combination of the three.
Issuing the Alias command with no arguments will list the current aliased commands. If you
specify a shorthand name (synonym) and one of the command types, that shorthand name can
substitute for the command and any arguments that 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, you can parameterize the command strings by using the formal parameters, $1
through $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 provide an optional file, .lbistarchitect_startup, that contains commands that you
want 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 order of
precedence:
1. The directory pointed to by the MGCDFT_STARTUP environment variable
2. The local invocation directory
3. Your home directory
The first startup file the tool encounters is the only one it executes if you have startup files in
multiple locations. If the tool does not locate a tool_specific startup file, it searches the same
locations for the generic startup file, .mgcdft_startup.
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). Repeated commands must be separated by semicolons.
!unix_command — An optional, repeatable string that consists of any well-formed
UNIX command, with its arguments, or a UNIX 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 BIST-
Ready command and its arguments.
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 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
Related Commands
System Dofile
History
Command Summary
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.
Arguments
• -Report_only
An optional literal that specifies to only identify control signals (not to 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 the tool identifies a clock, it also performs an implicit
Add Clocks command 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
// command: analyze control signals -reports_only -verbose
//
------------------------------------------------------------------------
// Begin control signals identification analysis.
//
------------------------------------------------------------------------
// Warning: Clock line of ‘/cc01/tim_cc1/add1/post_latch_29/WRITEB_reg/r/
(7352)’ is uncontrolled at ‘/IT12 (4)’.
...
...
// Identified 2 clock control primary inputs.
// /IT23 (5) with off-state = 0.
// /IT12 (4) with off-state = 0.
// Identified 0 set control primary inputs.
// Identified 1 reset control primary inputs.
// /IRST (1) with off-state = 0.
// Identified 0 read control primary inputs.
// Identified 0 write control primary inputs.
-----------------------------------------------------------------------
// Total number of internal lines is 105 (35 clocks, 35 sets , 35 resets,
0 reads, 0 writes).
// Total number of controlled internal lines is 25 (17 clocks, 0 sets ,
8 resets, 0 reads, 0 writes).
// Total number of uncontrolled internal lines is 80 (18 clocks, 35 sets,
27 resets, 0 reads, 0 writes).
// Total number of added primary input controls 0 (0 clocks, 0 sets ,
0 resets, 0 reads, 0 writes).
-----------------------------------------------------------------------
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, as well as calculating the
controllability and observability values for gates.
The Analyze Testability command reports general scannability and testability information that
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 nonscannable 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
A 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
Archive Test_points
Scope: Dft mode
Usage
ARChive TEst_points tpfile [-Replace]
Description
Saves the MTPI testpoint insertion information in an archive file.
The Archive Test_points command is for use in a flow in which you have inserted test points
and are trying to achieve timing closure. Because following this flow could result in a reduction
in fault coverage, it is assumed that timing closure is the primary objective.
The flow consists of these steps:
1. Run MTPI and save the test point-inserted netlist. Archive the test point information to
tpfile with Archive Test_points.
2. Run static timing analysis on the saved netlist to identify new paths that violate timing.
Correlate those paths to the MTPI-inserted test points.
3. Reinvoke BIST-Ready on the original core netlist and read in tpfile with the Restore
Test_points command. Remove the test points associated with the timing violations
using the Delete Mtpi Control_point or Delete Mtpi Observe_point commands. Insert
test logic and save the netlist
Arguments
• tpfile
A required string that specifies the name of a text file containing information about the test
points identified in a MTPI run. This is a plain text file, not a list of BIST-Ready commands.
• -Replace
An optional switch that specifies to overwrite the contents of tpfile if a file by the same
name already exists.
Examples
The following example uses MTPI to identify test points, inserts the test points then archives the
test points into the file mtpi1.arc:
…
setup test_point identification -control 10-observe 10 -patterns 8191 -verbose -phases 4
-bpc_threshold 5 -sig_prob_threshold 0.1
setup test_point insertion -observe /NX1 -model FD1SQA
insert test logic -test_point on -scan off
archive test_points mtpi1.arc -replace
Related Commands
Restore Test_points Delete MTPI Observe_point
Delete MTPI Control_point Write Static_timing Setup
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 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, LBISTArchitect 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 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 nonscan model that you want to
remove the scan and pin mapping. This is a required argument if you specify the -Instance
or -Module switch; otherwise, you can specify the nonscan 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 is mapped to the
specified nonscan model. This is a required argument 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
nonscan model in the design:
delete mapping definition fd1
The following example removes the scan and output mapping for each occurrence of the fd1
nonscan 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
nonscan 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
nonscan 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
Related Commands
Archive Test_points Restore Test_points
Delete MTPI Observe_point Write Static_timing Setup
Examples
The following example removes a MTPI observe test point that was found to cause a timing
violation during a timing analysis run:
…
restore test_points mtpi1.arc
delete mtpi observe_point u7/L_FA_reg_4_/Q or 3
insert test logic -test_point on -scan off
…
Related Commands
Archive Test_points Restore Test_points
Delete MTPI Control_point Write Static_timing Setup
Delete Nofaults
Scope: Setup mode
Usage
DELete NOfaults {-All | {modulename -Module} | {object_expression… [-PIN | -Instance]}}
[-Stuck_at {01 | 0 | 1}] [-VERbose] [{> | >>} file_pathname]
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 LBISTArchitect 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.
• -VERbose
By default when you specify wildcard characters for instance (-INstance) or pin (-PIN)
names, the tool outputs a summary message similar to the following:
// Note: Adding faults for 330 fault sites.
When you specify the optional -VERbose switch, then the tool outputs the instance or pin
names instead of the summary. You can optionally redirect this output to a file using the >
or >> redirection operators.
If you use actual instance or pin names instead of wildcards, then this switch has no effect.
• > 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 deletes 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 LBISTArchitect 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. See
the examples in the Report Instance command section for ways to use the asterisk (*)
wildcard.
• -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 switch
default is -Instance.
• -All
A switch that specifies to delete all instances from the non-scan instance list.
• -Class User | Full
An optional switch and literal pair that specifies the source (or class) of the non-scan
instance that you want to delete. The valid literals are as follows:
User — A literal that specifies to only delete the non-scan instances entered by the user
using the Add Nonscan Instances command. This is the default.
Full — A literal that specifies to delete all the non-scan instances in the user and system
class.
Examples
The following example deletes an extra sequential non-scan instance called i_1007, then
performs a full scan identification run, thereby allowing LBISTArchitect to treat the non-scan
instance i_1007 as a scan cell during the identification process:
set system mode dft
add nonscan instances i_1006 i_1007 i_1008
delete nonscan instances i_1007
setup scan identification full_scan
run
Related Commands
Add Nonscan Instances Setup Scan Identification
Report Instance Set Nonscan Handling
Report Sequential Instances
LBISTArchitect 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 Setup Scan Insertion command, then LBISTArchitect 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
LBISTArchitect.
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 LBISTArchitect 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
• -Path critical_pathname
A switch and string pair that specifies to delete the named critical path from the active list of
notest paths. 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 User’s Manual.
• -ALL_Paths
A switch that specifies to delete all critical paths from the active list of notest 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
Arguments
• net_pathname
A repeatable string that specifies the circuit connections that you want to delete. You can
specify the class of primary outputs to delete with the -Class switch.
• primary_output_pin
A repeatable string that specifies a list of primary output pins that you want to delete. You
can specify the class of primary outputs to delete with the -Class switch.
• -All
A switch that deletes all primary outputs. You can specify the class of primary outputs to
delete with the -Class switch.
• -Class User | System | Full
An optional switch and literal pair that specifies the class code of the primary output pins
that you specify. The valid literal names are as follows:
User — A literal specifying that the list of primary outputs were added using the Add
Primary Outputs command. This is the default class.
System — A literal specifying that the list of primary outputs derive from the netlist.
Full — A literal specifying that the list of primary outputs consists of both the user and
system class.
Examples
The following example deletes a primary output from the system class of primary outputs:
delete primary outputs outdata1 -class system
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
Related Commands
Add Scan Instances Report Sequential Instances
Report Instance
Related Commands
Add Scan Instances Report Scan Models
Add Scan Models
Related Commands
Add Scan Pins Report Scan Pins
Related Commands
Add Subchain Clocks Report Subchain Clocks
Examples
The following example creates the definition for three test points (one observe and two control),
and 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
Note
The Delete Test Point command only specifies the testpoint_pin_names of the test points,
not the type. With this example there are two types (control and observe), which is
automatically covered by the default of -Full.
Related Commands
Add Test Points Setup Scan Identification
Insert Test Logic Setup Test_point Identification
Report Test Logic Setup Test_point Insertion
Report Test Points
• -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
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 in a file that you specify. The Dofile
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 (//); LBISTArchitect 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 LBISTArchitect 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 which you
want LBISTArchitect 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 file, command_file:
dofile command_file
Related Commands
History Set Dofile Abort
Save History
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 Test Logic
Report Primary Outputs Report Test Logic
Report Scan Cells Report Test Points
Exit
Scope: All modes
Usage
EXIt [-Force]
Description
Terminates the current BIST-Ready session.
The Exit command terminates the BIST-Ready phase and returns to LBISTArchitect. You
should either save the current netlist design before exiting or specify the -Force switch to not
save the netlist.
If you are operating in interactive mode (not running a dofile) and you neither saved the current
netlist nor used the -Force option, LBISTArchitect displays a warning message and you can
then continue the session and save the netlist before exiting.
Arguments
• -Force
An optional switch that explicitly specifies to not save the current netlist and terminate the
BIST-Ready session.
Examples
The following example exits BIST-Ready 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.testproc scan.do -replace
write netlist scan.v
exit
Related Commands
Write Scan 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. If you only type Help,
LBISTArchitect displays all of the commands. 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 BIST-Ready phase command. You can
use minimum typing for the command name.
• -MANual
An optional string that specifies to also display the reference manual description for the
specified command.
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]
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. Please see the ksh(1) man page for specifics on
the various editing modes.
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 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.
Examples
The following command displays the history list with leading numbers, starting with the oldest
command.
history
1 help hist
2 dof fault.do
Related Commands
Save History
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 specifies the name of the ASCII file
that lists the scan instances that you want LBISTArchitect 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, LBISTArchitect 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 LBISTArchitect 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.
Note
If a fixed order file is used, the -Fixed switch is required in conjunction with the scan
instances filename.
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 the tool to put in the scan chain.
cell_id — An integer that specifies the placement of the instance_pathname in relation
to other instance_pathnames. LBISTArchitect places the instance having the smallest
cell_id closest to the scan chain output. All instances in the same chain must have
unique cell_ids.
chain_id — An integer that specifies the scan chain in which you want the tool to place
the instance_pathname. LBISTArchitect places instances with the same chain_id in
the same chain.
&sub_chain_name — An optional special character and string that specifies the name of
the sub-scan chain you defined with the Add Test Points command. You need to
specify the sub-chain name when more than one sub-chain is defined for a sub-
module or a hierarchical instance. No space is allowed between the ampersand (&)
and the sub_chain_name argument.
{+|-}[lockup_latch_model] — An optional special character and an additional optional
string that specifies the location of the lockup latch. The +|- argument specifies that a
lockup latch is to be added to the scan out of the current instance_pathname. No
space is allowed between the +|- and the lockup_latch_model name. Note that if you
define a lockup latch in this file, you must specify every location that you want to
insert lockup latches. If the file contains no lockup latch definitions, LBISTArchitect
uses the settings in the Set Lockup Latch command.
+ — Specifies to use the clock that the instance_pathname with the next lower
cell_id uses. The next lower cell_id refers to the nonscan cell which will be
connected to the scan out of the current instance_pathname.
- — Specifies to use the clock that the instance_pathname uses.
lockup_latch_model — Specifies the name of the lockup latch model to use. You
must define the specified lockup latch with the Add Cell Models command or
define it in the DFT library, using the cell_type attribute. If you do not specify the
lockup_latch_model, the tool uses the first model in the defined latch model.
• -Scan ON | OFf
An optional switch and literal pair that specifies to replace the identified non-scan cells
(scan candidates) with the corresponding scan cells. The valid literals are as follows:
ON — A literal that enables the tool to replace the identified non-scan cells (scan
candidates) with the corresponding scan cells. This is the default.
OFf — A literal that disables the tool from replacing the identified non-scan cells (scan
candidates) with the corresponding scan cells.
• -Test_point ON | OFf
An optional switch and literal pair that specifies whether the tool adds the identified test
logic and test points into the design. The valid literals are as follows:
ON — A literal that enables the tool to add the identified test logic and test points into
the design. This is the default.
OFf — A literal that disables the tool from adding the identified test logic and test points
into the design.
• -Ram ON | OFf
An optional switch and literal pair that specifies whether the tool 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 the tool to add the identified test logic gates for RAM write
control line access. This is the default.
OFf — A literal that disables the tool 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
LBISTArchitect can stitch into a scan chain. LBISTArchitect 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 the tool 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 to use different clocks on the same
scan chain. The two valid literals are:
Nomerge — A literal that specifies to not use different clocks on the same scan chain.
This is the default.
Merge — A literal that specifies to use different clocks on the same scan chain.
• -Edge Nomerge | Merge
An optional switch and literal pair that specifies whether to merge stable high chains into
stable low chains. The two valid literals are:
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 LBISTArchitect stitches the scan
cells together into a scan chain. The valid literals for stitching the scan chain are:
ON — A literal that specifies 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 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 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 LBISTArchitect tie the input/output scan pins to ground.
Loop — A literal that specifies 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 LBISTArchitect connect the scan_out pin to its own scan_in
pin as a self-loop.
Buffer — A literal that specifies 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 LBISTArchitect 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 LBISTArchitect creates scan out ports
on submodules. The valid literals are:
Share — A literal that specifies to use an existing module output port on submodules for
scan out, if that port is directly connected to the scan out of a scan cell. This is the
default.
New — A literal that specifies to always create a new output port for scan out.
• -MOdule Norename | Rename
An optional switch and literal pair that specifies how to name the modified module. The
valid literals are:
Norename — A literal that specifies to use the original module name, if LBISTArchitect
uses only one type of module modification, and to no longer use the original module
in the design. This is the default.
Rename — A literal that specifies that LBISTArchitect should always rename a module
if it modifies the module.
• -Verilog
An optional switch that specifies that the final output netlist format will be Verilog.
LBISTArchitect will insert a buffer instance for the scan output pin of a lower level module
in the design hierarchy, when this pin also fans out as the module’s functional output.
Without this switch, LBISTArchitect uses the Verilog ‘assign’ statement to generate this
scan output signal from the functional output. However, some layout tools do not support
the Verilog assign statement, so the -Verilog switch is required for LBISTArchitect to
replace the assign statement with a buffer instantiation and avoid using the assign statement.
Before using this command and switch, you must have defined a buffer model with the Add
Cell Model command or with a cell_type attribute.
• -Hierarchical {OFf | ON [-Tolerance integer_percent]}
An optional switch and literal pair, with an associated optional switch and integer pair, that
specify whether DFTAdvisor tries to insert the same scan chain segments into the identical
sub-module instances in the design. DFTAdvisor considers the entire design hierarchy when
performing the segmentation and therefore this functionality can be referred to as
hierarchical scan chain segmentation. Having the same scan segments on the identical sub-
module instances allows them to share the same scan-inserted module definition in the scan-
inserted netlist which may yield a reduced netlist size. An allowable percentage variation
from the ideal chain length (tolerance) helps in reaching this goal. The valid arguments are
as follows:
OFf — A literal that specifies to not consider hierarchical scan chain segmentation. This
is the invocation default.
ON — A literal that specifies for DFTAdvisor to perform hierarchical scan chain
segmentation. The tool tries to insert the same scan chain segments into identical sub-
module instances in the design, so that the instances share the same scan-inserted
module definition when the tool generates the scan-inserted netlist. The -Tolerance
switch and integer pair can optionally be specified with this option.
-Tolerance integer_percent — A switch and integer pair that specifies the
percentage deviation that DFTAdvisor can vary from the ideal chain length when
creating the scan chains. A non-zero percentage allows DFTAdvisor to vary the
chain lengths (shorter or longer), which helps in segmenting scan chains for the
identical sub-modules in the design. However, this may also result in fewer than
specified number of scan chains. This switch is optionally used when -
Hierarchical is set to ON.
integer_percent — An integer percentage. The default value is 0, which causes
DFTAdvisor to create chains with the ideal length.
Examples
The following example identifies 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 full_scan
run
insert test logic -scan on -max_length 10
The following example causes the insertion of three scan chains using hierarchical partitioning
with a 5percent tolerance:
insert test logic -clock merge -edge merge -number 3 -hierarchy 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 Synthesize
When you issue this command in a subsequent session that restores and selectively deletes
MTPI test points, LBISTArchitect assumes all paths in the report contain test points that violate
critical timing and will automatically remove the offending test points.
Arguments
• filename
A required string that specifies the name of the timing report file that LBISTArchitect uses
for test point analysis.
• -Primetime
An optional switch that specifies that filename is in PrimeTime format. This is the default.
• -Clock clk_report_file
An optional switch and string pair that specifies to read the netlist clock information (clock
periods and duty cycles) from the PrimeTime-formatted file, clk_report_file. This file would
have been generated using the PrimeTime command, report_clock.
• -Fastscan_cpa
An optional switch that specifies that filename is in Tessent FastScan™ CPA format.
Examples
The following example causes the BIST-Ready phase of LBISTArchitect to read in a critical-
path report file, m8051_sta.rep, in PrimeTime format, as well as the netlist clock report file,
m8051_clk.rep, also in PrimeTime format:
load static_timing report m8051_sta.rep -primetime -clock m8051_clk.rep
Attributes:
p - propagated_clock
G - Generated clock
Related Commands
Archive Test_points Restore Test_points
Delete MTPI Control_point Delete MTPI Observe_point
Write Static_timing Setup Set Clock Period
Command Summary
Printenv
Scope: All modes
Usage
PRIntenv
Description
Prints out the values of the UNIX variables in the environment.
The Printenv command makes the UNIX printenv command available as a common DFT
command for convenience in displaying UNIX environment variables. UNIX environment
variables are automatically available as variable references within LBISTArchitect.
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 reads the test procedure file specified by the proc_filename
argument. LBISTArchitect merges the procedure and timing data contained in the file with the
existing data loaded from previously loaded test procedure files. The information loaded with
this command is used by the Write Atpg Setup command.
Arguments
• proc_filename
A required string that specifies the path and filename of the test procedure file to read.
Example 1
The following example reads the test procedure file my_file.proc:
read procfile my_file.proc
Example 2
In the following example, the test procedure file orig.proc defines a simple timeplate as well as
a shift, load_unload, and named capture procedure cap1. The example reads in the procedure
file, then lists the current timeplates and procedures stored in the tool’s database (for brevity,
only the parts of the timeplates and procedures relevant to this example are shown):
add scan groups grp1 orig.proc
set system mode atpg
report timeplate
timeplate gen_tp1 =
...
end;
report procedure
procedure shift =
scan_group grp1 ;
timeplate gen_tp1 ;
...
end;
procedure load_unload =
scan_group grp1 ;
timeplate gen_tp1 ;
...
end;
Example 3
Assume a second test procedure file update.proc defines a new timeplate in addition to the
original one, revises the shift procedure to use the new timeplate, and defines a new named
capture procedure cap2. The following example adds the new timeplate, updates the timing in
the scan procedures, and adds the new named capture procedure. (The timeplate and procedure
changes resulting from the Read Procfile command are highlighted in bold in the output of the
reporting commands.)
read procfile update.proc
// The following occurred at line 46 in file update.proc:
// Procedure shift updates timing in same procedure from file orig.proc.
// (W14)
// Loaded new procedure file successfully.
// 1 new capture procedure is added.
// 2 total capture procedures are in the system.
// 2 capture procedures are active for test generation.
report timeplate
timeplate gen_tp1 =
...
end;
timeplate gen_tp2 =
...
end;
report procedure
procedure shift =
scan_group grp1 ;
timeplate gen_tp2 ;
...
end;
procedure load_unload =
scan_group grp1 ;
timeplate gen_tp1 ;
...
end;
If the Read Procfile command of the preceding example had included the -Replace switch, the
original NCP would have been replaced with the new one:
read procfile update.proc -replace
// The following occurred at line 46 in file update.proc:
// Procedure shift updates timing in same procedure from file orig.proc.
(W14)
// Loaded new procedure file successfully.
// 1 new capture procedure is added.
// 1 total capture procedure is in the system.
// 1 capture procedure is active for test generation.
report procedure
procedure shift =
scan_group grp1 ;
timeplate gen_tp2 ;
...
end;
procedure load_unload =
scan_group grp1 ;
timeplate gen_tp1 ;
...
end;
Related Commands
Add Scan Groups Write Procfile
Report Timeplate
Related Commands
Setup X_bounding
Command Summary
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, LBISTArchitect 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, LBISTArchitect 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 both 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.
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
DLat — A literal that specifies a D latch with two input pins (enable and data).
Examples
The following example displays a list of all added cell models:
report cell models
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.
Examples
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]
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]
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
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.
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
measure_sco ;
pulse NX1 ;
pulse NX2 ;
end;
end;
procedure load_unload =
scan_group grp1 ;
timeplate gen_tp1 ;
cycle =
force NX1 0 ;
force NX2 0 ;
force RST 0 ;
force scan_en 1 ;
end ;
apply shift 16;
end;
• -NOSTABLE_Low
An optional switch that specifies to not report on any stable-low memory elements.
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, for
appending 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
Report Drc Rules
You can use the Set Drc Handling command to change the handling of many of the A (RAM), B
(BIST), C (clock), D (data), E (extra), T (trace), and W (timing) rules.
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’s default.
Note
This switch does not display anything if there are no rule violations, or if the tool has not
yet performed DRC.
• -Summary
A switch that specifies to display a summary report that varies depending on whether you
are reporting on all design rules or just on the D5 rule.
When you report on all rules (Report Drc Rules -Summary), the following is reported 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
When you report on just the D5 rule (Report Drc Rules D5 -Summary) the tool displays the
number of non-scan memory elements of each type (INIT-0, INIT-1, INIT-X, TIE-0, TIE-1,
TIE-X or TLA) that resulted in a D5 violation during DRC. Refer to the description of the
-Type switch for the meaning of the types.
• 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 rules and their IDs divide into the following seven groups: A (RAM), B (BIST), C
(clock), D (data), E (extra), T (trace), and W (timing).
• 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.
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)
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 displays a summary of the rules that resulted in violations during an
attempted run:
report drc rules
C3: #fails=2 handling=warning (clock may capture data affected by its
captured data)
C5: #fails=1 handling=error (clock is connected to multiple ports of same
latch)
C7: #fails=19 handling=warning (scan cell capture ability check)
C8: #fails=2 handling=warning (PO connected to a clock line)
C9: #fails=2 handling=warning (PO connected to a clock line gated by scan
cell that uses same clock)
D5: #fails=23 handling=warning (non-scan memory element)
D6: #fails=22 handling=warning (non-transparent non-scan latches)
D7: #fails=22 handling=warning (stable high edge-triggered clock ports)
This example displays the occurrence message for the two C3 violations, and the first C7, and
first D7 violation reported in the preceding example:
report drc rules c3 c7-1 d7-1
// Warning: Clock /sgst failed rule C3 on input 3 of /sp_b_i0.latch
(1501). (C3-1)
// Source of violation: input 3 of /sp_c_i1.slave (1482).
// Warning: Clock /sgst failed rule C3 on input 3 of /sp_c_i0.latch
(1527). (C3-2)
// Source of violation: input 3 of /sp_c_i1.slave (1482).
// Warning: Clock input 5 of /c8.master (1495) cannot capture data
with single clock on. (C7-1)
// Warning: Flipflop /FF1 (103) has clock port set to stable high. (D7-1)
The next example displays a summary of the non-scan memory elements that resulted in D5 rule
violations:
report drc rules d5 -summary
// --------------------------------------------------------------------
// 44 non-scan memory elements are identified.
// --------------------------------------------------------------------
// 9 non-scan memory elements are identified as TIE-0. (D5)
// 2 non-scan memory elements are identified as TIE-1. (D5)
// 5 non-scan memory elements are identified as TIE-X. (D5)
// 3 non-scan memory elements are identified as INIT-0. (D5)
// 11 non-scan memory elements are identified as INIT-1. (D5)
// 4 non-scan memory elements are identified as INIT-X. (D5)
// 10 non-scan memory elements are identified as TLA. (D5)
// --------------------------------------------------------------------
The next example displays details about the preceding example’s D5 violations that occurred on
non-scan memory elements the tool identified as type INIT-X:
report drc rules d5 -type ix
// Warning: /U1 (78) is a non-scan flip-flop identified as INIT-x.(D5-1)
// Warning: /U6 (56) is a non-scan flip-flop identified as INIT-x.(D5-7)
// Warning: /U7 (82) is a non-scan flip-flop identified as INIT-x.(D5-8)
// Warning: /U9 (11) is a non-scan latch identified as INIT-x.(D5-9)
// Number of non-scan memory elements reported = 4.
The next example displays the information for just the INIT-X non-scan latch:
report drc rules d5 -type ix -level_sensitive
// Warning: /U9 (11) is a non-scan latch identified as INIT-x.(D5-9)
// Number of non-scan memory elements reported = 1.
You could obtain the same information using the -Notype switch:
report drc rules d5 -notype i1 i0 tx t1 t0 tla -level_sensitive
// Warning: /U9 (11) is a non-scan latch identified as INIT-x.(D5-9)
// Number of non-scan memory elements reported = 1.
Related Commands
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.
When you first invoke the BIST-Ready phase of LBISTArchitect, executing the Report
Environment command shows all of the default values of the “set” commands. By default, the
output of the command is written to the transcript window of the tool.
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 shows the BIST-Ready invocation default settings:
report environment
Top Module = m8051
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 Model = clock:original disturb:on
Scan Identification = full_scan
Test_point Identification = control:100 observe:100
Transient Detection = on -verbose
Fault Sampling = 100.000000%
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 = scan_en active = high
Scan Clock Name = scan_clk
Scan Master Clock Name = scan_mclk
Scan Slave Clock Name = scan_sclk
Related Commands
Any of the “Set” commands.
Report Faults
Scope: Dft mode
Usage
REPort FAults [-Class class_type] [-Stuck_at {01 | 0 | 1}] [-All | object_pathname…]
[-Hierarchy integer [-Min_count integer]] [-Noeq] [-VErilog] [-CEll_name]
Description
Displays fault information from the current fault list.
The Report Faults command displays faults from the fault list added using the Add Faults
command. You can use the optional arguments to narrow the focus of the report to only specific
stuck-at faults that occur on a specific object in a specific class. If you do not specify any
arguments, Report Faults displays information on all the known faults.
The Report Faults command displays the following columns of information for each fault:
• fault value - The fault value may be either 0 (for stuck-at-0) or 1 (for stuck-at-1).
• fault code - A code name that indicates the lowest level fault class assigned to the fault.
• fault site - The pin pathname of the fault site.
• cell name (optional) - The name of the cell corresponding to the fault (displayed only if
you include the -Cell_name argument).
You can use the -Hierarchy option to display a hierarchal summary of the selected faults. The
summary identifies the number of faults in each level of hierarchy whose level does not exceed
the specified level number. You can further specify the hierarchical summary by using the
-Min_count option which specifies the minimum number of faults that must be in a hierarchal
level before displaying.
Arguments
• -Class class_type
An optional switch and literal pair that specifies the class of faults that you want to display.
The class_type argument can be either a fault class code or a fault class name. If you do not
specify a class_type, the command displays all fault classes. Table 2-4 lists the valid fault
class codes and their associated fault class names; use either the code or the name when
specifying the class_type argument:
• -Hierarchy integer
An optional switch and integer pair that specifies the maximum fault class hierarchy level
for which you want to display a hierarchal summary of the faults.
• -Min_count integer
An optional switch and integer pair that you can use with the -Hierarchy option and that
specifies the minimum number of faults that must be in a hierarchal level to display the
hierarchal summary. The default is 1.
• -Noeq
An optional switch that displays the fault class of equivalent faults. When you do not
specify this switch, the tool displays an “EQ” as the fault class for any equivalent faults.
• -Verilog
An optional switch that outputs the fault paths in Verilog syntax, rather than using the
existing netlist independent format.
• -CEll_name
An optional switch that specifies to list, for each reported fault, the name of the
corresponding circuit element (ATPG library cell, Verilog primitive, primary input or
primary output) as summarized in Table 2-5. Cell names displayed for equivalent faults are
based on the cells associated with the equivalent faults, not the cells associated with the
representative faults. This switch is valid for the stuck-at, transition, toggle and IDDQ fault
models only.
Table 2-5. Name Conventions Used by Report Faults -Cell_name
Corresponding Circuit Element Listed Cell Name
ATPG library cell Name of the ATPG library cell
Supported Verilog primitive—see Name of the Verilog primitive
“Verilog Primitives” in the Tessent Cell
Library Manual
Primary input or output “primary_input” or “primary_output”
Examples
The following example displays all faults that have been added to the circuit before performing
a fault simulation and signature calculation run:
set system mode bist
add faults -all
report faults -all
run
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.
• > 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 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 Set Loop Duplication
Report Gates
Scope: All modes
Prerequisites
Although you can use this command in Setup or Dft mode, you can use it in the Setup mode
only after the netlist has been flattened. This happens when you first attempt to exit Setup mode.
Next time you return to Setup mode, you can use the command.
Usage
REPort GAtes {gate_id# | pin_pathname | instance_name}… | {-Type gate_type}…
Description
Displays the netlist information and simulation results for the specified gates.
The Report Gates command displays the netlist information for either the design-level or the
primitive-level gates you specify. You designate the gate by its gate identification number
(ID#), a pathname of a pin connected to a gate, an instance name (design level only), or a gate
type. You can specify a design cell by the pathname of a pin on the design cell. If you use a gate
ID# or gate type, the command always reports the primitive-level gate. You must flatten the
netlist before issuing this command.
The pin_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 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. 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 (269) LA
// "S" I 14-
// "R" I 145-
// SCLK I 4-/clk
// D I 265-/u1/_g32/X
// ACLK I 2-/scan_mclk
// SDI I 20-/u1/inst__565_ff_d_0__dff/Q2
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.
// ACLK I 2-/scan_mclk
// SDI I 20-/u1/inst__565_ff_d_0__dff/Q2
// "OUT" O 26- 27-
SETUP> f
// /u1/inst__565_ff_d_1__13 (26) BUF
// "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 LBISTArchitect automatically assigns to every gate within the
design during the model flattening process.
• pin_pathname
A repeatable string that specifies the names of pins within the design for which you want to
display gate information.
• instance_name
A repeatable string that specifies the top-level boundary instance names within the design
for which you want to display gate information. This is used for the design-level only.
• -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-6.
Examples
The following example displays the simulated values of the gate and its inputs.
set system mode dft
set gate report error_pattern
set gate level primitive
report gates i_1006/o
/P2.13P (20) NAND
A I 10-/LD.1
B I 7-/M1.1
Z O 30-/P2.2P/S
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
Related Commands
Set Gate Level Set Gate Report
Report Instance
Scope: All modes
Usage
Report Instance instance_expression [{> | >>} file_pathname]
Description
Displays list of instances matched by instance expression.
The Report Instance command displays the list of instance pathnames. This command is used in
experimenting with instance expressions prior to their actual use in other commands.
The LBISTArchitect commands that support instance-expressions are:
Add Nonscan Instances
Add Notest Points
Add Scan Instances
Add Nofaults
Delete Nofaults
Delete Notest Points
Delete Nonscan Instances
Delete Scan Instances
Arguments
• instance_expression
A required string representing a list of instance pathnames. 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 contains no asterisk (*) will match exactly zero or one instance. See the
following examples for ways to use the asterisk (*) wildcard.
• > 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 writes all instances (possibly a large number) into a file.
report instance * > all.list
... writing to file all.list
As stated previously, any expression that contains no asterisk (*) will match exactly zero or one
instance.
This example combines an asterisk (*) at the 2nd level of hierarchy with a prefix match:
report instance /u9/*/LCT_reg*
=== search results size: 32 ===
/u9/u4/LCT_reg_0_
/u9/u4/LCT_reg_1_
/u9/u4/LCT_reg_2_
/u9/u4/LCT_reg_3_
/u9/u4/LCT_reg_4_
/u9/u4/LCT_reg_5_
/u9/u4/LCT_reg_6_
/u9/u4/LCT_reg_7_
/u9/u3/LCT_reg_0_
/u9/u3/LCT_reg_1_
/u9/u3/LCT_reg_2_
/u9/u3/LCT_reg_3_
/u9/u3/LCT_reg_4_
/u9/u3/LCT_reg_5_
/u9/u3/LCT_reg_6_
/u9/u3/LCT_reg_7_
/u9/u2/LCT_reg_0_
/u9/u2/LCT_reg_1_
/u9/u2/LCT_reg_2_
/u9/u2/LCT_reg_3_
/u9/u2/LCT_reg_4_
/u9/u2/LCT_reg_5_
/u9/u2/LCT_reg_6_
/u9/u2/LCT_reg_7_
/u9/u1/LCT_reg_0_
/u9/u1/LCT_reg_1_
/u9/u1/LCT_reg_2_
/u9/u1/LCT_reg_3_
/u9/u1/LCT_reg_4_
/u9/u1/LCT_reg_5_
/u9/u1/LCT_reg_6_
/u9/u1/LCT_reg_7_
Related Commands
Add Nonscan Instances Delete Nofaults
Add Nofaults Delete Nonscan Instances
Add Notest Points Delete Notest Points
Add Scan Instances Delete Scan Instances
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
• > 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 for appending to the contents of
file_pathname.
Examples
The following example lists all the loops in the circuit:
set system mode dft
report loops
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, the tool 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 nonscan model that you want to report
on. This argument is required only if you specify -Instance or -Module switch and want to
constrain the report to objects matching the nonscan model; otherwise, you can specify the
nonscan 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 LBISTArchitect write 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 the fd1 nonscan
model in the design:
report mapping definition fd1
The following example reports the mapping for each occurrence of the fd1 nonscan 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:
report mapping definition fd1s -output
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:
Related Commands
Add Mapping Definition Delete Mapping Definition
Report Nofaults
Scope: All modes
Usage
REPort NOfaults {pathname… | -All} [-Instance] [-Stuck_at {01 | 0 | 1}]
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 which 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.
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
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.
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
Note
The label “system” means that these are primary inputs that LBISTArchitect
automatically recognizes because they were in the netlist. Because there is no Add
Primary Input command in LBISTArchitect, all primary inputs are of the system-defined
class.
Related Commands
Write Primary Inputs
Note
The label “system” means that these are primary outputs that LBISTArchitect
automatically recognizes because they were in the netlist. Because there is no Add
Primary Output command in LBISTArchitect, all primary outputs are of the system-
defined class.
Related Commands
Write Primary Outputs
Related Commands
Add Read Controls Delete Read Controls
• -Display DEBug
A switch and literal that displays the reported information graphically in the debug
DFTVisualizer window.
• > 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 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
------------------------------------------------------------
CellNo ChainName GroupName Pathname CellName ScanOut Clock
ClockPolarity Lockup
------------------------------------------------------------
0 chain1 group1 /MQ_I400 sffr Q clk2 (-)
1 chain1 group1 /FH_I400 sffr QB clk2 (-)
2 chain1 group1 /FQ_I10 sffr QB clk2 (-)
3 chain1 group1 /RP_I10 sffr Q clk1 (+)
lockup1 FD4SQA
4 chain1 group1 /IS_I10 sffr Q clk1 (+)
5 chain1 group1 /CZ_I400 sffr QB clk1 (+)
Column 1 displays the chain cell index number; 0 is the scan cell closest to the scan-out pin.
Column 2 column displays the chain name where the scan cell resides.
Column 3 column displays the group name where the scan cell resides.
Column 4 column displays the gate name of the scan cell.
Column 5 column displays the library model name for the scan cell.
Column 6 column displays the scan out port of the scan cell.
Column 7 column displays the clock for the scan cell.
Column 8 column displays the polarity of the clock of the scan cell.
Column 9 displays “lockup”, if a lockup latch is inserted in the scan_out of this scan cell.
Related Commands
Add Scan Chains Report Sequential Instances
Add Scan Groups
Related Commands
Set Scan Enable Set Scan_enable Sharing
Related Commands
Add Scan Models Delete Scan Models
Related Commands
Add Scan Pins Delete Scan Pins
• -IDentified
An optional switch that specifies LBISTArchitect to print the sequential instances that are
identified to be scannable by LBISTArchitect. This is only valid after executing a Run
command.
• -UNidentified
An optional switch that specifies LBISTArchitect to print the sequential instances that are
not identified to be scannable by LBISTArchitect.
• -STitched
An optional switch that specifies LBISTArchitect to print the sequential instances that are
already placed in scan chains. Such instances cannot hold the scannable or non-scannable
conditions.
• -Polarity + | -
An optional switch and a sign character that specify LBISTArchitect to print the sequential
instances that are clocked by stable_low (+) or stable_high (-) clocks.
• -INstance object_name…
An optional switch and a list of strings that specify LBISTArchitect to report the sequential
instances that reside under certain instances. The instances are specified by their pathname
in the list of strings.
• -Module object_name…
An optional switch and a list of strings that specify LBISTArchitect to report the sequential
instances that reside under certain modules. The modules are specified by their name in the
list of strings.
• -NOHeader
An optional switch that specifies LBISTArchitect to not print the header information in the
output.
• -NOFooter
An optional switch that specifies LBISTArchitect to not print the footer information in the
output. The footer information includes the total number of reported instances.
• -NOVerbose
An optional switch that specifies LBISTArchitect to not print the body of the report output,
which is all the information except the header and the footer.
• -Format format_code…
An optional switch and a list of strings that specify LBISTArchitect to print output columns
as specified in the list of format_codes. When this switch is used, only the columns specified
by their format_codes are printed. Also, they are printed in the order the format_codes are
specified in the list.
The output of the command has possible seven columns of information. A format_code is
associated with each column as follows.
• chain name or “DFT”, after test logic insertion. If the sequential instance is part
of a scan chain, its chain name is printed. If the sequential instance is either a test
logic control/observe point or a lockup latch that is inserted by LBISTArchitect,
the string “DFT” is printed.
o ST: Holds either one of the following:
• “None” before scan identification process
• “Unidentified”, before scan identification process
• “Identified”, after scan identification process
• “Defined-scan”
• “Defined-nonscan”
• scan cell number, after test logic insertion
• -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 LBISTArchitect 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, 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 types of sequential instances in the design.
report sequential Instances
-------------------------------------------------------------
Related Commands
Echo Report Scan Cells
Report Circuit Components Run
Report Dft Check Set Scan Enable
Report Statistics
Scope: All modes
Usage
REPort STAtistics [-Instance instance_pathname] [{> | >>} file_pathname]
Description
Displays a detailed report of the design’s statistics.
By default, the output of the command is written to the transcript window of the tool. 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 preexisting scan chains
The report includes the following fault simulation information when in Bist mode:
• The current number of collapsed and total faults in each class. The report does not
display fault classes with no members.
• The percentage of test coverage, fault coverage, and ATPG effectiveness for both
collapsed and total faults
• 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
• -Instance instance_pathname
An optional switch and string pair that allows fault statistics to be reported for a specific
instance. The instance_pathname is the name of a circuit block whose statistics you want to
report. Only fault statistics are affected by this option; pattern count statistics apply to the
entire 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.
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
Add Subchain Clocks Delete Subchain Clocks
• >> 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 uses both test logic and test points. The report displays the locations
where LBISTArchitect 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
synthesize
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
• -Lockup
An optional switch that specifies to display all test points (both user- and system-defined)
with added lockup latches.
• > 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 control_input -new_scan_cell sdff1a
report test points
Control: /I_6_16/reset Control and2a control_input -New_scan_cell sdff1a
// (internal scan)
Observe: /I_7_16/q Observe observe_output
Related Commands
Add Test Points Report Test Logic
Delete Test Points Setup Scan Identification
Echo Setup Test_point Identification
Examples
The following example displays the controllability values of five percent of all the pins in the
design.
set system mode dft
setup scan identification none
analyze testability -scoap_only
setup test_point identification -control 1
run
// Performing test_point identification ...
// Number of control points to be identified = 1
// Number of observe points to be identified = 0
// 1: CV1=16458417 gate_index=3805 INV /CNTR/U783/ZN
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 Setup Tied Signals
Delete Tied Signals
Report Timeplate
Scope: All modes except Setup mode
Usage
REPort TImeplate timeplate_name | -All
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 which specifies for the tool to display all timeplates. This is the default.
Related Commands
Add Scan Groups Write Procfile
Read Procfile
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. Definition — Use the following syntax to create and set a variable’s value. Variables
can be defined from the tool’s command line, throughout a dofile, or from a startup file.
$variable = value
Note
If a variable is not meant to be concatenated with any other strings, it can simply be
referred to as $variable-name as in:
insert test logic -max_length $MAX_SCAN_LEN -scan on
Note
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.
1. Reporting — Use the Report Variables command to display user-defined variables and
values.
REPort VAriables
Examples
This first 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
synthesize
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
identified during a run.
The Reset State command removes scan instances or test points identified with the Run
command. However, if you have stitched the scan chain or inserted test points, this command
has no effect.
Examples
The following example performs a full scan identification process, then removes the identified
scan instances and performs test point identification run:
set system mode dft
setup scan identification full_scan
run
report sequential instances
.
.
.
reset state
setup scan identification none
report sequential instances
run
.
.
.
Restore Test_points
Scope: Dft mode
Usage
REStore TEst_points tpfile
Description
Reads in the specified MTPI test points information text file.
The Restore Test_points command is for use in a flow in which you have inserted test points
and are trying to achieve timing closure. Because following this flow could result in a reduction
in fault coverage, it is assumed that timing closure is the primary objective.
The flow consists of these steps:
1. Run MTPI and save the test point-inserted netlist. Archive the test point information to
tpfile with Archive Test_points.
2. Run static timing analysis on the saved netlist to identify new paths that violate timing.
Correlate those paths to the MTPI-inserted test points.
3. Re-invoke BIST-Ready on the original core netlist and read in tpfile with the Restore
Test_points command. Remove the test points associated with the timing violations
using the Delete MTPI Control_point or Delete MTPI Observe_point commands. Insert
test logic and save the netlist
Argument
• tpfile
A required string that specifies an MTPI test points file that you saved using the Archive
Test_points command. This is a plain text file, not a list of BIST-Ready commands.
Examples
The following example restores an archived test point file, removes a test point that causes a
timing violation, inserts the new test points, and writes out the new core netlist and the BIST
netlist for use by the BIST Controller Synthesis phase.
restore test_points mtpi1.arc
delete mtpi control_point u7/L_FA_reg_4_/Q or 3
insert test logic -test_point on -scan off
write netlist netlists/m8051_core_bist.v -verilog -rep
write bist setup netlists/m8051_top_bist.v -verilog rtl.setup -rep
Related Commands
Archive Test_points Delete MTPI Observe_point
Delete MTPI Control_point Write Static_timing Setup
Load Static_timing Report
Command Summary
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 removal of 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 nonscan 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
nonscan model.
Off — LBISTArchitect disconnects the scan_out pin and scan_in pin and leaves them
dangling. This is the default.
Tied — LBISTArchitect disconnects the scan_out pin and scan_in pin and ties them to
ground.
Loop — LBISTArchitect disconnects the scan_out pin and scan_in pin and connects
them to each other as a self-loop for each scan cell.
Buffer —LBISTArchitect 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 DFT library for
LBISTArchitect 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, LBISTArchitect uses the first buffer model in the buffer cell model list (view with
the Report Cell Models command).
Examples
The following example performs the scan insertion process with unlimited scan chain lengths,
then removes those scan chains and re-runs the scan insertion process with a maximum scan
chain length of 100:
add clocks 0 clock
set system mode dft
setup scan identification full_scan
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 full_scan
run
insert test logic -max_length 100
report scan chains
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, LBISTArchitect displays progress messages. The number
indicates the number of instances currently identified for scan (added to the scan candidate list).
Number of targeted sequential instances = 498
// Performing scan identification ...
// Total sequential instances identified = 498
Examples
The following example runs a scan identification process:
set system mode dft
setup scan identification full_scan
run
report scan identification
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 full_scan
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 full_scan
run
insert test logic -max_length 100
report scan chains
history -nonumbers
Related Commands
Dofile
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 “Test
Logic Insertion” in the Scan and ATPG User’s Manual. 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.
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
Usage
SET BIst Enables {-Lbist_enable xbnd_enable | -TEST_Obs obs_enable | -TEST_En
cntlpt_enable}…
Description
Specifies the names of the enable signals controlling control points, x-bounding multiplexers,
and observe sink points.
Arguments
For the following three arguments, you can pick one or more, but you must pick at least one.
You should not pick any one argument more than once.
• -Lbist_enable xbnd_enable
A switch and string pair that specifies the name of the signal that enables x-bounding
muxes.
• -TEST_Obs obs_enable
A switch and string pair that specifies the name of the signal that enables observe sink points
in existing scan cells.
• -TEST_En cntlpt_enable
A switch and string pair that specifies the name of the signal that enables control points.
Related Commands
Command Summary
#read design
read_file -f verilog m8051_mtpi.v
current_design m8051
#clock definitions
create_clock NX1 -period 80 -waveform { 0 40 }
create_clock NX2 -period 40 -waveform { 0 20 }
#mtpi signals
set_case_analysis 0 { phase_cntl1 phase_cntl2 phase_cntl3 }
Arguments
• clkname
A required string that specifies the name of the clock for which you are setting the period or
frequency.
• -Period period_in_ns
A switch and integer pair that specifies the period for the clock, clkname. The time unit is
nanoseconds (ns).
• -Frequency freq_in_MHZ
A switch and integer pair that specifies the frequency for the clock, clkname. The time unit
is megahertz (Mhz).
• -None
A switch that removes all clock timing information that you have previously defined for the
clock, clkname.
• -Waveform rise_edge fall_edge
An optional switch and double floating-point number triplet that specifies the rise and fall
edge times for the specified clock within the specified time period. If you do not use this
switch triplet, PrimeTime uses a default rising edge of 0 ns and a default falling edge of /2
ns.
Examples
The following example defines the clock, NX1, and the asynchronous reset, clr_input, then adds
timing details:
add clocks 0 NX1
add clocks 1 clr_input
set clock period NX1 -period 6 -waveform 0 3
set clock period clr_input -period 120 -waveform 30 35
Related Commands
Add Clocks Write Static_timing Setup
Analyze Control Signals Load Static_timing Report
Command Summary
Related Commands
Dofile
Each rules violation has an associated occurrence message and summary message. The tool
displays only the occurrence message, either for 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 the identification of the exact design rule violation whose
message handling you want to change.
The design rule violations and their identification literals are divided into the following
seven groups: RAM, BIST, Clock, Data, Extra, Procedure, and Trace rules violation IDs.
• Error
An optional literal that specifies for the tool to both display the error occurrence message
and immediately terminate the rules checking.
• Warning
An optional literal that specifies for the tool to display the warning summary message
indicating 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 specifies for the tool to display the summary message indicating the
number of times the rule was violated. If you specify the Verbose option, the tool also
displays the occurrence message for each occurrence of the rules violation.
• Ignore
An optional literal that specifies that the tool not display any rule violation message. 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 display the occurrence message only once for
the rules violation. 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.
• NOAtpg_analysis
An optional literal that specifies for the tool to not use full test generation analysis when
performing rules checking. This is the default.
• Atpg_analysis
An optional literal that specifies for the tool to use 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
If you want the tool to use the constraint values during the D6 rule analysis, you need to
use the Atpg_analysis option.
The Sequential option considers the inputs to a single level of sequential cells behaving as
“staging” latches in the enable lines of tri-state drivers. All of the latches found in a back
trace must share the same clock. There must also be only a single clocked data port on each
cell, and both set and reset inputs must be tied (not pin constrained) to the inactive state.
This check ensures that there is no connectivity from the cells in the input cone of the
sequential cells and enables of the tri-state devices except through the sequential cells.
Examples
The following example specifies rule checking E4 to be an error:
add scan groups group1 scanfile
add scan chains chain1 group1 indata2 outdata4
add clocks 1 clock1
add clocks 0 clock2
set drc handling e4 error
set system mode dft
Related Commands
Report Drc Rules
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
Related Commands
Report Gates Set Gate Report
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 nonscan cells that LBISTArchitect determines do
require extra logic for controllability of that nonscan cell’s clocks. If you specify this
option, then LBISTArchitect adds extra logic to every nonscan 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,
LBISTArchitect 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 LBISTArchitect 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 DFT library or by using the Add Cell
Models command.
Usage
SET IO Insertion OFf | ON | {[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 LBISTArchitect 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 DFT library or used the Add Cell Models command to define
them, when you set this command to “on”, LBISTArchitect 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 LBISTArchitect.
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
• OFf | ON
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 DFT library for
LBISTArchitect 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, LBISTArchitect 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
Table 2-8. Latch Use for Different Polarity Clock Domains (cont.)
Clock Domain Polarity Specified Add Cell Model Arguments Latch Chosen
(two domains) (the logic inserted
between the domains)
stable_high (active low) add cell model lat1 -type dlat g1 d1 -
active high lat1
add cell model lat2 -type dlat g2 d2 -
active low
To add a stable_low clock, clk1, you would use the command:
add clock 0 clk1
Note
If you define any lockup latches in the cell order file, this command is not used. If no
lockup latches are defined in that file, LBISTArchitect uses the settings in this command.
For more information on the cell order file, refer to the Insert Test Logic command.
Arguments
• ON | OFf
A literal that specifies whether LBISTArchitect should insert latches between different
clock groups within a scan chain. The default behavior upon invocation is OFf.
• -Nolast | -Last
An optional switch that specifies whether LBISTArchitect should insert a latch between the
last scan cell and the scan out pin of a scan chain. The default behavior upon invocation of
LBISTArchitect is -Nolast.
Note
Last is not a recommended option, because it complicates proper lockup latch insertion
when concatenating scan chains for topup ATPG.
• -First_clock | -SEcond_clock
An optional switch that specifies for LBISTArchitect to connect either the clock of the first
set of scan cells or the clock of the second set of scan cells to the clock input of the lockup
latch. The default behavior upon invocation of LBISTArchitect is -First_clock.
• -NOInternal | -Internal
An optional switch that specifies for LBISTArchitect to insert lockup latches between
different, internally-generated clocks. This is often used with sub-chains that have internal
clocks that are not driven. A clock must not have a path to a primary input clock for it to be
considered an internal clock. This includes clocks that are accessible at the primary input
clock through test logic (muxes) or sensitized gates. The default behavior upon invocation
of LBISTArchitect is -Nointernal.
Examples
The following example defines two different groups of clocks, identifies the latch that
LBISTArchitect is to insert if the clocks need synchronization, enables lockup latch insertion,
and performs the insertions. The -Clock Merge option informs LBISTArchitect to combine the
scan cells that are associated with the clocks (that are in the same clock group) together into a
single scan chain.
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 dlat1a -type dlat enable data
set lockup latch on
insert test logic -scan on -clock merge
LBISTArchitect inserts lockup latches between clk1 and clk2, clk2 and clk3, clk4 and clk5, and
clk5 and clk6. Insert Test Logic is the command that actually causes LBISTArchitect to
substitute the identified non-scan cells with the scan replacements and also place the lockup
latches into the design.
Note
The previous example causes LBISTArchitect to create two scan chains because there are
two clock groups.
Related Commands
Add Cell Models Delete Test Points
Add Clock Groups Insert Test Logic
Add Test Points Report Test Points
Examples
The following example specifies for LBISTArchitect to write a logfile and to disable the writing
of the transcript:
set logfile handling /user/designs/setup_logfile
set screen display off
add clocks 0 clk
add clocks 1 pre clr
report clocks
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 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.
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 Partition Scan 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
Report Scan Enable Setup Partition Scan
Set Scan_enable Sharing Setup Scan Insertion
• -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 Partition Scan
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
Partition Scan 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
Report Scan Enable Setup Partition Scan
Set Scan Enable Setup Scan Insertion
Related Commands
Report Environment Set Logfile Handling
Arguments
• Setup
A literal that specifies for the tool to enter the Setup system mode.
• Dft
A literal that specifies for the tool to enter the Scan Insertion system mode.
Examples
The following example will change the system mode so you can perform a scan identification
run.
add tied signals 1 vcc
add tied signals 0 vss
add clocks 0 clock
set system mode dft
run
report scan identification
• -Clock ON | OFf
A switch and literal pair that specifies whether LBISTArchitect makes the clock lines
controllable during the DFT rules checking. The default upon invocation of LBISTArchitect
is Off.
• -RAm ON | OFf
A switch and literal pair that specifies whether LBISTArchitect makes the write control
lines controllable during the DFT rules checking. This option does not handle the set and
reset lines of the RAM. The default upon invocation of LBISTArchitect is Off.
Examples
The following example checks the set and clock lines 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
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.
• -Control SEn | TEn
An optional switch and literal pair that specifies the enable signal used to control tri-state
devices. Literal options include:
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.
----------------------------------------------------------------------
Related Commands
Report Dft Check Set Bidi Gating
Report Test Logic Set Test Logic
Report Control Signals
Setup Naming
Scope: All modes
Usage
SETup NAming [{-Net prefix_name} | {-Instance {[Tristate | Xbound | Lockup |
CONTROL_Flop | CONTROL_Point | OBSERVE_Flop | OBSERVE_Point]
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 LBISTArchitect 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 latches 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
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
• -Instance [Tristate | Xbound | Lockup | CONTROL_Flop | CONTROL_Point |
OBSERVE_Flop | OBSERVE_Point] prefix_name
An optional switch, with an optional, repeatable literal and string pair, that specifies the
prefix_name you want as the default prefix for the object type specified by the literal. If you
do not specify an object type literal, prefix_name applies to all added test logic not covered
by one of the object type literals. The default prefix for this other logic is uu.
Tristate — An optional literal that specifies to apply the prefix_name as the default for
the logic object type tri-state control. The default prefix is tcntl
Xbound — An optional literal that specifies to apply the prefix_name as the default for
the logic object type X bound control. The default prefix is xbnd
Lockup — An optional literal that specifies to apply the prefix_name as the default for
the logic object type lockup latch. The default prefix is lckup
CONTROL_Flop — An optional literal that specifies to apply the prefix_name as the
default for the logic object type control-point flip-flop. The default prefix is ctlff
CONTROL_Point — An optional literal that specifies to apply the prefix_name as the
default for the logic object type control-point logic. The default prefix is ctlpt
OBSERVE_Flop — An optional literal that specifies to apply the prefix_name as the
default for the logic object type observe-point flip-flop. The default prefix is obsff
OBSERVE_Point — An optional literal that specifies to apply the prefix_name as the
default for the logic object type observe-point logic. The default prefix is obspt
Examples
The following example resets the default prefix name for tri-state control logic to “tric” and for
lockup latches to “lockl”:
setup naming -instance tristate tric lockup lockl
LBISTArchitect will change the prefix names and issue the following report:
// Setup naming prefixes:
// nets : net
// tristates : tric
// xbounding : xbnd
// lockup latches : lockl
// observe flops : obsff
// observe points : obspt
// control flops : ctlff
// control points : ctlpt
// other instances: uu
Related Commands
Insert Test Logic Set Test Logic
Command Summary
Tip: In a test environment where the primary outputs cannot be observed during test, you
can make the primary outputs observable by inserting observe points using the Setup
Test_point Identification command with the -Primary_outputs switch.
You can exclude bidirectional pins, scan output pins, and any specified pins.
You use the Off literal to remove all default masks defined with this command.
You can add a hold value to a default mask with the Add Output Masks command, or remove a
hold value using the Delete Output Masks command. You can also use the Add Output Masks
command to add a mask to any of the output pins excluded with the Setup Output Masks
command.
Note
In the BIST-Ready run that contains the Setup Test_point Insertion command, the session
defaults for this command are:
setup output masks on -lbist_exclude
Arguments
• OFf | ON
A required literal that specifies to set or remove the current default mask setting for all
primary output pins. When turning masking on, you can exclude pins from the mask. In the
BIST-Ready run that contains the Setup Test_point Insertion command, the session default
for this command is ON. The tool invocation default setting is no masks.
• -Bidi_exclude
An optional switch that specifies to exclude bidirectional pins from the mask setting.
• -Lbist_exclude
An optional switch that specifies to exclude scan output pins from the mask setting.
• -Exclude primary_output_pin
An optional switch and repeatable string that specifies to exclude the specified primary
output pins from the mask setting.
Examples
The following example defines the default mask for all but the 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 Setup Test_point Identification
Related Commands
Setup Scan Identification Write Netlist
Synthesize
• -Bidi_exclude
An optional switch that specifies to exclude bidirectional pins from the setup setting.
• -Lbist_exclude
An optional switch that specifies to exclude BIST Controller-related input pins from the
setup setting. These pins include clocks, RAM/ROM read signals, RAM/ROM write
signals, sets, resets, and known scan inputs.
• -Exclude primary_input_pin
An optional switch and repeatable string that specifies to exclude the specified primary
input pins from the setup setting.
• -SYnthesize
An optional switch that specifies for the tool to add hardware that constrains all non-clock
and non-scan pins to a constant value, which also means that these signals are not
considered for X-bounding. The CZ and CX constant values cannot be used with the -
Synthesize switch.
• -SImulate {ATPG | BIST | ALL}
Specifies for LBISTArchitect to constrain the pins in the test procedure, test bench, and test
vector files. These signals must be driven with the appropriate values any time a logic BIST
test is active. This may cause problem for board/system test applications.
The ATPG literal specifies for the tool to constrain the pins during ATPG topup pattern
generation, the BIST literal specifies for the tool to constrain the pins in the BIST
simulation, and the ALL literal specifies for the tool to constrain the pins during both ATPG
and BIST.
Examples
The following example defines the default pin constraints for all but the BIST Controller-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
Analyze Input Control Report Pin Constraints
Setup Registered IO
Scope: All modes
Prerequisites
You must first identify model_name with the Add Cell Models command before using either the
-Input_model or -Output_model switch.
Usage
SETup REgistered IO [-All] [-Input_model model_name] [-Output_model model_name]
[-Exclude pin_names…]
Description
Registers the primary inputs and outputs of a core design.
The Setup Registered IO command replaces manual techniques for registering the I/O of a
design. Although partial support for this function existed (for primary outputs) with the Setup
Test_point Identification command, the Setup Registered IO command adds new scan cells (as
control points for primary inputs, and observe points for primary outputs) that serve to register
the I/Os, and puts them in their own partition scan chain. Moreover, with the addition of the
wrapcell type to the Add Cell Models command, you can now specify a generic wrapper scan
cell that provides the flexibility to create a variety of partition scan architectures.
Note
This feature does not address stitching of multiple cores, but rather the insertion of a scan
partition in a single core.
Arguments
• -All
An optional switch that specifies to register all inputs and outputs, regardless of whether a
registering flip-flop already exists. The default is to register only those primary inputs and
outputs that do not have a flip-flop in their path. In either case, this does not include clock or
scan-related I/O pins.
• -Input_model model_name
An optional switch and string pair that specifies to use 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 specifies to use model_name cells for registering
primary outputs You must first define model_name with the Add Cell Models command.
• -Exclude pin_names
An optional switch and repeatable string that specifies which primary I/O pins you do not
want registered. Note that clock and scan-related pins are automatically excluded.
Examples
The Setup Registered IO command is intended for setting up a run to register the inputs and
outputs of a core. The following is a simple example:
add cell model FD1SQA -type scancell CLK D
add cell model MUX21HA -type mux S A B
setup registered IO
set system mode dft
run
synthesize
These commands identify primary inputs and outputs that are not connected to existing scan
cells and create control (for input pins) and observe (for output pins) testpoints for those pins
using a single scan cell per testpoint. These scan cells serve to register the IO of the design and
LBISTArchitect places them in a single scan chain. The inserted logic would look something
like the following:
PI
functional path
supply 1 or 0 Q
D
scan_input scan_enable
If your design requires more sophisticated logic, you can define a wrapper cell with the Add
Cell Models command’s wrapcell type:
add cell model SC1_A -type wrapcell CLK D
setup registered IO
In this case, because it is the only cell you added, LBISTArchitect uses the SC1_A wrapper cell
to register the IO. The architecture is now flexible, because you can define the scan cell
architecture in the library. The following is an example of a wrapcell type:
SE SC1_A TE
PI(1) DIN 0
DOUT functional path
SCAN_IN 1 Q 1
SI
D
0
V SO
CLK_IN CLK
SE SC1_A TE
The additional test enable signal (TE) is routed to the top of the design. An example library cell
must define both the scan_enable and test_enable attributes in the scan definition:
model SC1_A(DOUT, SO, DIN, CLK, SI, SE, TE) (
scan_definition(
type = mux_scan;
scan_out = SO;
scan_in = SI;
scan_enable = SE;
test_enable = TE;
non_scan_model = DFF(DOUT, DIN, CLK);
)
input(DIN, CLK, SI, SE, TE) ()
intern(tied1) (primitive = _tie1 UT1 (tied1);)
intern(QQ) (primitive = _buf UP1 (SO, QQ);)
output(SO) (instance = FF_Q UD1 (SO, Y, CLK);)
// out 0 1 sel
intern(Y) (instance = MUX21 UD2 (Y, DOUT, SI, SE);)
output(DOUT) (instance = MUX21 UD3 (DOUT, DIN, QQ, TE);)
)
When the test-enable signal (TE) is asserted, the core is in core test mode. To implement your
core test strategy, you must create any required core test controller logic at a higher level.
Related Commands
Add Cell Models
Examples
The following example sets up for a test point only run:
setup scan identification none
setup test_point identification -control 10 -observe 5
run
Related Commands
Add Test Points Setup Test_point Identification
Report Sequential Instances Synthesize
Run Write Scan Identification
Setup Partition Scan
LBISTArchitect uses the set and reset names when gating the set and reset pins of flip-flops or
latches. Furthermore, you can use the -Disable or -Muxed switches to specify whether
LBISTArchitect uses an AND gate or MUX gate when performing the gating. If you specify the
-Disabled option, then for gating purposes, LBISTArchitect uses the test enable signal to disable
the set and reset inputs of flip-flops. If you specify the -Muxed option, then for muxing
purposes, LBISTArchitect uses any set and reset pins which are defined as clocks to multiplex
with the original signal.
LBISTArchitect uses the write control and read control pins when inserting test logic for
RAMs. After you have added the write control lines in the Setup system mode and switched to
the DFT system mode, the Design Rules Checker checks whether the RAMs can be held off
when the write control pin is off. Those RAMs that cannot be held off are candidates for
inserting test logic.
If the new scan design is intended for Fault Simulation, and if the write clock input of the RAM
is not controllable, it will be muxed out by a new write clock and the selector to the mux will be
the test enable pin.
If the new scan design is intended for Sequential Fault Simulation, and if the original write
clock is not to be muxed and the RAM is just to hold during the shifting of the scan chain data,
then you need to specify the -Disabled option. Thus, LBISTArchitect will use the scan enable
pin to gate the original write clock input of the RAM.
In addition, you can use instance pin pathnames to define the scan enable, test enable, and so on,
pin names. If you specify an internal pin pathname and LBISTArchitect cannot trace through a
simple path (only through inverters or buffers) back to a primary input/output of the design, it
cannot generate the test procedure file and the dofile with the Write Atpg Setup command.
Therefore, you must manually develop these two files before running with either the Fault
Simulation or Sequential Fault Simulation phases.
If you specify the -Isolate option, when the scan enable capability is added to the design,
LBISTArchitect checks the global scan enable signal to determine if it already has fanouts. If
this is true, then an AND or OR gate is inserted with the second input controlled by the global
test enable signal. The output of this gate is connected to all the new fanouts of the scan enable
pin. The output of this gate is active for test mode and inactive for system mode. In test mode,
the output of this gate is identical to the scan enable signal; the gate acts as a buffer.
Arguments
• -SEN name
An optional switch and string pair specifying the leading scan enable pin name that you
want the scan insertion process to use when creating the scan enable. The default scan
enable pin name upon invocation of LBISTArchitect is “scan_en”.
You can use the -Active switch to specify whether the scan enable pin is active low or active
high.
You can use the -Isolate switch to isolate any newly added fanouts of this signal.
• -Isolate
An optional switch to the -Sen switch that specifies to isolate all new fanouts of the
scan_enable signal specified by the -Sen option. An additional AND or OR gate is inserted
during scan insertion with the output connected to all the new fanouts of the scan_enable
pin. The inputs of this new gate are the scan enable and the global test enable signals. The
default is to not isolate the new fanouts.
• -TEn name
An optional switch and string pair specifying the leading test enable pin name that you want
the scan insertion process to use when creating the test enable. The default test enable pin
name upon invocation of LBISTArchitect is “test_en”.
You can use the -Active switch to specify whether the test enable pin is active low or active
high.
• -Active High | Low
An optional switch and literal pair that specifies whether the scan enable or test enable pin is
active high or active low. You can only use this switch with the -Sen or -Ten switch. The
default upon invocation of LBISTArchitect is active high.
• -TClk name
An optional switch and string pair specifying the name of a new scan clock pin that you
want LBISTArchitect to create if a a scan clock is not already predefined.
If you have predefined a scan clock, LBISTArchitect will use it. Otherwise, LBISTArchitect
creates a new pin with the specified name during the scan insertion process. If neither of
these conditions exist, LBISTArchitect creates a new test clock pin using the invocation
default name of “test_clk”.
• -SClk name
An optional switch and string pair specifying the leading scan clock pin name that you want
the scan insertion process to use when creating the scan clock. LBISTArchitect only creates
the scan clock pin for the scan clock port in the dual-port type mux scan. The default scan
clock pin name upon invocation of LBISTArchitect is “scan_clk”.
• -SMclk name
An optional switch and string pair specifying the leading scan master clock pin name that
you want the scan insertion process to use when creating the scan master clock. The default
scan master clock pin name upon invocation of LBISTArchitect is “scan_mclk”.
• -SSclk name
An optional switch and string pair specifying the leading scan slave clock pin name that you
want the scan insertion process to use when creating the scan slave clock. The default scan
slave clock pin name upon invocation of LBISTArchitect is “scan_sclk”.
• -SET name
An optional switch and string pair specifying the set pin name that you want
LBISTArchitect to use for the flip-flop or latch when inserting test logic. The default set pin
name upon invocation of LBISTArchitect is “scan_set”.
• -RESet name
An optional switch and string pair specifying the reset pin name that you want
LBISTArchitect to use for the flip-flop or latch when inserting test logic. The default reset
pin name upon invocation of LBISTArchitect is “scan_reset”.
• -Write name
An optional switch and string pair specifying the write control pin name that you want
LBISTArchitect to use for the RAM when inserting test logic. The default write control pin
name upon invocation of LBISTArchitect is “write_clk”.
• -REAd name
An optional switch and string pair specifying the read control pin name that you want
LBISTArchitect to use for the RAM when inserting test logic. The default read control pin
name upon invocation of LBISTArchitect is “read_clk”.
• -Muxed
An optional switch that specifies for LBISTArchitect to multiplex the set, reset, write
control, or read control lines. This is the default. If you specify the -Muxed option, then for
muxing purposes, LBISTArchitect will multiplex any set and reset pins which are defined as
clocks with the original signal.
• -Disabled
An optional switch that specifies for LBISTArchitect to gate the set, reset, write clock, or
read clock lines. If you specify the -Disabled option, then for gating purposes,
LBISTArchitect will use the test enable signal to disable set and reset inputs of flip-flops
and the scan enable signal to disable the write and read clocks.
• -Gated
An optional switch that specifies for LBISTArchitect to gate the set, reset, write control, or
read control lines. If you specify the -Gated option, then for gating purposes,
LBISTArchitect will use any set and reset pins defined as clock or use the write and read
clocks to disable the set and reset inputs of flip-flops.
Examples
The following example renames the test enable pin name to test_en_L and specifies for the pin
to be active low during the scan insertion process:
add clocks 0 clock
set system mode dft
setup scan identification full_scan
run
setup scan insertion -ten test_en_L -active low
insert test logic -max_length 10
The following example shows how to set different controls using successive Set Scan Insertion
commands:
Related Commands
Insert Test Logic
base_name + [index#]
Arguments
• Input
A literal specifying that LBISTArchitect apply the index or bus format on the scan-in pins.
• Output
A literal specifying that LBISTArchitect apply the index or bus format on the scan-out pins.
• -INDexed
An optional switch specifying that LBISTArchitect apply the index format to the scan-in or
scan-out pin names. This is the default.
• -Bused
An optional switch specifying that LBISTArchitect 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#. LBISTArchitect 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
• -Minimum integer
An optional switch and integer pair that specifies how many control points LBISTArchitect
must insert, per phase (not to exceed the number of control points originally allocated to the
given phase), regardless of any other switch settings. The default is 1 per phase.
• -OBserve integer [-Primary_outputs [-EXClude pins…]]
An optional switch and integer pair that specifies how many test points you want
LBISTArchitect to identify to aid in increasing the observability of the design. The default
upon invocation of LBISTArchitect for identifying test points for observability is 100.
-Primary_outputs — An optional switch that specifies to add observe points to primary
outputs. The implementation of the observe points depends on the settings you
specify for the Setup Test_point Insertion command. This option is useful if the test
environment dissallows observation of the primary outputs; that is, if the outputs have
been masked by the Setup Output Masks command.
-EXClude pins — An optional switch and repeatable string that causes
LBISTArchitect to exclude the specified primary output pins from use as observe
points.
• -PATterns integer
An optional switch and integer pair that specifies how many patterns you want
LBISTArchitect to simulate to determine controllability and observability of the test points.
The recommended number of patterns is 2n - 1. LBISTArchitect uses this number to
synthesize a minimal phase decoder. If the number is not 2n - 1, it is automatically changed
to the closest 2n - 1 number (either higher or lower) and LBISTArchitect issues a warning.
The default number of patterns upon invocation of LBISTArchitect is 32767.
• -Test_coverage percent
An optional switch and floating point number that specifies the percentage of target fault
coverage. Once LBISTArchitect reaches your target coverage, it ceases to add test points.
The default value upon invocation of LBISTArchitect is 100.0.
• -PHases integer
An optional switch and integer that specifies the number of phases into which you want
LBISTArchitect to partition the entire test. The integer value must be in a power of 2. For
example, 2, 4, or 8. Two phases is recommended for the start of analysis. Four and eight
phase runs should be tried if the design is relatively large. In most cases, the later phases
have decreased benefits and, therefore, a higher number of phases should be tried only if
you require very high test coverage (greater than 99%). The default value upon invocation
of LBISTArchitect is 4.
• -BPc_threshold integer
An optional switch and integer that specifies the minimum benefit-per-cost (BPC)
threshold. That is, the minimum number of faults that a test point should detect.
LBISTArchitect uses this during the selection of control and observe points. For
LBISTArchitect to select a test point, the test point must detect at least this number of faults.
The default value upon invocation of LBISTArchitect is 5.
• -Sig_prob_threshold percent
An optional switch and floating point number that specifies the minimum percentage of
patterns necessary to cause a circuit node to become 0 or 1. LBISTArchitect checks this
during the preliminary analysis to determine control point candidates. Nodes for which a 0
or 1 pattern percentage falls below the threshold are called either zero-failing or one-failing,
respectively. LBISTArchitect selects these zero-failing and one-failing nodes as candidates
for control test point insertion. When the remaining-fault list is still relatively large,
increasing this percentage can have the effect of better control point selection. For a value of
15 percent, enter “0.15”. The default value upon invocation of LBISTArchitect is 0.10 (10
percent). The maximum value is 25 percent. Using the default (10 percent) for 1000 patterns
simulated, 100 of the 1000 patterns must be able to control a gate to 0 or 1, otherwise the
node is considered a candidate for control point insertion.
• -NUm_detections integer
An optional switch and integer pair that specifies your confidence level that the insertion of
a test point that uses BIST patterns will detect a fault. The integer range is 1 to 6. The default
value upon invocation of LBISTArchitect is 4.
• -OP_cost multiplier
An optional switch and floating-point-number multiplier that specifies the cost of
implementing an observe point, rather than a new control point. The observe point cost is
calculated as a multiple of a new control point (each control point is either a 2-input AND or
OR gate). The tool considers only gates with at least (BPCThreshold * OPCost) estimated
faults. LBISTArchitect uses this cost multiple to determine the overall value of inserting
observe points. You should specify this integer according to whether observe point
implementation is by a new scan cell (high cost) or primary output (low cost). The default
value upon invocation of LBISTArchitect is 4.0.
• -Rcp_cost multiplier
An optional switch and floating point number multiplier that specifies the cost of re-
enabling an existing control point inserted in a previous phase versus adding a new control
point. LBISTArchitect calculates this cost of re-enabling as a multiplier of a new control
point with a cost of 1. It then adds an additional 2-input AND or OR gate each time it
reactivates an AND or OR control point. The default value upon invocation of
LBISTArchitect is 1.0.
• -Verbose | -NOVerbose
An optional switch that specifies the amount of information that LBISTArchitect displays
during test point generation.
Examples
The following example shows the flow for multiphase test point selection.
setup test_point identification -control 10-observe 10 -patterns 8191
-verbose -phases 4 -bpc_threshold 5 -sig_prob_threshold 0.1
// The # of patterns for the 4 phases are: 255 256 256 256
// The # of requested control points for the phases are: 0 2
2 2
Related Commands
Add Cell Models Report Test Points
Add Test Points Setup Scan Identification
Insert Test Logic Setup Scan Insertion
Arguments
• -Control
An optional switch that specifies how to configure the inputs for control test points.
The default -None switch causes LBISTArchitect to control the test point it inserts with the
pin specified by the “prefix” name, pin_pathname, as shown in Figure 2-5. The default for
pin_pathname is phase_cntlN.
/I$21 /I$23
PI
pin_pathnameN
• -Observe
An optional switch that specifies how to configure the outputs for observe test points.
Figure 2-6 shows that if you use the -Existing_scan_cell switch (the default) in combination
with the -Observe switch, LBISTArchitect controls the test point by adding control logic to
an existing, nearby scan cell when it synthesizes the logic. The observe_enable specifies the
name of the observe enable signal that controls the input to the scan cell.
AND
XOR
Observe enable D Q
(if -Existing_scan_cell) si so
se
clk
Existing functional path
Existing scan cell
If you use the -None switch in combination with -Observe, LBISTArchitect controls the test
point it inserts with the pin specified by the “prefix” name, pin_pathname, as shown in
Figure 2-7.
PO
pin_pathnameN
(if -None, default)
/I$21 /I$23
(if -Model)
model_name
D Q
Connected by si so next scan
“Insert Test Logic” se cell
existing scan clk
chain clock New scan cell
If you use the -Model switch in combination with the -Observe switch, LBISTArchitect
controls the test point by adding an additional scan cell when the test logic is synthesized, as
shown in Figure 2-7. The tool fits each of the new scan cells 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 LBISTArchitect cannot find a nearby chain,
then 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 LBISTArchitect 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-8). This matching of the rising/falling edge attribute will prevent D7-
type DRC violations. The tool fits each of the new scan cells 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 same chain. If a nearby chain cannot be found, then it drops
the observe point.
Connected by
“Insert Test Logic”
/I$21 /I$23
(if -New_scan_cell)
D Q
Connected by si so next scan
“Insert Test Logic” se cell
existing scan clk
chain clock New edge-compatible
scan cell
• pin_pathname -None
An optional string and switch pair that specifies for LBISTArchitect to only insert the test
point without inserting an additional scan cell, as shown in Figure 2-5 and Figure 2-7. This
is the default for control points.
• observe_enable -Existing_scan_cell
An optional switch and string pair that specifies for LBISTArchitect to use nearby scan cells
for observation points, as shown in Figure 2-6. The observe_enable string specifies the
name of the observe enable signal that controls the input to the scan cell. This is the default
for observe points
The tool propagates the observe point to a nearby scan cell and multiplexes it with the cell’s
functional-path D input. 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.
• -New_scan_cell — An optional switch that specifies for LBISTArchitect 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. 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. See Figure 2-8.
• -Model modelname
An optional switch and string pair that specifies for LBISTArchitect to insert a cell along
with the test point, as shown in Figure 2-5 and Figure 2-7. 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.
Note
When in MTPI mode, scan cells cannot be used for control points, thus you cannot use
the -Model option.
Examples
The following example shows the flow of having LBISTArchitect 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
Add Notest Points
Related Commands
Add Tied Signals Report Tied Signals
Delete Tied Signals
cells is reached. Figure 2-9 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-10 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-11 highlights the logic the tool adds as the control and observe points. The tool 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_Threshold {integer | Nolimit}
An optional switch and integer or literal pair that specifies the maximum number of wrapper
cells to identify from primary inputs. The default is Nolimit.
• -OUTPUT_Threshold {integer | Nolimit}
An optional switch and integer or literal pair that specifies the maximum number of wrapper
cells to identify from primary outputs. The default is Nolimit.
• {-No_internal_feedback | -Allow_internal_feedback | -Test_points}
An optional switch that specifies the identification mode for input wrapper cells. Options
include:
-No_internal_feedback — Identifies the first level of registration cells by forward
tracing from the primary inputs. This is the default mode.
-Allow_internal_feedback — Identifies additional cells with outputs fed back into the
combinational logic between the primary inputs and the first level of registration
cells.
-Test_points switch — Inserts control and observe points at the feedback connections
instead of identifying additional cells from these feedback connections.
• -Verbose
An optional switch that prints a detailed session transcript during wrapper cell identification
including the instance pathnames of all identified wrapper cells per I/O.
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 Scan Identification
Delete Test Points Set Scan Enable
Report Test Points Set Scan_enable Sharing
Run Write Netlist
Setup Output Masks
Setup X_bounding
Scope: Dft mode
Usage
SETup X_bounding
[-Connect_to {Existing_scan_cell | Power_or_ground | [New_scan_cell -Model
scan_cell_model -Clock clock_for_new_scan_cells]}
[-SCAN_Drive_limit integer] [-SCAN_Cell_proximity integer]
[-Lbist_enable name] [-DONT_Bound pins…]
[-DONT_Constrain {-All | pins…}] [-Off] [-Verbose]
[-Bound_all_feedbacks]
Description
Defines the X bounding parameters.
Part of preparing a circuit for logic BIST requires ensuring that no unknown states (Xs)
propagate to the MISR, as that corrupts the signature. After scan selection and before test point
identification, the BIST-Ready phase of LBISTArchitect can identify potential X sources and
bound them.
For X bounding, even if the X does not propagate to an observe point, it will still be bound, as
there is no guarantee that an observe point will not be added later, making the X observable. To
bound primary inputs, there should be X pin constraints on the inputs, such that X bounding will
treat them as X sources and bound them. The Setup X_bounding command performs both X
bounding and sets X constraints.
Normally, you would add the Setup X_bounding command, with your specified options, to the
dofile for a separate X bounding run. But if you specify the Setup Test-point Identification
command in a BIST-Ready run, and you have not yet performed X bounding, then, by default,
LBISTArchitect turns Setup X_bounding on and the default values apply. You can add the
Setup X_bounding command to the MTPI run dofile to change these defaults, if necessary. If
you have already performed X bounding, the default for this command is OFF and
LBISTArchitect produces a message that summarizes the X bounding solution and then asserts
the controlling signal (lbist_en).
You can bound X sources in either of three ways. The first method (Existing_scan_cell) is to
bound the X source by connecting to a nearby scan cell (which would supply pseudorandom
patterns) in test mode. This is the invocation default.
The second method (New_scan_cell) is to bound the X source by connecting to a new scan cell
instead of using an existing nearby scan cell.
The third method (Power_or_ground) consists of adding an AND or OR gate that supplies a
constant 0 or 1 in test mode, respectively. Selection of whether to bound to a 0 or 1 is based on
trying to find the non-controlling value of the X source fanout. You do that to reduce the chance
that the bounding will block the propagation of other faults arriving at its fanout gate. This
method results in lower fault coverage and is therefore not recommended.
When reporting test points using the Report Test Points command, control points added for
bounding will be of type “Bounding”.
Arguments
• -Connect_to {Existing_scan_cell | Power_or_ground | {New_scan_cell -Model
scan_cell_model -Clock clock_for_new_scan_cells}]}
An optional switch and literal pair that specifies how bounding will occur.
Existing_scan_cell — An optional literal (invocation default) that specifies to perform
bounding by multiplexing the X-source output with a nearby scan cell. This has the
advantage of supplying pseudorandom patterns in test mode (lbist enable = 1).
Power_or_ground — An optional literal that specifies to perform bounding by tieing the
X-source output to a constant 0 or 1 by adding an AND or OR control point,
respectively, which is controlled on the other input by the inverted lbist enable or lbist
enable, respectively. This method results in lower fault coverage and is therefore not
recommended.
New_scan_cell — An optional literal that specifies to bind the X-sources by inserting
new scan cells to drive the signals. You can control the number of X-sources that each
new scan cell can drive using the “Setup Test_point Insertion -CShare” command.
-Model scan_cell_model — An optional switch and string pair that specifies the type
of scan cell that the tool inserts to drive X-sources. This option is only required
when you have specified more than one scan model with the Add Cell Models
command.
-Clock clock_for_new_scan_cells — An optional switch and string pair that
specifies the name of an existing clock that will drive all the new X-sources. The
available clocks come from the names you previously specified in the Add Clocks
command.
The default behavior is to select the clock of the new scan cell to match the
clocking of the previous flip-flop in the chain. However, if you have already
issued the “Setup Test_point Insertion -Time_based_capture ON” command, the
tool determines the clock of the new scan cell by analyzing the fanout from the X-
source. If the fanout includes multiple clock domains, the tool uses the slowest
clock (as defined by the Set Clock Period command).
• -SCAN_Drive_limit integer
An optional switch and integer pair that specifies a limit on how many Mux-type control
points one scan cell can drive for bounding. Having one scan cell drive a large number of
Mux control points can reduce test coverage, due to structural dependency. 0 means there is
no limit. The invocation default is 4.
• -SCAN_Cell_proximity integer
An optional switch and integer pair that specifies how many levels of logic away to search
for a scan cell to solve the X source problem. This switch provides an additional control on
the topological distance at which LBISTArchitect begins its search for an existing scan cell.
The default is 3, but in some circumstances, for instance, where reconvergent fanouts would
affect fault coverage, you may need to increase the distance with integer, to ensure an
acceptable solution.
• -Lbist_enable name
An optional switch and string pair that specifies the name of a signal which will control the
X bounding logic. The default is for BIST-Ready to use a global test enable signal for the
control of X bounding logic. This switch allows the use of a user-specified signal.
• -DONT_Bound pins
An optional switch and repeatable string that specify a list of pins that are not to be bounded,
even if they have pin constraints (X pin constraints in the case of X bounding). If you do not
specify any pins, LBISTArchitect clears the exclude list and bounds all X sources.
• -DONT_Constrain -All | pins
An optional switch and literal or repeatable string that specify to exclude all primary inputs
from being constrained to X, or to exclude just the specified pins from being constrained to
X. The default is to constrain all primary inputs to X, except for the following signals:
scan enable
scan inputs
scan outputs
test enable
lbist enable
clocks
• -Off
An optional switch that explicitly turns X bounding off. X bounding normally takes place
during a run after scan selection (if any) and just before test point identification, but if you
are performing a MTPI run, Setup X_bounding is ON by default if you have not already
performed X bounding in a previous run. If, for some reason, you do not want to perform X
bounding in the case just mentioned, use the -Off switch to turn off the default. In all other
cases, the invocation default is Off.
• -Verbose
An optional switch that specifies to turn on the verbose level of reporting on potential X
sources. If the verbose option is turned on, LBISTArchitect reports every potential X
source, as well as how and where each is bounded. The invocation default is off.
• -Bound_all_feedbacks
An optional literal that specifies to override the default behavior and add x-bounding logic
that explicitly breaks all feedback loops. By default, LBISTArchitect performs stability
analysis for all feedback loops and eliminates feedback loops that maintain a constant value
(regardless of clock activity) from being a target for x-bounding.
Examples
The following example shows the necessary commands used in a normal X bounding run:
setup x_bounding
setup scan identification none
set system mode dft
run
add cell model MUX21HA -type mux S A B
insert test logic -test_point on -scan off
…
Related Commands
Report BIST Bounding Setup Test_point Insertion
Command Summary
Synthesize
Scope: Dft mode
Usage
SYNthesize
Description
Inserts test structures into the netlist to increase the design’s testability.
The Synthesize command inserts scan and/or testpoints based upon setup commands.
Information derived from scan analysis, testpoint analysis, and lockup latch processing setup
commands guide the Synthesis command’s operations without the need for using the extensive
options of the Insert Test Logic command.
Rather than receiving information from the following Insert Test Logic command options,
Synthesize derives the information directly from the following commands.:
Table 2-11. Insert Test Logic versus Synthesis
Insert Test Logic option New location
-Scan on Setup Scan Identification
-Test_point on Setup Test_point Identification
-Max_length # Setup Scan Identification -Max_length #
-Number # Setup Scan Identification -Number #
Note
The Synthesize command simplifies your choices by providing default behavior, instead
of executing the more complex Insert Test Logic command.
Examples
The following example inserts test structures into the netlist:
set system mode dft
setup scan identification -number 8 -max_length 100
setup test_point identification -control 10
run
...
synthesize
Related Commands
Insert Test Logic Setup Scan Identification
Setup Test_point Identification
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 the BIST-Ready phase of LBISTArchitect:
set system mode dft
run
system pwd
Verify Scan
Scope: Dft mode
Usage
Verify Scan
Description
Verifies that newly inserted scan can pass DRC.
The Verify Scan command is issued to test the conformity of clocking, scan, and pin
constraints. This command encompasses several verification steps often added by users at the
end of their runs. Users frequently write out an ATPG setup file, followed by returning to Setup
mode. They then delete the pin constraints, clocks, and scan information. The ATPG setup file
is then read back in and DFT mode entered to perform DRC checking. At this point, a Report
Dft Check -Nonscan is usually performed. This step validates that the ATPG setup file contains
correct clocking, scan, and pin constraint information for tools later in the flow.
The Verify Scan command encompasses all of the steps listed previously. During its operation,
DRC failures and DFT checking information is displayed. The temporary file used for writing
and subsequently reading the ATPG setup information is removed after completion of this
command.
Examples
This is an example of a typical usage for the Verify Scan command:
analyze control signals -auto_fix
set system mode dft
run
insert test logic -number 8
write netlist scan.v -verilog -replace
write atpg setup setup -replace
verify scan
Using the Verify Scan command replaced the following commands typically utilized at the end
of a script:
analyze control signals -auto_fix
set system mode dft
run
insert test logic -number 8
write netlist scan.v -verilog -replace
write atpg setup setup -replace
write atpg setup /tmp/verify_setup.pid -rep
set system mode setup
delete clocks -all
delete pin constraints -all
delete scan groups -all
delete scan chains -all
dofile /tmp/verify_setup.pid verify_setup.dofile
set system mode dft
report drc rules -fails -verbose
report dft check -nonscan
Related Commands
Report Dft Check
Another line that Write BIST Setup normally generates automatically for the dofile is a Setup
Synthesis Script command for use in the BIST Controller Synthesis phase. However, the BIST-
Ready phase will include this line only if it encounters a Write Netlist command before the
Write BIST Setup command. This order of commands is the only way LBISTArchitect will
know about the output file name. If it sees the commands in the reverse order, it will silently
skip adding the Setup Synthesis Script command to the dofile.
When the BIST Controller Synthesis phase sees a Setup Synthesis Script command before
encountering a Save BIST command, it writes out a Design Compiler synthesis script as part of
the Save BIST files.
Arguments
• module_filename
An optional string that specifies the name of the file to which LBISTArchitect writes the
top-level design interface. The default filename upon invocation is bist_in.v.
• dofile_filename
An optional string that specifies the name of the file to which LBISTArchitect writes the
dofile. The default upon invocation is bist.dofile.
• -Replace
An optional switch that specifies for LBISTArchitect to replace the contents of the files, if
the files already exist. The default upon invocation is not to replace the files.
• -Verilog
An optional switch that specifies to write the design interface in Verilog format. The default
upon invocation is the format of the input netlist.
Examples
The following example performs all the setup, then writes the design interface and dofile files:
add scan groups grp1 s9234.testproc
add scan chains chain1 grp1 scan_in1 scan_out1
add clocks 0 clock
set capture clock clock
setup test_point identification -control 6 -observe 2 -patterns 1023 -base multiphase -verbose
-test_coverage 95.0 -phases 4 -bpcthreshold 7 -sigprobthreshold 0.05 -num_detections 1
set system mode dft
setup scan identification none
run
add cell models or2a -type or
add cell models n1l -type inv
add cell models and2a -type and
add cell models fd1sqa -type sdff CP D
setup scan insertion -sen scan_en
insert test logic -test_point on -scan off
write netlist s9234_1_scan_mptp.v -verilog -replace
write bist setup -replace
Related Commands
Write Netlist
Command Summary
You can perform formal verification after any BIST-Ready step. FormalPro always compares
the original non-scan design to the current output of BIST-Ready.
Arguments
• constraint_filename
A required string that specifies the name of the file to which LBISTArchitect writes the
formal verification constraints file.
• -Replace
An optional switch that specifies for LBISTArchitect to replace the contents of the file,
constraint_filename, if the file already exists.
Examples
The following example writes out a constraints file named mtpi.constraints and also includes a
shell script to invoke FormalPro:
//mtpi dofile
//perform mtpi analysis and test logic synthesis
write netlist m8051_mtpi.v -replace
write formal_verification setup mtpi.constraints -replace
exit -force
Related Commands
Write Netlist
Command Summary
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 LBISTArchitect writes the loop
report information.
• -Replace
An optional switch that specifies for LBISTArchitect 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]
Description
Writes the current design to a Verilog netlist. Depending on the process, the current design is
either the one used to invoke LBISTArchitect or the one created by the scan insertion process.
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]), ...
Examples
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 full_scan -percent 50
run
insert test logic -max_length 10
write netlist verilog.scan
Related Commands
Write Scan Setup Delete Black Box
Add Black Box
Related Commands
Report Primary Inputs
Related Commands
Report Primary Outputs
Write Procfile
Scope: All modes
Usage
WRIte PRocfile proc_filename [-Replace] [-Full]
Description
Writes existing procedure and timing data to the named enhanced procedure file.
The Write Procfile command writes out existing procedure and timing data to the named
enhanced 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
Read Procfile
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
Reading a complete DEF may be slow since these files can be quite large. However, you
can submit a stubbed DEF with only the SCANCHAIN section.
Arguments
• -Def | -Scandef
A required switch that specifies for a complete, structural DEF file to be produced or for a
subset DEF with scan chains.
• -Endpoints
An optional switch will cause only the start and stop scan cells in each chain to be
represented. It would be up to the Place & Route tool to analyze the topology between these
scan cells to identify the remaining scan cells in the chain.
• filename
A required string that specifies the name of the file to which the tool writes the scan
instances.
• -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. This behavior
preserves the location of the first and the last scan cells of different domains in the scan
chain.
If you disable the segmentation of scan chains, lockup cells inserted between the cells of
different domains may be placed in the wrong position and cause the scan chain to fail.
Also, this switch disables the insertion of the PARTITION and MAXBITS keywords in the
DEF file. These keywords allow you to move scan chains between the floating blocks
defined in the DEF file.
• -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.
Examples
The following example causes a complete, legal DEF file to be produced:
write scan order -def deffile
Related Commands
Add Scan Pins
Related Commands
Insert Test Logic Write Netlist
Read Procfile Write Procfile
Related Commands
Archive Test_points Restore Test_points
Delete MTPI Control_point Delete MTPI Observe_point
Set Clock Period Load Static_timing Report
Command Summary
Related Commands
Add Test Points Report Test Logic
Insert Test Logic
This chapter contains command descriptions for the BIST Controller phase of LBISTArchitect.
The subsections are named for the command they describe. For quick reference, the commands
appear alphabetically, with each beginning on a separate page.
You invoke the BIST Controller phase of LBISTArchitect by using the lbistarchitect invocation
shell command with the -bist_controller switch as described in the Shell Commands chapter.
Command Summary
Table 3-2 provides a quick reference for LBISTArchitect BIST Controller phase commands
described in this manual.
Table 3-2. Command Summary
Command Description
Add Capture Window Creates custom capture window waveforms for
testing designs with multiple clocks.
Add Cell Models Adds a generic or technology-specific clock/scan
enable buffer cell model.
Add Clock Domain Specifies that all listed clocks share the same
domain and, as a result, share the same clock
hardware logic of the co_clock_control module.
Add Clocks Specifies the names and inactive states of the core
design’s primary input pins to be considered for
multi-clock domain logic BIST.
Add LFSR Connections Connects a core logic pin to the specified LFSR.
Add LFSR Taps Adds the tap configuration to the specified LFSR.
Add LFSRs Specifies addition of a LFSR for use as either a
Pseudo-Random Pattern Generator (PRPG) or
Multiple Input Signature Register (MISR).
Add Pin Constraints Specifies input pins and the constant state at which
they are to be held during BIST mode.
Add Scan Pins Declares the name, ports, first and last cell clocks,
and length of a core scan chain that you want to use
as a STUMPS channel.
Add Set_reset Clocks Specifies the names and inactive states of the set
and reset clocks to be considered for set/reset tests.
Add Testprocedure Include Specifies to add an include statement to a
LBISTArchitect-generated test procedure.
Command Descriptions
The remaining pages in this chapter describe, in alphabetical order, the commands used in
LBISTArchitect. Each command description begins on a new page and contains a line
indicating the supported applications.
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.
Command Summary
This example adds the technology-specific cell (CTS55) from the technology library, TCS5000:
add cell models cts55 -type buffer -input A -output Y -library tsc5000
Related Commands
Delete Cell Models Report Cell Models
Set Clock Buffer
Command Summary
Related Commands
Add Clocks Report Clocks
Add Set_reset Clocks Set Capture Waveform
Delete Clocks
Command Summary
Add Clocks
Usage
ADD CLocks off_state primary_input_pins… [-Internal]
Description
Specifies the names and inactive states of the core design’s primary input pins to be considered
for multi-clock domain logic BIST.
If your core design uses a multiple clock domain, you must declare all clock ports and their
corresponding off-states with the Add Clocks command.
If you issue multiple Add Clock commands for a particular clock without an intervening Delete
Clocks command, LBISTArchitect displays a warning.
You can issue multiple Add Clock commands for different clocks, however their off states must
be the same.
If you add multiple clocks using the Add Clocks command, then you must also specify the
master clock using the Set Bist Clock command.
Arguments
• off_state
A required literal that specifies 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 that the off-state value is 0.
1 — A literal specifying that the off-state value is 1.
• primary_input_pins
A required repeatable string that lists the core design’s clock ports that you want to be
considered for multi-clock domain logic BIST. The list of clock ports must exist in the core
design and all have the same off_state.
• -Internal
An optional switch that specifies the primary_input_pin is an internal pin for ATPG
purposes. See “Using On-Chip PLL Clocks for BIST Capture” in the LBISTArchitect
Process Guide for complete information.
The tool processes this internal pin as a clock primary input. Use this switch to define
internal clock inputs normally driven by on-chip circuitry, such as from PLL output.
When using this switch, then the primary_input_pin must be an internal pin and not an
actual clock primary input pin. When you save patterns, the tool omits this internal clock
input at the top level interface.
Examples
The following example adds the primary input pins /clk_input and /sys_clk for a multi-clock
domain logic BIST with a shared off_state of zero:
add clocks 0 /clk_input /sys_clk
report clocks
off-state = 0
clk_input capture_string = 1111111100000000
sys_clk capture_string = 0000000011111111
Related Commands
Add Set_reset Clocks Report Clocks
Delete Clocks
Command Summary
MISR Connections
If you are specifying connections for a MISR, this command performs the following functions:
• specifies a connection between a scan output pin and the MISR
• specifies to which bit of the MISR you want to connect the scan output
After connecting a MISR, LBISTArchitect creates an XOR network responsible for merging
multiple scan outputs into a single bit in the MISR when the number of scan outputs exceeds the
number of bits in the MISR.
Commands
add lfsrs misr1 misr 4 0 -in
Core
Design add lfsr taps misr1 1 3
add lfsr connections sco_1 misr1 3
sco_1 sco_2 add lfsr connections sco_2 misr1 2
misr1
3 2 1 0
Generated Circuitry
Arguments
• primary_pin
A required string that specifies the name of the boundary scan or core logic scan pin that you
want to connect to the LFSR specified by lfsr_name. If the LFSR functions as a PRPG, you
must connect it to a scan input pin. Similarly, if the LFSR functions as a MISR, you must
connect it to a scan output pin. In either case, if you do not want to specify the scan input or
scan output pin name for a boundary scan chain, you can specify the string “dummy”. When
it makes connections, LBISTArchitect selects a boundary scan pin not already connected to
the LFSR to serve as the “dummy”.
• lfsr_name
A required string that specifies the name of the LFSR to which you want to connect the
primary_pin.
• position
A required integer that specifies the bit position(s) of the lfsr_name at which to place
connections. For PRPGs, you can specify multiple positions. For MISRs, you can specify
only one position. A bit position is an integer number, where 0 indicates the least significant
bit position.
Examples
The following example connects a PRPG to a scan-in pin and a MISR to a scan-out pin:
add lfsrs lfsr1 prpg 5 10 -in
add lfsrs misr1 misr 5 15 -out
add lfsr taps lfsr1 2 4
add lfsr taps misr1 1
add lfsr connections scan_in1 lfsr1 2 3
add lfsr connections scan_out1 misr1 3
4 3 2 1 0
scan_out1
misr1
4 3 2 1 0
Related Commands
Add LFSR Taps Report LFSR Connections
Add LFSRs Report Primitive Polynomials
Delete LFSR Connections
Command Summary
For a Type 2 or “in” tap type, subtract the Type 1 or “out” tap points from the LFSR’s length.
For example, for the same 8-bit LFSR you determined the tap positions 4, 3, and 2 for the Type
1 tap type. Thus, for Type 2 or “in” tap types, you get 4, 5, and 6 (8 - 4, 8 - 3, and 8 - 2) as the
tap positions.
You specify the tap type, either in or out, using the Add Lfsrs command. The tap positions you
specify depend on the which tap type you chose.
Tapping Points
(bits 4 and 2)
4 3 2 1 0
5-bit PRPG
You can use the Report LFSRs command to display all the LFSRs with their current values and
tap positions.
Arguments
• lfsr_name
A required string that specifies the name of the LFSR for which you want to specify the
taps.
• position
A required repeatable integer that specifies the bit positions of the lfsr_name at which you
want to place the taps. LFSR bit positions have integer numbers, where 0 indicates the least
significant bit position. LBISTArchitect assumes the output of the 0-bit position connects to
the selected tap points and that the 0-bit position cannot itself be a tap point.
Examples
The following example places taps on added LFSRs:
add lfsrs lfsr1 prpg 5 10 -in
add lfsrs misr1 misr 5 15 -out
add lfsr taps lfsr1 1 3
add lfsr taps misr1 1 2
Related Commands
Add LFSRs Report LFSRs
Delete LFSR Taps Report Primitive Polynomials
Command Summary
Add LFSRs
Usage
ADD LFsrs lfsr_name {Prpg | Misr} length seed [-Out | -In]
Description
Adds a Linear Feedback Shift Register (LFSR) for use as either a Pseudo-Random Pattern
Generator (PRPG), to create pseudo-random patterns, or a Multiple Input Signature Register
(MISR), to compact responses from the circuit.
If you do not specify a PRPG or MISR, LBISTArchitect automatically provides them for you.
By default, LBISTArchitect creates both the PRPG and MISR as type “in”.
The size of the PRPG is calculated based on the minimum PRPG size (16 bits) and the total
number of scan chains in the design. For designs with more than 200 scan chains, the formula is:
PRPG size = S + 2 + (((N-200)/100) * 2)
As an example, for a design composed of 2000 scan chains, LBISTArchitect sets the size of the
PRPG to 54 bits as calculated below:
The maximum size of a MISR is 64 bits. For designs with fewer than 64 scan chains,
LBISTArchitect creates a MISR whose size is equal to the number of scan chains. For designs
with 64 or more scan chains, it creates a 64 bit MISR.
As an example, for a design composed of 2000 scan chains, the MISR size is 64 bits.
The automatic default seed value is all 1s for both the PRPG and the MISR.
Arguments
• lfsr_name
A required string that specifies the LFSR name.
• Prpg
A literal indicating that the LFSR functions as a PRPG.
• Misr
A literal indicating that the LFSR functions as a MISR.
• length
A required integer, greater than 1, specifying the number of bits in the LFSR.
• seed
A required, right-justified, hexadecimal number that specifies the initial state of the LFSR.
PRPGs must have a seed value other than 0. When the IEEE 1149.1 instruction RUNBIST
initiates the BIST process, the controller loads the specified seed values into the PRPG and
MISR. To experiment with different seed values, place the boundary scan circuitry in the
Shift-DR state and load the new seed value through TDI into the PRPG and MISR.
• -Out
An optional switch that specifies that the exclusive-OR taps reside outside the register path.
An Out tap type corresponds to the industry term “Type 1”. Figure 3-5 shows an example of
an Out type tap configuration, which has two tap positions—at bit 1 and bit 3 of a four-stage
LFSR.
3 2 1 0
• -In
An optional switch that specifies that the exclusive-OR taps reside in the register path. An In
tap type corresponds to the industry term “Type 2”. In type tap points have the advantage of
incurring less gate delay as well as having less dependency (more randomness) between
bits. Figure 3-6 shows an example of an In type tap configuration that has two tap
positions—at bits 3 and 1 of a four-stage LFSR. By default, LBISTArchitect creates both
the PRPG and MISR as type “in”.
3 2 1 0
Examples
The following example defines both a PRPG and a MISR, and sets the tap positions for both:
Related Commands
Add LFSR Connections Report LFSRs
Add LFSR Taps Report Primitive Polynomials
Delete LFSRs
Command Summary
during BIST simulation (but not during ATPG), and the ALL literal specifies for the tool to
constrain the pins during both ATPG and BIST.
Examples
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
Delete Pin Constraints Setup Pin Constraints
Report Pin Constraints
Command Summary
Command Summary
Assuming the BIST controller is clocked by clk1 and uses the default (edge-based) lockup latch
insertion algorithm, LBISTArchitect inserts lockup latches in the following locations, where
scan data crosses clock domain boundaries:
• Between the PRPG and sin1, sin2, sin3, and sin4, because there may be skew between
the bist_clock and the gated version of the bist_clock that drives the core.
• Between sout1, sout2, and sout3 and the MISR.
• Between sout4 and sin3 while concatenating the scan chains.
Related Commands
Delete Scan Pins Setup Scan Pins
Report Scan Pins Set Lbist Controller
Command Summary
Arguments
• off_state
A required literal that specifies 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 that the off-state value is 0.
1 — A literal specifying that the off-state value is 1.
• primary_input_pins
A required repeatable string that lists the core design’s set and reset clock ports that you
want to be considered for set/reset tests. The list of clock ports must exist in the core design
and all have the same off_state.
Examples
The following example defines clk as a clock with zero off-state, set1 with 0 off-state, and
reset1 with 1 off-state. The final command sets LBISTArchitect to perform 1024 patters, of
which the first 16 patterns are dedicated for flush test.
add clocks 0 clk
add set_reset clocks 0 set1
add set_reset clocks 1 reset1
set lbist controller -patterns 1024 -flush_test 16
Related Commands
Delete Set_reset Clocks Set Lbist Controller
Report Set_reset Clocks
Command Summary
Example 2
The following example adds the capture.testproc file to the beginning of the named capture
procedure cap1.
add testprocedure include -procedure capture cap1 -file capture.testproc
timeplate tp_gen1;
#include “capture.testproc”
cycle =
...
end;
end;
Related Topics
Delete Testprocedure Include Report Testprocedure Include
Command Summary
The first in_port_name pin and the last out_port_name pin are made available at the top level,
renamed—by default—as top_scan_inX and top_scan_outX. You can change the default name
that follows top_ by using the Setup Scan Pins command. The command also assigns a unique
name to each newly formed scan chain and echos the name to the transcript window so that you
can use it with the Disconnect Iscan Chains command.
Alternatively, you can use the names of the chains that you want LBISTArchitect to connect
together. The previous set of commands then become:
connect iscan chains scan_chain_1 scan_chain_2 scan_chain_3
connect iscan chains scan_chain_4 scan_chain_5
If LBISTArchitect encounters a chain name as the first argument, it treats all subsequent
arguments as chain names.
scan_chain_2
in_port2 out_port2
top_chain2
scan_chain_4
top_scan_in2 in_port4 out_port4
scan_chain_5
in_port5 out_port5 top_scan_out2
Core
BISTed Core
top_scan_in1 in_port1 scan_chain_1
0 out_port1
1
top_single_in
in_port2 scan_chain_2
out_port2
select_single_
chain
scan_chain_3
in_port3 out_port3 top_scan_out1
in_port4 scan_chain_4
1 out_port4
top_scan_in2
0
scan_chain_5 top_scan_out2
in_port5 out_port5
Core top_single_out
This command also supports a second level of scan chain concatenation inside the BIST
controller, using the -Single_core_chain switch. This mode combines all the core scan chains
(including previously-created top-level scan chains) into a single, unnamed chain with ports
top_single_in and top_single_out, without deleting any existing top-level connections.
However, only one mode at a time can be active. You select the single core chain mode by
forcing a “1” on the BIST controller port, select_single_chain. When this mode is inactive, you
can once again access the top-level scan chain ports. Figure 3-8 shows the result of issuing the
following command:
LBISTArchitect connects the chains into a single chain in the same order in which you defined
them using the Add Scan Pins command.
There is no order dependency when issuing these commands. You can issue a command
creating the single core chain before, during, or after creating individual top-level scan chains.
A special case occurs when the core level scan pins are part of a bused input or output signal and
you connect the corresponding internal scan chains with the following commands:
CONnect IScan Chains sci(1) sco(1) sci(0) sco(0) sci(2) sco(2)
CONnect IScan Chains sci(3) sco(3) sci(4) sco(4
Figure 3-9 shows that LBISTArchitect resizes the bused input or output accordingly, causing
the top-level to core-level interconnections to no longer match.
sci(0) sco(0)
sci(0) sci(1) sco(1)
sci(2) sco(2) sco(0)
sci(1) sci(3) sco(3)
sci(4) sco(4) sco(1)
Arguments
You can choose only one of the following arguments for each instance of this command.
• in_port_name out_port_name
A repeatable string pair which defines the input and output port of an internal scan chain
(in_port_name and out_port_name must belong to the same scan chain). The arguments
must match the port names used in the core logic. You must specify the port names in pairs,
for example, in_port_name_3 out_port_name_3.
• chain_name
A repeatable string that specifies the chain names of the chains you want connected into a
single top-level scan chain. If the first argument to the command is a chain name,
LBISTArchitect treats all further arguments as chain names.
• -Single_core_chain
A switch that specifies to connect all the core and top-level scan chains into a single top-
level chain with the ports, top_single_in and top_single_out.
Examples
To form a single internal scan chain from three chains, whose port names are paired as “IN1”,
“OUT1”, “IN2”, “OUT2”, and “IN3”, “OUT3”, enter the following command:
connect iscan chains in1 out1 in2 out2 in3 out3
// New chain has been named ‘top_chain1’
The result is a new internal scan chain named “top_chain1” with an input port name
“top_scan_in1” and an output port name “top_scan_out1”.
Related Commands
Disconnect Iscan Chains Setup Scan Pins
Add Scan Pins
Command Summary
Command Summary
Related Commands
Add Cell Models
Report Cell Models
Command Summary
Delete Clocks
Prerequisites: You must add a clock port to the multi-clock domain list before you can delete it.
Usage
DELete CLocks primary_input_pin [-Internal]... | -All
Description
Removes core design clock ports from the multi-clock domain list.
The Delete Clocks command removes the specified clock ports from the multi-clock domain
list.
Arguments
• primary_input_pins
A repeatable string that specifies the list of clock ports in the core design that you want to
delete from the multi-clock domain list.
• -Internal
An optional argument that deletes the internal clocks added with the Add Clocks ... -Internal
command. If you omit this arguement, then the tool only deletes the PI clocks.
• -All
A switch that deletes all ports from the multi-clock domain list.
Examples
The following example illustrates that to change the multi-domain clock off-state, you must first
delete the previous definition:
add clocks 1 /clk_input /sys_clk
add clocks 0 /clk_input /sys_clk
ERROR: /clk_input and sys_clk are already defined as clocks
delete clocks /clk_input /sys_clk
add clocks 0 /clk_input /sys_clk
report clocks
off-state = 0
clk_input capture_string = 1111111100000000
sys_clk capture_string = 0000000011111111
Related Commands
Add Clocks Report Clocks
Command Summary
Related Commands
Add LFSR Connections Report LFSR Connections
Command Summary
Related Commands
Add LFSR Taps Report LFSRs
Command Summary
Delete LFSRs
Prerequisites: You must define LFSRs with the Add LFSRs command before you can delete
them.
Usage
DELete LFsrs lfsr_name… | -All
Description
Removes one or more LFSR specifications.
The Delete LFSRs command deletes LFSR definitions you added with the Add LFSRs
command. You can use the Report LFSRs command to display a list of the current LFSRs with
their current values and tap positions. When you delete a LFSR, the tool also deletes all its
associated taps and pin connections.
Arguments
• lfsr_name
A repeatable string that specifies the reference names of the LFSRs that you want to
remove.
• -All
A switch that deletes all defined LFSRs.
Examples
The following example changes the definition of a LFSR by deleting it and then re-adding it
with a new definition:
add lfsrs lfsr1 prpg 5 15 -in
add lfsrs lfsr2 prpg 5 13 -in
add lfsrs lfsr3 prpg 5 11 -out
delete lfsrs lfsr3
add lfsrs lfsr3 prpg 5 11 -in
Related Commands
Add LFSRs Report LFSRs
Command Summary
Related Commands
Add Pin Constraints Setup Pin Constraints
Report Pin Constraints
Command Summary
Related Commands
Add Scan Pins Report Scan Pins
Command Summary
Related Commands
Add Set_reset Clocks Report Set_reset Clocks
Command Summary
Related Topics
Add Testprocedure Include Report Testprocedure Include
Command Summary
The result is five original internal scan chains (1, 2, 3, 7, and 8) and one top level scan chain,
top_chain2. However, LBISTArchitect renames the remaining top level chain ports as
“top_scan_in1” and “top_scan_out1”.
Related Commands
Connect Iscan Chains
Command Summary
Dofile
Prerequisites: The existence of a properly formatted file that contains legal LBISTArchitect
commands.
Usage
DOFile filename
Description
Sequentially executes the commands residing in a specified file.
The Dofile command sequentially executes the LBISTArchitect commands contained in a
specified file. When you want to issue a series of commands, instead of executing each
command individually, you can place all the commands in a “dofile” in their desired order and
execute them, using just the Dofile command. The following is an example of the contents of a
dofile with the filename BISTA_setup.do:
load library ram4x4.atpg
add me m ram4x4
add mb al 1 march2
run
save bist -rep
exit
If execution of any command in the dofile causes an error, the tool stops executing the
commands and displays an error message. Both tools ignore lines that begin with a double slash
(//), treating them as comments.
You can specify a dofile at invocation by using the -Dofile switch with the lbistarchitect
invocation command.
Arguments
• filename
A required string specifying the name of the file containing the LBISTArchitect commands.
By default, the tool looks for the filename in the current working directory. If filename is not
in the current working directory, you must define the hard pathname.
Examples
To cause LBISTArchitect to use an external file named BISTA_setup.do (located in the current
working directory) as the source for a series of commands, enter the following command:
dofile BISTA_setup.do
Related Commands
Set Dofile Abort
Command Summary
Exit
Usage
EXIt [-Force]
Description
Terminates the application tool program.
The Exit command terminates the BIST session and returns control to the operating system. If
you did not save the results of the last run command, and did not use the -Force switch, a
warning message appears and you must specify whether to continue the session and save the
output, or exit without saving.
Arguments
• -Force
An optional switch that causes the tool to exit without saving any generated logic or files.
This command does not affect data previously saved with the Save BIST command.
Examples
To exit without saving, enter the following command:
exit -force
Related Commands
Command Summary
Help
Usage
HELp [command_name] [-MANual]
Description
Displays the syntax for the specified command.
The Help command provides quick access to information about a specific command. When you
type Help followed by a command name, the tool displays the usage of that command. If you
type Help without a command name, the tool lists all the commands, without their syntax. 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 BIST Controller phase command. You
can use minimum typing for the command name.
• -MANual
An optional string that specifies to also display the reference manual description for the
specified command.
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
For example, issue the following command at the command-line prompt:
Related Commands
Command Summary
History
Usage
HIStory [list_count] [-Nonumbers] [-Reverse]
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. Please see the ksh(1) man page for specifics on
the various editing modes.
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 most recent 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.
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 run
4 history
Related Commands
Save History
Command Summary
Read Procfile
Usage
REAd PRocfile proc_filename [-Append | -Replace]
Description
Reads the core-level test procedure file and performs a syntax check.
The file specified by proc_filename must contain timeplates and one named capture procedure
(NCP) for each Add Capture Window command. If the procedure file is incorrect,
LBISTArchitect issues an error.
You must adhere to the following usage guidelines:
• Issue the Read Procfile command after all Add Capture Window commands.
• Use the same name for the capture window in both the dofile and test procedure file.
• Include one named capture procedure for each capture window.
• If the design has a PLL, add an external and internal mode for every named capture
procedure (see “Example 2”).
External mode — Defines the signals the BIST controller drives into the core to trigger
the capture window.
Internal mode — Defines the actual clock waveforms that appear in the device.
• Execute the Read Procfile command after the Set Clock Period command.
In each NCP, the period of a timeplate must be an integer multiple of the period of
bist_clock which is the fastest clock specified by Set Clock Period. If a clock has no
period specified, the default period is 50ns.
• Start each timeplate with the following two statements placed prior to the first clock
pulse transition:
force_pi 0;
measure_po 1;
To ensure the beginning of the clock pulse starts at a value greater than 0, force_pi must
occur at 0 and measure_po must occur at 1; the cycle period is no less than 3 units.
• All clock rising edge events must occur at 2 + (bist_clk*n), where n is an integer starting
from 0 (n= 0, 1, 2…).
If you are using “force” instead of “pulse” to make a clock transition, the clock rising
edge event can occur at (bist_clk*n), where n is an integer starting from 0 (n= 0, 1, 2…).
• All clock falling edge events must be at 2 + (bist_clk*n/2), where n is an integer starting
from 1 (n= 1, 2, 3…).
• If you are using “force” instead of “pulse” to make a clock transition, the clock falling
edge event can occur at (bist_clk*n/2), where n is an integer starting from 1 (n= 1, 2,
3…).
• With one exception, all clock periods in the timeplate must occur at an integer multiple
of the bist_clk period: clock_period = bist_clk*n (n= 1, 2, 3…). The timeplate used by
the first leading clock edge transition of a NCP may have a period of 2+bist_clk*n. (n=
1, 2, 3…).
• The timescale is always set to ns.
• All signals referred to in the “cycle=” blocks of NCPs must be clocks defined using Add
Clock or PLL trigger signals.
• The “cycle=” blocks may only contain the following statements:
force clock <off_state>
pulse clock
See “Using On-Chip PLL Clocks for BIST Capture” in the LBISTArchitect Process Guide for
complete information.
Arguments
• proc_filename
A required path and filename of the test procedure file to be read.
For the BIST controller phase, the test procedure file must contain timeplates and one
named capture procedure for each Add Capture Window command.
• -Append
An optional switch that reads the information specified in proc_filename and does the
following:
• Adds any new NCPs in proc_filename to the tool’s existing database of NCPs.
New NCPs are those whose name is not identical to that of an NCP in the existing
database. An added NCP is available immediately for use.
• Updates the timing (timeplate) of existing NCPs and other procedures as applicable,
without altering them in any other way.
• -Replace
An optional switch that deletes all existing NCPs in the tool’s internal database and replaces
them with the NCPs present in proc_filename provided that none of those existing NCPs are
used by a pattern in the current internal or external pattern set. If one or more of the existing
NCPs is used by a pattern, none of them are deleted or replaced. If proc_filename does not
contain any NCPs, the existing NCPs are deleted and not replaced. This is the default.
Note
An NCP in proc_filename and its counterpart of the same name in the tool’s internal
database must have the same event sequence. If their event sequences differ, the
command is aborted.
Example 1
In the following example, the test procedure file specified by proc_filename is read:
read procfile my_file.proc
Example 2
In the following example, the three Add Capture Window commands in the dofile dictate that
three named capture procedures with the same name be included in the test procedure file.
Additionally, if a PLL is used the test procedure file must contain an external and internal mode
for each of the named capture procedures as shown.
add capture window cap1 0 9
add capture window cap2 10 14
add capture window cap3 15 15
If no PLL is used, the test procedure file must contain the following:
procedure capture cap1 =
......
end
......
end
......
end
If PLL is used, the test procedure file must contain the following:
procedure capture cap1 =
mode internal =
......
end
mode external =
......
end
end
mode external =
......
end
end
mode external =
......
end
end
Note
Note that the capture window name used in the dofile must be consistent with the name
used in the procedure file. Such as cap1, cap2, cap3 in this example.
Example 3
In the following example, a capture window is defined that creates two pulses of a clock
operating at bist_clock frequency (pulse mode), given a bist_clock frequency of 50ns:
set time scale 1.0 ns;
timeplate tp_gen1=
force_pi 0;
measure_po 1;
pulse clk1 2 25;
period 50;
end;
cycle=
pulse clk1;
end;
end;
The contents of this example test procedure file are equivalent to executing the following
command:
set capture waveform cap1 clk1 PULSE 11
Example 4
In the following example, a capture window is defined that creates two pulses of a clock
operating at 1/2 bist_clock frequency (hold mode), given a bist_clock frequency of 50ns:
set time scale 1.0 ns;
timeplate tp_gen1=
force_pi 0;
measure_po 1;
pulse clk1 52 50;
period 102;
end;
timeplate tp_gen2=
force_pi 0;
measure_po 1;
pulse clk1 50 50;
period 100;
end;
cycle=
timeplate tp_gen2;
measure_po;
pulse clk1;
end;
end;
The contents of this example test procedure file are equivalent to executing the following
command:
set capture waveform cap1 clk1 HOLD 0101
Example 5
In the following example, a capture window is defined that creates two pulses of a clock
operating at 1/2 bist_clock frequency (hold mode), given a bist clock frequency of 50ns:
set time scale 1.0 ns;
timeplate tp_gen1=
force_pi 0;
measure_po 1;
pulse clk1 52 50;
period 152;
end;
timeplate tp_gen2=
force_pi 0;
measure_po 1;
pulse clk1 0 50;
period 100;
end;
cycle=
timeplate tp_gen2;
pulse clk1;
end;
end;
The contents of this example test procedure file are equivalent to executing the following
command:
set capture waveform cap1 clk1 HOLD 01010
Example 6
In the following example, a capture window is defined that creates two pulses of a clock
operating at 1/3 bist_clock frequency (stretch mode), given a bist clock frequency of 50ns:
set time scale 1.0 ns;
timeplate tp_gen1=
force_pi 0;
measure_po 1;
pulse clk1 2 75;
period 150;
end;
cycle=
pulse clk1;
end;
end;
The contents of this example test procedure file are equivalent to executing the following
command:
set capture waveform cap1 clk1 STRETCH 100100
Example 7
In the following example, another stretch mode waveform is generated as follows:
cycle=
pulse clk1;
end;
end;
The contents of this example test procedure file are equivalent to executing the following
command:
set capture waveform cap1 clk1 STRETCH 010010
Example 8
In the following example, a capture window is defined that creates one pulse of a clock
operating at 1/3 bist_clock frequency (stretch mode), followed by a pulse of a clock running at
bist_clock frequency. The frequency of the bist_clock is 50ns:
set time scale 1.0 ns;
timeplate tp_gen1=
force_pi 0;
measure_po 1;
pulse clk1 2 75; // slow clock
pulse clk2 102 25; // fast clock
period 150;
end;
The contents of this example test procedure file are equivalent to executing the following
command:
set capture waveform cap1 clk1 STRETCH 100
set capture waveform cap1 clk2 PULSE 001
Example 9
In the following example, the same waveforms are generated as in Example 8 by creating two
different timeplates: one at 50 ns and one at 100ns:
set time scale 1.0 ns;
timeplate tp_gen1=
force_pi 0;
measure_po 1;
pulse clk2 2 25; // fast clock
period 50;
end;
timeplate tp_gen2=
force_pi 0;
measure_po 1;
pulse clk1 2 75; // slow clock
period 100;
end;
cycle=
timeplate tp_gen1;
measure_po;
pulse clk2;
end;
end;
The contents of this example test procedure file are equivalent to executing the following
command:
set capture waveform cap1 clk1 STRETCH 100
set capture waveform cap1 clk2 PULSE 001
Related Commands
Add Pll End_capture Delete Pll Triggers
Add Pll Triggers Report Procedure
Delete Pll End_capture Set Capture Waveform
Command Summary
Related Commands
Add Cell Models Delete Cell Models
Set Clock Buffer
Command Summary
Report Clocks
Usage
REPort CLocks [-Internal]
Description
Displays a list of all multi-clock domain definitions.
The Report Clocks command displays a list of all clocks added with the Add Clocks command.
Argument
• -Internal
An optional argument that reports the internal clocks added with the Add Clocks ... -Internal
command. If you omit this arguement, then the tool only reports the PI clocks.
Examples
The following example displays a list of clocks after they have been added to the clock list:
add clocks 0 /clk_input /sys_clk
report clocks
off-state = 0
clk_input capture_string = 1111111100000000
sys_clk capture_string = 0000000011111111
Related Commands
Add Clocks Delete Clocks
Command Summary
Report Environment
Usage
REPort ENvironment [{> | >>} file_pathname]
Description
Displays the current values of all the “set” commands and the default names of the scan-type
pins.
When you first invoke LBISTArchitect, executing the Report Environment command shows all
of the default values of the “set” commands. By default, the output of the command is written to
the transcript window of the tool.
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 shows the LBISTArchitect invocation default settings:
report environment
LBIST Environment Report:
------------------------
LBIST controller defaults:
Core name: fha
No. Patterns: 10000
PRPG length: 32
MISR length: 32
Test Point Parameters: method = simulation
IScan Interface:
Number STUMPS Channels: 24
STUMPS Channel length: 512
Clock name: clock
Sen name: scan_en
Scan cells: 1000
Output SCAN pin default settings:
<Name form: Indexed> <Prefix: scan_out> <Initial: 1> <Modifier: 1>
<Suffix: >
Input SCAN pin default settings:
<Name form: Indexed> <Prefix: scan_in> <Initial: 1> <Modifier: 1>
<Suffix: >
Filenames set are:
BIST model: fha_bist.vhd
Fault simulation dofile: fha_faultsim.do
Core level fault simulation dofile: fha_core_faultsim.do
Related Commands
Any of the “Set” commands.
Command Summary
Related Commands
Add LFSR Connections Delete LFSR Connections
Command Summary
Report LFSRs
Scope: All modes
Usage
REPort LFsrs
Description
Displays a list of definitions for all the current Linear Feedback Shift Registers (LFSRs).
The Report LFSRs command displays all of the LFSRs with their current values and tap
positions, which you specified using the Add LFSRs and Add LFSR Taps commands.
Examples
The following example displays the definitions of all the current LFSRs:
Related Commands
Add LFSRs Set LFSR Seed
Add LFSR Taps Setup LFSRs
Delete LFSRs
Related Commands
Add Pin Constraints Setup Pin Constraints
Delete Pin Constraints
Command Summary
Related Commands
Report Primary Outputs
Related Commands
Report Primary Inputs
Related Commands
Add LFSR Connections Add LFSRs
Add LFSR Taps
Command Summary
Report Procedure
Usage
REPort PRocedure [procedure_name | -All ]
Description
Displays all procedures or the specified procedure.
Arguments
• procedure_name
A string that specifies which procedure to display.
• -All
A switch that specifies that LBISTArchitect display all procedures. This is the default.
Example
The following example displays all procedures:
report procedure -all
Related Commands
Add Scan Groups Save Patterns
Read Procfile Write Procfile
Report Timeplate
Related Commands
Add Scan Pins Delete Scan Pins
Command Summary
Related Commands
Add Set_reset Clocks Delete Set_reset Clocks
Command Summary
Related Topics
Add Testprocedure Include Delete Testprocedure Include
Command Summary
Reset State
Usage
RESet STate
Description
Resets tool setup back to the initial state at invocation.
The Reset State command, combined with the -All switch, performs the equivalent of exiting
the tool and then reinvoking it. You use this command after you issue commands during the
setup configuration phase of the BIST session and need to reset the tool and start over.
Note: Resetting the tool deletes all pending BIST results. You may want to use the Save BIST
command before resetting the state.
Related Commands
Report Environment Run
Command Summary
Run
Prerequisites: You must define any BIST setup commands during the session before using the
Run command.
Usage
RUN
Description
Causes LBISTArchitect to generate BIST logic.
The Run command causes the applications to generate a BIST controller and other test logic for
the core memory or design, based on your setup configuration.
You can only execute the Run command once per session. To perform a second run, you must
use the Reset State command. To ease setup time, use a dofile for all your session setup
commands.
Examples
The following setup configuration for an LBISTArchitect session sets up a PRPG and a MISR
with taps and connections to an LBISTArchitect controller. It then sets up the scan chain
interfaces and the number of patterns for the controller. The final step is to perform a Run to
generate the controller, and then save it with the Save BIST command.
Related Commands
Report Environment Reset State
Save BIST Setup File Naming
Command Summary
Save BIST
Prerequisites: You must first issue the Run command.
Usage
SAVe BIst [-Replace]
Description
Saves the BIST output files. By default, the files are saved in the same format as the input
netlist. You can also use the Set Output Format command to specify the output format.
By default, LBISTArchitect uses the top-level entity or module name of the design as a prefix
and/or suffix for the saved filenames. You can use the Setup File Naming command to specify
names for the output files.
By default, LBISTArchitect outputs the following files:
• entity_bist.suffix — the BIST controller RTL file.
• entity_bsda_in.suffix — the BISTed top level entity or module for use with
BSDArchitect.
• entity_bsda.do — BSDArchitect dofile.
• entity_faultsim.do — fault simulation phase dofile.
• entity_trans_faultsim.do — fault simulation phase dofile for transition fault grading.
• entity_core_faultsim.do — core-level fault simulation phase dofile.
• entity_trans_core_faultsim.do — core-level fault simulation phase dofile for transition
fault grading.
• entity_topup_atpg.do — Tessent FastScan topup ATPG dofile.
• entity_topup_atpg_fault — topup ATPG fault simulation driver file.
• entity_bist.testproc — stand-alone mode test procedure file.
• entity_trans_bist.testproc — stand-alone mode test procedure file for transition fault
grading.
• entity_bist.ctestproc — core-level test procedure file.
• entity_trans_bist.ctestproc — core-level test procedure file for transition fault grading.
• entity_topup.testproc — top-level scan chain test procedure file.
• entity_bist_synth.scr — default Design Compiler synthesis script file.
• entity_bist.pat — pattern file (fault simulation mode)
• entity_bist.lfsr.trace — LFSR trace file (fault simulation mode)
• entity_bist.wgl — WGL pattern template file (you must edit to include the correct
signature)
Note
In the v8.2009_3 release and all subsequent releases, test bench generation does not occur
when the Save BIST command is executed. Test bench generation occurs during the test
bench generation step. For more information, see the -tbgen option of the lbistarchitect
shell command.
In addition, if you issue the Setup Synthesis Script command before issuing the Save BIST
command, LBISTArchitect saves a script file and names it entity_bist_synth.scr. This is a
Design Compiler script for synthesizing the BIST controller RTL and merging it with the core
design.
Arguments
• -Replace
Optional switch that overwrites existing output files of the same name.
Examples
To save the BIST Controller phase output files, enter the following commands:
// ** Successfully added BIST circuitry.
LBISTA>
// command: save bist -replace
// Saved m8051_e_bist.v
// Saved m8051_e_bsda_in.v
// Saved m8051_e_bist.testproc
// Saved m8051_e_topup.testproc
// Saved m8051_e_topup_atpg.do
// Saved m8051_e_bsda.do
// Saved m8051_e_bist.ctestproc
// Saved m8051_e_faultsim.do
// Saved m8051_e_core_faultsim.do
// Saved m8051_e_diagnose.do
// Saved m8051_e_bist_synth.scr
// Saved m8051_e_trans_bist.ctestproc
// Saved m8051_e_trans_core_faultsim.do
// Saved m8051_e_trans_bist.testproc
// Saved m8051_e_trans_faultsim.do
Note: Updated LBISTArchitect configuration file
‘m8051_e_bist.v.lbcfg’.
Related Commands
Run Setup File Naming
Setup Synthesis Script
Save History
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
dof instructor/fault.do
run
report environment
history -nonumbers
save history my_history -replace
Related Commands
Dofile
History
Command Summary
Related Commands
Run
Command Summary
Command Summary
Command Summary
For more information, see “At-speed Testing of Designs with High Speed Clocks” in the
LBISTArchitect Process Guide.
Arguments
• capture_waveform_name
A required string that specifies the name of the custom capture window that you created
with the Add Capture Window command.
• clock_name
A required string that specifies the name of a clock signal that you specified in the Add
Clocks or Add Set_reset Clocks command.
• clock_domain_name
A required string that specifies a clock domain defined by the Add Clock Domain
command. LBISTArchitect defines the Set Capture Waveform command once for each
clock domain.
Note
Any clock, defined by a clock_name argument, must have the same waveform mode
(PULSE, HOLD, or STRETCH) in all capture windows; a different clock may have a
different waveform mode.
• PULSE
A literal that allows you to generate full speed clock pulses during the capture window.
Each “1” in the capture window generates a single clock pulse at the bist_clk frequency.
• HOLD
A literal that allows you to generate slow clock pulses during the capture window. Each “1”
in the capture window holds the core clock signal in the active state for the entire cycle.
You can use this mechanism to generate clock pulses at 1/2, 1/4, 1/6 (and so on) of the
bist_clk frequency.
• STRETCH
A literal that allows you to generate slow clock pulses during the capture window. Each “1”
in the capture window holds the core clock signal in the active state for the entire cycle.
However, the active to inactive state transition is delayed by an extra 1/2 cycle.
You can use this mechanism to generate clock pulses at 1/3, 1/5, 1/7 (and so on) of the
bist_clk frequency.
• “waveform_string”
A required string (surrounded by double quotes) of ones and zeroes (0s and 1s) that specifies
the waveform_string that the tool will apply to the core when the named capture window is
active. Each position in the string represents one bist_clk cycle during the capture window.
The left most character in the waveform_string represents the first bist_clk cycle in the
capture window. The right most character in the waveform_string represents the last
bist_clk cycle in the capture window. Thus time passes as you go from left to right through
the waveform string.
• A zero “0” in the waveform_string always means keep the core clock signal off
during that cycle.
• A one “1” in PULSE mode means drive the core clock with a pulse from bist_clk
during just the cycle.
• A one “1” in HOLD mode means hold the core clock in the active state during the
entire bist_clk cycle.
• A one “1” in STRETCH mode also means hold the core clock in the active state for
the entire cycle. However, in STRETCH mode, the core clock is actually held active
for the entire cycle with the “1”, and also for the first half of the next cycle.
For example, in STRETCH mode, a waveform_string of “100” drives the core clock active
for 1 1/2 cycles and then holds it inactive for 1 1/2 cycles.
Example 1
In this example, there are three clocks and two reset signals in the design, requiring the
following three capture windows:
• cap1 — Capture window for patterns 0 to 12.
• cap2 — Capture window for pattern 13.
• cap3 — Capture window for patterns 14 and 15.
This gives a cycle of 16 patterns before starting again. The following dofile excerpt shows the
command sequence:
//Capture window for patterns 0 to 12; CLK1, CLK2, and CLK3 are pulsed
add capture window cap1 0 12
set capture waveform cap1 CLK1 pulse “110000”
set capture waveform cap1 CLK2 pulse “001100”
set capture waveform cap1 CLK3 pulse “000011”
//see Figure 3-10 for cap1 waveforms
//Capture window for pattern 13; reset is held for two clock cycles
add capture window cap2 13 13
set capture waveform cap2 RESET hold “001100”
//see Figure 3-11 for cap2 waveforms
Example 2
The following example defines two clock domains. The first domain definition specifies that
CLK1 and CLK2 will share the same clock hardware logic of the co_clock_control module. The
second domain definition specifies that CLK3, CLK4, CLK5, and CLK6 will share clock
hardware logic. Each Set Capture Waveform command applies to all of the clocks defined for
that domain name.
add clock 1 clk1 clk2
add clock 0 clk3 clk4 clk5 clk6
Related Commands
Add Clock Domain Report Capture Window
Add Capture Window Set Lbist Controller
Delete Capture Window
Command Summary
The tool then instantiates this entity to buffer the clock and scan enable signals as follows:
library IEEE;
use IEEE.std_logic_1164.all;
ENTITY Example_BIST is
port (...);
end Example_BIST;
ARCHITECTURE RTL of Example_BIST is
component CLKBUF
port(A: in std_logic;
Y: out std_logic);
end component;
End RTL;
For an example of the command using a technology-specific buffer, see the Examples section
for this command.
Arguments
• clock_or_scan_en_name cell_name
A required repeatable string pair that specifies the name of the clock or scan enable and
whether the buffer is a generic or technology-specific cell. The cell_name must be the name
of an existing cell added with the Add Cell Models command, or the tool will issue an error.
You can buffer the master clock that drives the BIST components by specifying
master_clock as the clock name. Every other clock/scan enable must be an existing port on
the core. If you issue more than one Set Clock Buffer command, the last one prevails.
Examples
You can generate a technology-specific buffer by providing the name of the clock/scan enable
and the name of the technology cell (which you must have previously established with the Add
Cell Models command).
The following commands add a generic clock buffer to the master clock and clk2, and a tsc500
technology-specific buffer, cts55, to clk1.
add cell models generic -type buffer -input A -output Y
add cell models cts55 -type buffer -input A -output Y -library tsc5000
set clock buffer master_clock generic clk1 cts55 clk2 generic
LBISTArchitect instantiates that specific component to buffer the clock and scan enable signals,
as follows:
library IEEE;
use IEEE.std_logic_1164.all;
library TSC5000;
use TSC5000.all;
ENTITY Example_BIST is
port (...);
end Example_BIST;
ARCHITECTURE RTL of Example_BIST is
component CTS55
port(A: in std_logic;
Y: out std_logic);
end component;
End RTL;
Related Commands
Add Cell Models Delete Cell Models
Report Cell Models
Command Summary
Arguments
• clock_name
A required string that specifies the name of the clock for which you are setting the load
factor.
• load_factor
A positive real number that specifies the percentage of flip-flops driven by a particular
clock. If this argument is not specified, the literal “undefined” argument must be specified.
• Undefined
A literal that sets the load factor for the clock to 0.0. If this argument is not specified, you
must specify a load_factor.
Example 1
The following example shows the commands generated when two clocks exist in the design
and clock1 drives a quarter of the flip-flops while clock2 drives three quarters of the flip-flops:
set clock loading clock1 .25
set clock loading clock2 .75
Example 2
The following example sets the load factor for clock3 to 0.0:
Related Commands
Add Clocks Set Capture Waveform
Command Summary
Command Summary
Arguments
• filename21
A required string that specifies the core netlist output from the BIST-Ready phase. This
argument can be either the pathname or leafname of the netlist.
Caution
The file specified by filename must already exist before you can execute this command.
• VERILOG
A literal switch that specifies that the format of the netlist specified by the filename
argument is Verilog.
Examples
The following example tells LBISTArchitect that the core netlist, fha_scan, is in Verilog
format.
set core netlist fha_scan verilog
Related Commands
Setup Synthesis Script
Command Summary
Related Commands
Dofile
Command Summary
Arguments
• enable_name
A required string that specifies an enable signal name that you must have previously defined
in the BIST-Ready phase with the Add Multi_cycle Path command. The BIST controller
will dynamically drive this enable_name signal during this BIST-Controller phase.
• capture_name
A required string that specifies the name of a capture window that you must have previously
defined in this same phase (BIST-Controller) with the Add Capture Window command. The
dynamic x-bounding signal is activated (set to ‘1’) for all the capture window that you have
specified.
Related Commands
Add Capture Window Delete Capture Window
Add Multi_cycle Path Set Capture Waveform
Command Summary
Related Commands
Add Scan Pins Save BIST
Setup File Naming
Command Summary
atpg_mode
You can optionally specify that the BIST controller includes an asynchronous test trigger signal
to activate the test, and provide direct access to the MISR value using an output vector
(misr_value). Configuring the BIST controller for this operation results in a simplified method
for determining the pass/fail status of test. See “Setting Up an Asynchronous BIST Test” in the
LBISTArchitect Process Guide for complete details and limitations of this option.
Arguments
• -Patterns number
An optional switch and integer pair specifying the number of patterns to apply. Note that
LBISTArchitect checks to ensure this number is not greater than 2k-1, where k is the
number of bits in the PRPG. By default, LBISTArchitect uses the number 10,000.
• -Core_instance instance_name
An optional switch and string pair specifying the core instance name in the generated Logic
BIST RTL file. The default name is core_i. This option lets you redefine this core instance
as follows:
In a VHDL example, the core was instantiated as follows:
core_i: XYZ port map (...);
You can change the name of the core instance from “core_i” to “ABC” using the
-Core_instance instance_name combination. The corresponding RTL file now
instantiates the core as follows:
ABC: XYZ port map (...);
• -Flush_test number
An optional switch and integer pair that specifies the number of patterns for which to
conduct flush testing. Specifying a 0 results in no flush test.
• -Chain_test number
An optional switch and integer pair that specifies the number of pseudo-random patterns
that are to be driven through the scan chains. You can either use the -Chain_test or the
-Flush_test switch, but not both. The -Chain_test switch is the tool default, and 32 is the
default number of patterns. Specifying a 0 results in no chain test or flush test.
The -Chain_test switch causes the tool to modify the RTL so that no capture clock signals
are generated in the capture window during execution of the chain test patterns, which
means that the unload values will exactly match the load values. This test produces a
different MISR signature than when using the -Flush_test switch.
• -TOp_level_access
An optional switch specifying for LBISTArchitect to generate multiplexers for bist_run and
MTPI phase decoder signals. If you issue this switch alone, LBISTArchitect creates new
top-level ports with the name “atpg_signalname” (where signalname is the name of the
phase decoder or bist_run signal) and multiplexes them with the BIST-mode phase decoder
signals. If you do not set the -Mux_select switch, by default LBISTArchitect uses
atpg_mode as the select signal name.
Note
If you use the Set Testpoint Parameters command with the -Ports option, the phase
decoder signals assigned by that command will override any default signal and
signalname, phase_cntlN.
• -MUx_select select_signal_name
An optional switch and string pair specifying the default select signal name for the
multiplexers generated by the -Top_level_access switch. If the select_signal_name is not
already present at the top-level, LBISTArchitect creates a new pin. If you do not use this
switch, the default select_signal_name is atpg_mode.
• -Reset High | Low
An optional switch and literal pair that specifies whether the BIST reset signal (bist_reset) is
an active high or low signal. The default is that the bist_reset is an active high signal.
• -PROgrammable_shift_rate ON | OFF
An optional switch and literal pair that specifies using a unique shift rate. You use this in
conjunction with Set Shift_rate Divisor. The default is off.
• -Control_logic_for_scan_mode ON | OFF
An optional switch and literal pair that triggers the creation of additional hardware in the
BIST controller to simplify the insertion of scan chains inside the controller. These scan
chains are used to test the BIST controller during top-level ATPG and must not be active
during the LBIST test. The additional hardware in the controller fixes several scan insertion
DRC violations and is activated by a new top-level pin called bist_ip_scan_mode.
See “Setting Up Scan Insertion for the BIST Controller” in the LBISTArchitect Process
Guide for complete details.
• -Parallel_interface ON | OFF
An optional switch and literal pair specifying the addition of an interface for asynchronously
triggering a Logic BIST test and accessing the final MISR signature. If you specify ON,
then this argument adds a bist_run_input input for triggering the test. The bist_done output
signal transitions from low to high upon completion of the test. The misr_value output is a
vector providing direct access to the MISR value during the test. When this switch is set to
ON, it can be used in conjunction with the -ON_chip_comparator switch.
See “Setting Up an Asynchronous BIST Test” in the LBISTArchitect Process Guide for
complete details and limitations.
• -On_chip_comparator OFF | ALL_ONES | golden_misr_value
An optional switch and string or literal pair specifying the addition of an on chip comparator
block to the BIST controller. This switch can only be used when the -parallel_interface
switch is set to ON. Choose one from the following:
OFF — a literal turning off on-chip comparator addition.
ALL_ONES — a literal specifying all bits in the MISR are compared against 1.
golden_misr_value — a string of 0s (zeros) and 1 (ones) representing the reference
MISR signature. For example:
set lbist controller ... -On_chip_comparator 10000110000111110010110001110000
Example 2
The following example defines clk1 and clk2 as clocks with zero off-state, and set1 and reset1
with off-state 0 and 1, respectively. The Set Multi_domain Parameters command specifies that
clock clk1 captures for 1/2 of the total number of patterns, clk2 captures for 1/4 of the total
number of patterns, and set1 and reset1 capture for 1/8 of the total number of patterns. The final
command sets LBISTArchitect to perform 1024 patterns with no flush test.
Example 3
The following example results in multiplexers for bist_run signals and MTPI signals.
LBISTArchitect multiplexes the BIST port mtpi_cntl1 (ANDed with bist_run) with the top-
level signal atpg_signal1. If this top-level port does not already exist, the tool creates it.
Because the -Mux_select option is not specified for this port, the default multiplexer select
signal is default_select as specified by the Set Lbist Controller command.
set lbist controller -top_level_access -mux_select default_select
set testpoint parameters -ports mtpi_cntl1 mtpi_cntl2 mtpi_cntl3
mtpi_cntl1
0 mtpi_cntl1
bist_run
MUX
atpg_signal1 1
default_select
mtpi_cntl2
0 mtpi_cntl2
bist_run
MUX
atpg_signal2 1
special_select
mtpi_cntl3
0 mtpi_cntl3
bist_run
MUX
atpg_mtpi_cntl3 1
default_select
Related Commands
Add Scan Pins Set Iscan Interface
Run Set Retiming Logic
Set Shift_rate Divisor
Command Summary Set Testpoint Parameters
• -Append
An optional switch that causes LBISTArchitect to begin writing the transcript at the end of
the specified file.
Examples
The following example specifies for LBISTArchitect to write a logfile and to disable the writing
of the transcript:
set logfile handling /user/designs/setup_logfile -replace
run
save bist
Related Commands
lbistarchitect
Command Summary
Core Clock
Bist Clock
Arguments
• -CLock_control {Latch | Flip_flop}
An optional switch and literal pair that specifies for the tool to use negative edge flip-flops
instead of the default latches. The clock control block generates the enable signals that the
tool needs for clock gating. These enable signals must transition on the negative edge of the
clock.
adds lockup latches for the re-timing logic, which you can override with flip-flops using this
switch.
The None option allows you to remove all re-timing logic. The None option assumes that all
the clock trees in your design are balanced with respect to each other.
The All_flop and All_latch options force the addition of a latch or flip-flop between every
scan chain without considering the timing.
Caution
Due to the possible impact on the size and timing of your design, you must use extreme
care when using the All_flop and All_latch options.
Example 1
The following example specifies that retiming logic for scan chain inputs is placed directly after
the PRPG outputs. Because no -Misr command switch is specified for the outputs, by default,
the tool adds lockup latches after each scan chain output that requires a retiming element.
Example 2
The following command line specifies that retiming logic for scan chain inputs is placed
directly after the PRPG outputs and retiming logic for scan chain outputs is placed directly
before the MISR inputs.
Related Commands
Command Summary Set Scan_enable Switching
Connect Iscan Chains
Related Commands
Command Summary
Related Commands
Command Summary
Arguments
• polarity scan_en_name
A required, repeatable, literal and string pair.
The literal, polarity, can be one of three values:
Posedge — Specifies that scan_en_name controls only positive-edge-triggered scan
cells.
Negedge —Specifies that scan_en_name controls only negative-edge-triggered scan
cells.
Mixedge — Specifies that scan_en_name controls both positive-edge-triggered and
negative-edge-triggered scan cells.
The string, scan_en_name, specifies a core design scan enable pin.
Related Commands
Set BIST Enables
Command Summary
Related Commands
Command Summary
Arguments
• shift_rate
A literal that specifies the shift rate of the bist_clk signal. The literal, shift_rate, must be
between 1 and 32.
The shift_rate values for 2 through 8 are as follows:
2 —Specifies to reduce the shift rate by a factor of two, which means that the scan
chains will be driven at 1/2 the bist_clk rate.
3 — Specifies to reduce the shift rate by a factor of three, which means that the scan
chains will be driven at 1/3 the bist_clk rate.
4 — Specifies to reduce the shift rate by a factor of four, which means that the scan
chains will be driven at 1/4 the bist_clk rate.
5 — Specifies to reduce the shift rate by a factor of five, which means that the scan
chains will be driven at 1/5 the bist_clk rate.
6 — Specifies to reduce the shift rate by a factor of six, which means that the scan chains
will be driven at 1/6 the bist_clk rate.
7 — Specifies to reduce the shift rate by a factor of seven, which means that the scan
chains will be driven at 1/7 the bist_clk rate.
8 — Specifies to reduce the shift rate by a factor of eight, which means that the scan
chains will be driven at 1/8 the bist_clk rate.
Related Commands
Add Capture Window Set Capture Waveform
Delete Capture Window Set Lbist Controller
Report Capture Window
Command Summary
If you also set the number of phases in the Setup Test_point Identification command in the
BIST-Ready phase of LBISTArchitect, the two numbers must match.
Related Commands
Set Lbist Controller
Command Summary
Arguments
• -BIst_model filename
An optional switch and string pair specifying the name of the RTL file that LBISTArchitect
writes when you issue the Save BIST command.
By default, LBISTArchitect produces the following file when you issue the Save BIST
command: “entity_bist.suffix”. If the invocation file does not have a suffix, the Save BIST
command adds the .v suffix (for Verilog) or the .vhd suffix (for VHDL).
• -BSDA_In filename
An optional switch and string pair specifying the BSDArchitect™ input filename that
LBISTArchitect writes when you issue the Save BIST command.
Note
The flattened model is intended for use by the Tessent Diagnosis tool in the
LBISTArchitect diagnostics flow.
• -TOPUP_Atpg_dofile filename
An optional switch and string pair specifying the topup ATPG dofile name that
LBISTArchitect writes when you issue the Save BIST command.
By default, LBISTArchitect names the topup ATPG dofile “entity_topup_atpg.do”.
• -TOPUP_Faultfile filename
An optional switch and string pair specifying the file in which faults targeted for topup
ATPG are to be stored.
By default, LBISTArchitect names the topup ATPG fault simulation driver
“entity_topup_atpg_faults”.
• -TESTBench filename
An optional switch and string pair specifying the simulation test bench name that
LBISTArchitect writes when you issue the Save BIST command. This file is written out
only in the stand-alone mode of logic BIST controller.
By default, LBISTArchitect names the simulation test bench “entity_tb.suffix”. If the
invocation file does not have a suffix, the Save BIST command adds the .v suffix (for
Verilog) or the .vhd suffix (for VHDL).
• -TEST_Procedure filename
An optional switch and string pair specifying the test procedure name that LBISTArchitect
writes when you issue the Save BIST command.
By default, LBISTArchitect names the test procedure “entity_bist.testproc.”.
• -CORE_Test_procedure filename
An optional switch and string pair specifying the core-level test procedure name that
LBISTArchitect writes when you issue the Save BIST command.
By default, LBISTArchitect names the test procedure “entity_bist.ctestproc”.
• -TOPUP_Test_procedure filename
An optional switch and string pair specifying the topup ATPG test procedure name that
LBISTArchitect writes when you issue the Save BIST command.
By default, LBISTArchitect names the test procedure “entity_topup.testproc”.
• -SYnthesis_script filename
An optional switch and string pair that specifies the Design Compiler synthesis script name
that LBISTArchitect writes when you issue the Save BIST command.
By default, LBISTArchitect names the script “entity_bist_synth.scr”.
• -TRANS_CORE_FSIM_Dofile filename
An optional switch and string pair specifying the core-level transition fault simulation dofile
name that LBISTArchitect writes when you issue the Save BIST command.
By default, LBISTArchitect names the core-level fault simulation dofile for transition fault
grading “entity_trans_core_faultsim.do”.
• -TRANS_FSIM_Dofile filename
An optional switch and string pair specifying the top-level fault simulation dofile name for
transition fault grading, which LBISTArchitect writes when you issue the Save BIST
command.
By default, LBISTArchitect names the transition fault simulation dofile
“entity_trans_faultsim.do”.
• -TRANS_CORE_FSIM_Testproc filename
An optional switch and string pair specifying the core-level test procedure name for
transition fault grading, which LBISTArchitect writes when you issue the Save BIST
command.
By default, LBISTArchitect names the test procedure “entity_trans_bist.ctestproc”.
• -TRANS_FSIM_Testproc filename
An optional switch and string pair specifying the top-level test procedure name for transition
fault grading, which LBISTArchitect writes when you issue the Save BIST command.
By default, LBISTArchitect names the test procedure “entity_trans_bist.testproc.”.
• -Patterns filename
An optional switch and string pair specifying the name of the file where LBISTArchitect
automatically writes the patterns at the end of the fault simulation phase, as controlled by
the “entity_core_faultsim.do” file.
By default, LBISTArchitect names the file “entity_bist.pat.gz”.
• -Lfsr_trace filename
An optional switch and string pair specifying the name of the file where LBISTArchitect
automatically writes the LFSR values at the end of the fault simulation phase, as controlled
by the “entity_core_faultsim.do” file. You can use the LFSR trace values to generate custom
test bench programming files using TBGen.
By default, LBISTArchitect names the file”entity_bist.lfsr.trace.gz”.
• -Wgl_test_vector filename
An optional switch and string pair specifying the name of the template file that
LBISTArchitect writes when you issue the Save Bist command. You can use the template
file as a starting point for running the BIST session. You need to edit the template file to
include the correct signature value.
By default, LBISTArchitect names the file”entity_bist.wgl”.
• -STil_test_vector filename
An optional switch and string pair specifying the name of the test vector file in STIL format.
By default, LBISTArchitect names the file “entity_bist.stil”.
• -Diagnostic_dofile filename
An optional switch and string pair specifying the name of the diagnostic dofile. By default,
LBISTArchitect names this file “entity_diagnose.do”.
• -SHift_mode_sdc filename
An optional switch and literal pair that specify the name of the timing constraints file to be
generated; this file will be used to verify the operation of the bist controller when it shifts
data through the scan chains. The default file name is <basename>_shift.sd where basename
is replaced by the name of the top level module in the incoming netlist.
• -CApture_mode_sdc filename
An optional switch and literal pair that specify the name of the timing constraints file to be
generated; this file will be used to verify the operation of the bist controller when it
generates the at-speed capture windows. The default file name is <basename>_capture.sdc
where basename is replaced by the name of the top level module in the incoming netlist.
• -BYpass_mode_sdc filename
An optional switch and literal pair that specify the name of the timing constraints file to be
generated; this file will be used to verify the operation of the bist controller when it is in
diagnostics hold mode and the bist_diag_clk signal can be used to shift data through the core
scan chains. The default file name is <basename>_bypass.sdc where basename is replaced
by the name of the top level module in the incoming netlist.
Examples
The following is an LBISTArchitect example that sets the LBISTArchitect run to use the file
names of your own choice, rather than the default names:
The VHDL entity that LBISTArchitect produces as a result of the Save BIST command has the
name, “output.vhdl”, the BSDArchitect command file has the name “bsdafile.do”, the fault
simulation command file has the name “faultsim.do”, and the topup ATPG fault simulation
driver file has the name “topupfaults”.
Related Commands
Save BIST Run
Setup Synthesis Script Setup Sdc Template
Command Summary
• -Exclude primary_input_pins
An optional switch and repeatable string that specifies to exclude the specified primary
input pins from the setup setting.
• -SImulate {ATPG | BIST | ALL}
Specifies for LBISTArchitect to constrain the pins in the test procedure, test bench, and test
vector files. These signals must be driven with the appropriate values any time a logic BIST
test is active. This may cause problem for board/system test applications.
The ATPG literal specifies for the tool to constrain the pins during ATPG topup pattern
generation, the BIST literal specifies for the tool to constrain the pins in the BIST
simulation, and the ALL literal specifies for the tool to constrain the pins during both ATPG
and BIST.
Examples
The following example defines the default pin constraints for all pins, then adds two additional
pin constraints that override the default:
setup pin constraints c0
add pin constraints kgmt c1
add pin constraints ckgmt c1
Related Commands
Add Pin Constraints Report Pin Constraints
Delete Pin Constraints
Command Summary
base_name + [index#]
Arguments
• Input
A literal specifying that LBISTArchitect apply the index or bus format on the scan-in pins.
• Output
A literal specifying that LBISTArchitect apply the index or bus format on the scan-out pins.
• -INDexed
An optional switch specifying that LBISTArchitect apply the index format to the scan-in or
scan-out pin names. This is the default.
• -Bused
An optional switch specifying that LBISTArchitect 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 for input scan pins and scan_out for output scan
pins.
• -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 specifying the incremental value 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 specifying the name that you want to place after the
index#. LBISTArchitect uses this for indexed naming only. The default is null.
Examples
The following example configures 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:
setup scan pins input -bused -prefix scin -initial 5 -modifier 2
setup scan pins output -bused -prefix scout -initial 4 -modifier 2
Related Commands
Add Scan Pins Save BIST
Connect Iscan Chains
Command Summary
This command triggers the writing of static timing analysis files used to verify the BIST
controller. Optional switches control the mapping of hierarchical paths in the RTL to nets in the
synthesized netlist.
LBISTArchitect will not write out any SDC templates unless the Setup Sdc Template command
is issued. You must issue this command prior to the Save Bist command.
LBISTArchitect generates three separate SDC files to verify the following three modes: timing
during shift cycles, timing during capture cycles, and timing during bypass mode (used for
diagnostics).
All generated SDC files contain statements to perform the following functions:
• Define relevant clock signals.
• Define set case analysis statements to sensitize the mode-appropriate clock paths.
• Define default latency and uncertainty for clocks.
• Define input and output delays for BIST control signals.
• Define mode-specific constraints.
• End with an “update_timing' command to process the previously defined information.
Note
The generated SDC files do not include the commands needed to read the design into
PrimeTime.
Example
In the following example, assume the synthesized netlist still uses standard Verilog notation
which means that we could access the least significant bit in the shift_speed register as
“shift_speed_reg[0]/Q”. In this case, the synthesis tool is configured to replace the default
brackets with an ASCII “x” character. The following command causes the register to be
referenced as “shift_speed_regx0x/Q”.
Related Topics
Setup File Naming
System
Usage
SYStem os_command
Description
Passes the specified command to the operating system for execution.
The System command passes the specified command to the operating system for execution.
After execution, control returns to the application.
Arguments
• os_command
A required string specifying any legal operating system command.
Examples
To view the contents of the logic_bist.v file, enter:
system vi logic_bist.v
Related Commands
Command Summary
This chapter contains command descriptions for the Fault Simulation phase of LBISTArchitect.
The subsections are named for the command they describe. For quick reference, the commands
appear alphabetically, with each beginning on a separate page.
You invoke the Fault Simulation phase by using the lbistarchitect invocation shell command
with the -fault_simulation switch as described in the Shell Commands chapter.
Command Summary
Table 4-2 provides a quick reference for the LBISTArchitect Fault Simulation phase commands
described in this manual.
Table 4-2. Command Summary
Command Description
Add Bist Capture Associates a named capture procedure with a subset of the
BIST patterns.
Add Chain Masks Masks the load, capture, and/or unload values on the
specified scan chains.
Add Clocks Adds clock primary inputs to the clock list.
Add Faults Adds faults into the current fault list.
Add LFSR Connections Connects an external pin to a Linear Feedback Shift
Register (LFSR).
Add LFSR Taps Adds the tap configuration to a Linear Feedback Shift
Register (LFSR).
Add LFSRs Adds LFSRs for use as PRPGs or MISRs.
Add MTPI Controller Creates a MTPI controller and connects it to the primary
inputs.
Add MTPI Output Defines the values to be output by the controller.
Add Nofaults Places nofault settings either on pin pathnames, pin names
of specified instances, or modules.
Add Notest Points Adds circuit points to list for exclusion from testability
insertion.
Add Output Masks Ignores any fault effects that propagate to the primary
output pins you name.
Add Pin Constraints Adds pin constraints to primary input pins that are in input
mode.
Add Pin Equivalences Adds restrictions to primary inputs so that they have equal
or inverted values.
Add Primary Inputs Adds primary inputs.
Delete Scan Chains Removes the specified scan chain definitions from the scan
chain list.
Delete Scan Groups Removes the specified scan chain group definitions from
the scan chain group list.
Delete Tied Signals Removes the assigned (tied) value from the specified
floating nets or pins.
Dofile Executes the commands contained within the specified file.
Exit Terminates the application tool program.
Find Design Names Displays design object hierarchical names matched by an
input regular expression.
Flatten Model Creates a primitive gate simulation representation of the
design.
Help Displays the usage syntax and system mode for the
specified command.
History Displays a list of previously-executed commands.
Identify Redundant Faults Identifies faults among current the faults whose redundancy
has not yet been determined.
Load Faults Updates the current fault population to include or exclude
the faults contained in the specified fault file.
Report Bist Capture Displays a list of the currently defined BIST capture
windows.
Report Chain Masks Reports the list of masked scan chains and their associated
unload value.
Report Clocks Displays a list of all the primary input pins currently in the
clock list.
Report Drc Rules Displays either a summary of DRC violations (fails) or
violation occurrence message(s).
Report Environment Displays the current values of all the “set” commands.
Report Failures Displays the failing pattern results.
Report Faults Displays fault information from the current fault list.
Command Descriptions
The remaining pages in this chapter describe, in alphabetical order, the Fault Simulation phase
commands used in LBISTArchitect. Each command description begins on a new page and
contains a line indicating the supported applications. For ease of use, the command and switch
names are, in most cases, identical to those used in Tessent FastScan.
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.
Usage
ADD BIst Capture capture_procedure_name [start_value stop_value]
Description
Associates a named capture procedure with a subset of the BIST patterns.
Arguments
• capture_procedure_name
A required string that specifies the name of the capture procedure.
• start_value
A required argument that specifies the beginning of a contiguous range for a group of
capture procedures. The tool typically generates the start and stop values in the BIST
controller synthesis phase, and you should not change the values.
• stop_value
A required argument that specifies the end of a contiguous range for a group of capture
procedures. The tool typically generates the start and stop values in the BIST controller
synthesis phase, and you should not change the values.
Related Commands
Delete Bist Capture
Related Command
Delete Chain Masks Add Scan Chains
Report Chain Masks
Add Clocks
Scope: Setup mode
Usage
ADD CLocks off_state primary_input_pin… [-Internal]
Description
Adds clock primary inputs to the clock list.
The Add Clocks command adds scan or non-scan clock pins to the clock list for proper scan
operation. The tool considers any signal to be a clock if it can change the state of a sequential
element, including system clocks, sets, and resets.
Pins that you add to the clock list must have an off–state. The off-state of a clock pin is the value
on the pin which results in the clock inputs of sequential memory elements becoming inactive.
For edge-triggered devices, the off–state is the value on the pin that results in placing their clock
inputs at the initial value of a capturing transition. The tool also considers set and reset lines as
clock lines. You can constrain a clock pin to its off-state in order to suppress its use as a capture
clock during the BIST process. The constrained value must be the same as the clock off-state or
an error occurs. If you add an equivalence to the clock list, the tool adds all of its equivalent pins
to the clock list as well.
Arguments
• off_state
A required literal that specifies the pin value that inactivates the sequential memory
elements. The off_state choices are as follows:
0 — A literal specifying that the off-state value is 0.
1 — A literal specifying that the off-state value is 1.
• primary_input_pin
A required repeatable string that lists the primary input pins that you want to assign as
clocks. The list of primary input pins must all have the same off_state.
• -Internal
An optional switch that specifies the primary_input_pin is an internal pin for ATPG
purposes. See “Using On-Chip PLL Clocks for BIST Capture” in the LBISTArchitect
Process Guide for complete information.
The tool processes this internal pin as a clock primary input. Use this switch to define
internal clock inputs normally driven by on-chip circuitry, such as from PLL output.
When using this switch, then the primary_input_pin must be an internal pin and not an
actual clock primary input pin. When you save patterns, the tool omits this internal clock
input at the top level interface.
Examples
The following example adds a clock to the clock list, with an off-state of one:
add scan groups group1 proc.g1
add scan chains chain1 group1 scin1 scout1
add clocks 1 clock1
Related Commands
Analyze Control Signals Report Clocks
Delete Clocks
Add Faults
Scope: Fault and Good modes
Usage
Stuck/Toggle Faults Usage:
ADD FAults {-All | {object_expression… [-PIN | -INstance]}} [-Stuck_at {01 | 0 | 1}]
{[-CLOCK_Domains {ALL | clock_pathname…} [-NO_EQUivalent_clocks]] |
[-CAPture_procedures {ALL | capture_procedure_name…}]} [-VERbose] [{> | >>}
file_pathname]
Description
Adds faults into the current fault list.
The Add Faults command adds faults to the current fault list, discards all patterns in the current
test pattern set, and sets all faults to undetected (actual category is UC). When you enter the
Setup mode, the tool deletes all faults from the current fault list. Furthermore, if you change the
fault type, the tool deletes all faults.
The tool only adds one instance of any given fault, ignoring any duplicate faults.
Arguments
• -All
A switch that specifies to add all faults on all model, netlist primitive, and top module pins.
The setting of the Set Internal Fault command affects the behavior of this switch. If the Set
Internal Fault command is set to “off” (the default), the switch only adds faults residing on
the boundaries of library cells. If the Set Internal Fault command is set to “on”, the -All
switch adds faults that reside on the inputs and outputs of gates within library cells. For
more information about fault locations, refer to “Fault Locations” in the Scan and ATPG
User’s Manual.
• object_expression
A string representing a list of instances or pins, whose faults the tool adds to the current fault
list. The string supports regular expressions, which may include any number of embedded
asterisk (*) or question mark (?) wildcard characters. The * character matches any sequence
of characters (including none) in a name, and the ? character matches any single character.
Instance pathnames must be ATPG library cell instances. 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 add faults for 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 add faults for all the pins on the instances matched.
• -Stuck_at 01 | 0 | 1
An optional switch and literal pair that specifies which stuck-at faults to add to the fault list.
The stuck-at values are as follows:
01 — A literal specifying that the tool add both the “stuck-at-0” and “stuck-at-1” faults.
This is the default.
0 — A literal specifying that the tool add only the “stuck-at-0” faults.
1 — A literal specifying that the tool add only the “stuck-at-1” faults.
• -CLOCK_Domains {ALL | clock_pathname…}
An optional switch and literal or repeatable string pair that specifies a list of clocks and
directs the tool to add only faults that are potentially detectable using any of the specified
clocks (or equivalent clocks). For a transition fault to be potentially detectable, it must be
detectable when the same clock (one of the specified clocks or an equivalent) is used for
launch and capture. Any other type of fault must be detectable when one of the specified
clocks or equivalents is used as the capture clock. The argument choices are as follows:
ALL — A literal that specifies all the clocks in the design.
clock_pathname — A repeatable string that specifies a particular clock.
Be aware that a fault added using this switch might also be detectable by an unspecified
clock.
• -NO_EQUivalent_clocks
An optional switch that prevents the -Clock_domains switch from adding faults in
equivalent clock domains.
• -CAPture_procedures {ALL | capture_procedure_name…}
An optional switch and literal or repeatable string pair that specifies a list of enabled named
capture procedures and directs the tool to add faults that are potentially detectable by any of
the specified procedures. The argument choices are as follows:
ALL — A literal that specifies all enabled named capture procedures.
capture_procedure_name — A repeatable string that specifies a particular enabled
named capture procedure.
• -VERbose
By default when you specify wildcard characters for instance (-INstance) or pin (-PIN)
names, the tool outputs a summary message similar to the following:
// Note: Adding faults for 330 fault sites.
When you specify the optional -VERbose switch, then the tool outputs the instance or pin
names instead of the summary. You can optionally redirect this output to a file using the >
or >> redirection operators.
If you use actual instance or pin names instead of wildcards, then this switch has no effect.
• > 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 adds all faults to the circuit so that you can run the fault simulation:
set system mode fault
add faults -all
run
Related Commands
Delete Faults Set Fault Mode
Load Faults Write Faults
Report Faults
SR SR
Tapping Point IN
MISR
You can use the Report LFSRs command to display all the LFSRs with their current values and
tap positions.
Arguments
• primary_pin
A required string that specifies the name of the core logic pin that you want to connect to the
LFSR specified by lfsr_name.
• lfsr_name
A required string that specifies the name of the LFSR to which you want to connect the
primary_pin.
• position
A required repeatable integer that specifies the bit positions of the lfsr_name at whose
outputs you want to place connections. A bit position is an integer number, where 0
indicates the least significant bit position. The tool assumes the output of the 0 bit position
connects to the input of the highest bit position.
Examples
The following example connects an LFSR to a scan-in pin and another LFSR to a scan-out pin:
add lfsrs lfsr1 prpg 5 10 -serial -in
add lfsrs misr1 misr 5 15 -both -out
add lfsr taps lfsr1 1 3
add lfsr taps misr1 1 2
add lfsr connections scan_in.1 lfsr1 2
add lfsr connections scan_out.0 misr1 3
Related Commands
Add LFSRs Delete LFSR Connections
Add LFSR Taps Report LFSR Connections
Related Commands
Add LFSRs Report LFSRs
Delete LFSR Taps Setup LFSRs
Add LFSRs
Scope: Setup mode
Usage
ADD LFsrs lfsr_name {Prpg | Misr} length seed [-Both | -Serial | -Parallel] [-Out | -In]
Description
Adds LFSRs for use as PRPGs or MISRs.
The Add LFSRs command defines LFSRs, which LBISTArchitect uses as PRPGs, to create
pseudorandom values for the BIST patterns or as MISRs to compact responses.
You specify the LFSR’s shift technique by using one of the following shift_type switches: -
Both, -Serial, or -Parallel. You specify the placement of the exclusive-OR taps by using one of
the following tap_type switches: -Out or -In. You can change the default setting of the
shift_type and tap_type switches by using the Setup LFSRs command.
Arguments
• lfsr_name
A required string that specifies the name that you want to assign to the LFSR.
• Prpg
A literal that indicates the LFSR functions as a PRPG.
• Misr
A literal that indicates the LFSR functions as a MISR.
• length
A required integer, greater than 1, that specifies the number of bits in the LFSR.
• seed
A required, right-justified, hexadecimal number, greater than 0, that specifies the initial state
of the LFSR.
The following lists the three shift_type switches of which you can choose only one.
• -Both
An optional switch specifying that the LFSR shifts both serially and in parallel. This is the
default unless you change it with the Setup LFSRs command.
• -Serial
An optional switch specifying that the LFSR shifts serially the number of times equal to the
length of the longest scan chain for each scan pattern.
• -Parallel
An optional switch specifying that the LFSR parallel shifts once for each scan pattern.
The following lists the two tap_type switches of which you can only choose one.
• -Out
An optional switch specifying that the exclusive-OR taps reside outside the register path.
This is the default unless you change it with the Setup LFSRs command.
• -In
An optional switch specifying that the exclusive-OR taps reside in the register path.
Examples
The following example defines an LFSR to be a PRPG and another LFSR to be a MISR:
add lfsrs lfsr1 prpg 5 10 -serial -in
add lfsrs misr1 misr 5 15 -both -out
add lfsr taps lfsr1 1 3
add lfsr taps misr1 1 2
Related Commands
Add LFSR Taps Report LFSRs
Add LFSR Connections Setup LFSRs
Delete LFSRs
Related Commands
Add MTPI Output Related Commands
Delete MTPI Controller
Delete MTPI Output
Related Commands
Add MTPI Controller Related Commands
Delete MTPI Controller
Delete MTPI Output
Add Nofaults
Scope: All switches except -Wire are valid in Setup mode only. The -Wire switch is valid in all
modes except Setup.
Usage
ADD NOfaults {{{modulename -Module} | {object_expression… [-PIN | -Instance]}}
[-Stuck_at {01 | 0 | 1}]} [-Keep_boundary]} | -Wire [-VERbose] [{> | >>} file_pathname]
Description
Places nofault settings either on pin pathnames, pin names of specified instances, or modules.
By specifying pathnames of pins, instances of, or modules while in Setup mode, the Add
Nofaults command places a nofault setting either on the specific pins or on boundary and
internal pins of the instances/modules. All added nofault pin pathnames are in the user class. If
you do not specify a stuck-at value, then the tool places a nofault setting on both stuck-at values.
When you add faults with the Add Faults command, after you issue the Add Nofaults command,
the specified pin pathnames or boundary and internal pins of instances/modules cannot be sites
for those added faults. Once you add nofault settings, the tool deletes the flattened model.
Caution
Once you add nofault settings, the tool loses all information added after flattening the
model due to the deletion of the flattened model. Adding nofault settings should be done
prior to flattening the model.
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.
• objection_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 that specifies to which stuck-at values you want to assign
a nofault setting. The choices for stuck-at values are as follows:
01 — A literal that specifies the placement of a nofault setting on both the “stuck-at-0”
and “stuck-at-1” faults. This is the default.
0 — A literal that specifies the placement of a nofault setting only on the “stuck-at-0”
faults.
1 — A literal that specifies the placement of a nofault setting on the “stuck-at-1” faults.
• -Keep_boundary
An optional switch that specifies to apply nofault settings to the inside of the specified
instance/module, but allow faults at the boundary pins of these instances/modules. This
option does not apply to nofaults on pin pathnames.
• -Wire
A required switch that specifies for the tool to no-fault a cone of logic fanning out from a
stem forward into a single wire gate. The tool no-faults the entire cone of logic between the
stem and the wire gate, but not the stem or the output of the wire gate. There must be no
other fanout from this cone of logic. This switch is valid in all modes except Setup.
Note
This switch will affect all qualifying logic cones.
• -VERbose
By default when you specify wildcard characters for instance (-INstance) or pin (-PIN)
names, the tool outputs a summary message similar to the following:
// Note: Adding faults for 330 fault sites.
When you specify the optional -VERbose switch, then the tool outputs the instance or pin
names instead of the summary. You can optionally redirect this output to a file using the >
or >> redirection operators.
If you use actual instance or pin names instead of wildcards, then this switch has no effect.
• > 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 nofault settings to all the pins in the instance, so when you add
all faults to the circuit for a simulation run, the tool will not place faults on the pins of that
instance:
add nofaults i_1006 -instance
set system mode fault
add faults -all
run
The next example places nofault settings on all the design pins within all instances of wired
cone logic, adds all faults to the circuit, and performs a simulation run so that LBISTArchitect
places nofaults on the wired cone logic pins:
set system mode fault
add nofault -wire
add faults -all
run
Related Commands
Delete Nofaults Report Nofaults
Related Commands
Delete Notest Points Report Notest Points
Related Commands
Delete Output Masks Report Output Masks
You can constrain a clock pin to its off-state to prevent its use as a capture clock during BIST
simulation. The constrained value must be the same as the clock off-state or an error occurs.
You may want to use a return format if the pin utilizes clock timing in the test_setup procedure.
You can also constrain a scan-in pin. You cannot constrain an equivalent pin, with the exception
of a simple equivalent pin. If you constrain a primary input to be a constant Z, but it does not
connect to a tri-state net, LBISTArchitect converts the pin value to a constant X;
LBISTArchitect also displays a warning message indicating that it performed the conversion.
Arguments
• primary_input_pin
A required, repeatable string that specifies the primary input pins that you want to constrain.
• constraint_format
An argument that specifies the constant value with which you want to constrain the primary
input pins. The constraint format choices are as follows:
C0 — A literal that specifies application of the constant 0 to the chosen primary input
pins.
C1 — A literal that specifies application of the constant 1 to the chosen primary input
pins.
CZ — A literal that specifies application of the constant Z (high-impedance) to the
chosen primary input pins.
CX — A literal that specifies application of the constant X (unknown) to the chosen
primary input pins.
CT0 — A literal that specifies application of the constant TIE0. BIST simulation treats
CT0 as if you had added a tied signal.
CT1 — A literal that specifies application of the constant TIE1. BIST simulation treats
CT1 as if you had added a tied signal.
CR0 — A literal that specifies a constant that returns to 0; LBISTArchitect uses this
constant only when formatting the patterns. BIST simulation treats CR0 as a C0.
CR1 — A literal that specifies a constant that returns to 1; LBISTArchitect uses this
constant only when formatting the patterns. BIST simulation treats CR1 as a C1.
Examples
The following example constrains two primary inputs to be at a constant.
add pin constraints indata2 c1
add pin constraints indata4 c0
Related Commands
Delete Pin Constraints
Report Pin Constraints
Arguments
• reference_pin
A required string that specifies the name of the primary input pin whose value you want the
tool to use when determining the state value of the other named, primary input pins.
• equivalent_pin
A repeatable string that lists the primary input pins whose values you want to equal the
reference_pin. You must list all equivalent_pins before the -Invert inverted_pin argument.
• -Invert inverted_pin
A switch and repeatable string pair that lists the primary input pins whose values you want
to invert with respect to reference_pin.
Examples
The following example shows the Add Pin Equivalences command.
add pin equivalences indata2 indata3 -invert indata4
Related Commands
Add Clock Groups Report Pin Equivalences
Delete Pin Equivalences
Related Commands
Delete Primary Inputs
Report Primary Inputs
Related Commands
Delete Primary Outputs
Report Primary Outputs
Add Processors
Tools Supported: Tessent FastScan and Tessent TestKompress
Scope: All modes
Usage
ADD PROcessors {hostname[:{cpus | MAXcpu}]}…
[-Filter {Linux | SUnos}]
[-Filter {X86 | X86-64 | SParc}]
Description
Enables the tool to run multiple processes in parallel on multiple machines to reduce runtime.
The Add Processors command enables the tool to use multiple processors simultaneously on
specified host machines when executing distributed commands for fault simulation. Especially
for large designs, running multiple processes in parallel can sometimes reduce runtime
significantly.
Without access to multiple processors, the tool executes as a single master process. When you
make additional processors available with the Add Processors command, there will still be a
single master process, but the tool will start up additional slave processes for parallel execution
and coordinate communication between them.
All distributed commands alert you with a message when the design is being sent to slave
processors. This message may not appear after subsequent commands if the other processors
have already received the design and you have issued no commands in the interim that would
affect the information the other processors received. There is currently a limit of 1024
processors per Add Processors command.
Tip: To stop the command from waiting any longer for requested slave processes not yet
received and proceed with those it has, use the Control-C key sequence.
Note
IPv4 address support differs slightly by platform due to differences in the underlying
system call implementations. These differences may be machine dependent due to
dynamic linking with libraries resident on the host computer.
Arguments
• hostname
A required, repeatable string or literal that specifies a host machine or job scheduler that the
tool may utilize for slave processes.
You can add a host machine of any platform type for which there exists a Mentor Graphics
Tessent software tree with a path corresponding to the tree used by the master process.
The hostname choices are as follows:
• :{cpus | MAXcpu}
A colon (:) and positive integer or literal pair with which you can optionally specify the
number of processes on the specified host machine or job scheduler to use as slave
processes. You can specify up to 32 processes per host.
If you specify an integer, the tool will use that number of processes.
If using a job scheduler, the tool will use as many processes as the scheduler provides in the
time allotted. The time allotted is determined by the setting of the scheduler_timeout
variable, which you can change using the Set Distributed command. See the
scheduler_timeout variable in Table 2-21 for more information.
If you specify the Maxcpu literal, the tool will automatically determine the number of
processes the host can accommodate (less one if the host must also run the master process)
and use up to that number of processes as slave processes. The invocation default for SGE,
LSF and generic is four processes; for the others it is one.
Note
The Maxcpu literal does not apply to grid scheduling or generic scheduling. The tool’s
Maxcpu calculations are based on currently running processes without considering other
slave process specifications on the same command line. If, for example, you use the
Maxcpu literal twice in the same command for a given host, the number of slave
processes on that machine could exceed the number of available processors.
• -Filter
An optional switch that limits the choice of hosts that the specified LSF or SGE job
scheduler can use to just those running a certain operating system and/or utilizing a certain
architecture. This argument has an effect only on LSF and SGE job schedulers.
• Linux | SUnos
An optional literal that, together with the -Filter switch, limits the choice of hosts that the
specified LSF or SGE job scheduler can use to just those processors running the Linux or
SunOS operating system (OS). Only one OS may be specified per Add Processors
command.
• X86 | X86-64 | SParc
An optional literal that, together with the -Filter switch, limits the choice of hosts that the
specified LSF or SGE job scheduler can use to just those with processors that have an x86,
x86-64, or SPARC architecture. Only one architecture may be specified per Add Processors
command.
Example 1
Assume the tool has been invoked on a machine whose network name is ace. The following
example manually defines two other host machines for multiprocessing, specifying that two
slave processes should be run on one of the machines and one slave process on the other. The
network names of the other machines are “nemo” (with two available processors) and “ahab”
(with two available processors).
add processors nemo:2 ahab:1
// Note: Acquired 1 slave license.
// Note: Spawning processes:
// 32 bit nemo (2 processors) x86
// 32 bit ahab (1 processor) x86
// Note: 3 slaves synchronized (1 sec).
report processors
hosts/processors arch CPU(s) %idle free RAM process size
---------------- ------- ----------- ----- ------------ ------------
ace (master) x86 2 x 2.2 GHz 91% 8601.03 MB 20.07 MB
nemo 1 x86 2 x 2.0 GHz 49% 160.04 MB 18.77 MB
2 18.77 MB
ahab 1 x86 1 x 1.7 GHz 26% 257.35 MB 18.77 MB
master and 3 processors running.
Example 2
The following example spawns two more slave processes on host machine nemo, which is two
more than the number of processors on that machine:
add processors nemo:2
// Note: Now using 4 CPUs on nemo (2 exist).
// Note: Acquired 1 new slave license, for a total of 2.
// Note: Spawning processes:
// 32 bit nemo (2 processors) x86
// Note: 2 slaves synchronized (1 sec).
Note
You can run more processes on a host machine than the number of available processors
on that machine, but this is not recommended, as not all of the processes can run
concurrently.
Example 3
The following example specifies to distribute the processing load among any two available SGE
processors running Linux:
add processors sge:2 -filter linux
// Note: Acquired 1 slave license.
// Note: Spawning processes:
// 32 bit grid05 (2 processors) x86-64
// Note: 2 slaves synchronized (0 sec).
Related Commands
Delete Processors Run
Report Processors Set Distributed
Related Commands
Add Scan Groups Report Scan Chains
Delete Scan Chains
Related Commands
Add Scan Chains Report Scan Groups
Delete Scan Groups
Arguments
• 0
A literal that ties the floating nets or pins to logic 0 (low to ground).
• 1
A literal that ties the floating nets or pins to logic 1 (high to voltage source).
• X
A literal that ties the floating nets or pins to unknown.
• Z
A literal that ties 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 names that you specify.
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
Delete Tied Signals Setup Tied Signals
Report Tied Signals
Alias
Scope: All modes
Usage
ALIas [synonym {!unix_command; | tool_command; | alias_synonym;}…]
Description
Specifies the shorthand name for a Fault Simulation command, UNIX command, or existing
command alias, or any combination of the three.
Issuing the Alias command with no arguments will list the current aliased commands. If you
specify a shorthand name (synonym) and one of the command types, that shorthand name can
substitute for the command and any arguments that 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, you can parameterize the command strings by using the formal parameters, $1
through $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 provide an optional file, .lbistarchitect_startup, that contains commands that you
want 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 order of
precedence:
1. The directory pointed to by the MGCDFT_STARTUP environment variable
2. The local invocation directory
3. Your home directory
The first startup file the tool encounters is the only one it executes if you have startup files in
multiple locations. If the tool does not locate a tool_specific startup file, it searches the same
locations for the generic startup file, .mgcdft_startup.
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). Repeated commands must be separated by semicolons.
!unix_command — An optional, repeatable string that consists of any well-formed
UNIX command, with its arguments, or a UNIX 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 Fault
Simulation command and its arguments.
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 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
Related Commands
System Dofile
History
Command Summary
If the -Verbose option is specified, the tool issues messages that indicate why certain control
signals are not reported. 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. By default, all control signals are only
reported.
Note
This command will perform the flattening process automatically, if executed prior to
performing flattening.
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 the 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
// command: analyze control signals -reports_only -verbose
------------------------------------------------------------------------
// Begin control signals identification analysis.
------------------------------------------------------------------------
// Warning: Clock line of ‘/cc01/tim_cc1/add1/post_latch_29/WRITEB_reg/r/
(7352)’ is uncontrolledat ‘/IT12 (4)’.
...
...
...
// Identified 2 clock control primary inputs.
// /IT23 (5) with off-state = 0.
// /IT12 (4) with off-state = 0.
// Identified 0 set control primary inputs.
// Identified 1 reset control primary inputs.
// /IRST (1) with off-state = 0.
// Identified 0 read control primary inputs.
// Identified 0 write control primary inputs.
-----------------------------------------------------------------------
// Total number of internal lines is 105 (35 clocks, 35 sets , 35 resets,
0 reads, 0 writes).
// Total number of controlled internal lines is 25 (17 clocks, 0 sets ,
8 resets, 0 reads, 0 writes).
// Total number of uncontrolled internal lines is 80 (18 clocks, 35 sets,
27 resets, 0 reads, 0 writes).
// Total number of added primary input controls 0 (0 clocks, 0 sets ,
0 resets, 0 reads, 0 writes).
-----------------------------------------------------------------------
Related Commands
Add Clocks Report Clocks
Related Commands
Add Chain Masks Report Chain Masks
Delete Clocks
Scope: Setup mode
Prerequisites
You can only delete primary input pin names added with the Add Clocks command.
Usage
DELete CLocks primary_input_pin [-Internal]... | -All
Description
Removes primary input pins from the clock list.
The Delete Clocks command deletes primary input pins from the clock list. If you delete an
equivalence pin, the command also deletes all of the equivalent pins from the clock list.
Arguments
• primary_input_pin
A repeatable string that specifies the primary input pins that you want to delete from the
clock list.
• -Internal
An optional argument that deletes the internal clocks added with the Add Clocks ... -Internal
command. If you omit this arguement, then the tool only deletes the PI clocks.
• -All
A switch that deletes all pins from the clock list.
Examples
The following example deletes an incorrectly added clock from the clock list:
add clocks 1 clock1
add clocks 1 clock2
delete clocks clock1
Related Commands
Add Clocks Report Clocks
Delete Faults
Scope: Fault and Good modes
Prerequisites
You must add faults with the Add Faults or Load Faults commands before you can delete them.
Usage
Stuck/Toggle Faults Usage:
DELete FAults {-All | -Class class_type… | object_expression… [-PIn | -Instance]}
[-Stuck_at [01 | 0 | 1]] {[-CLOCK_Domains {ALL | clock_pathname…}
[-NO_EQUivalent_clocks]] | [-CAPture_procedures {ALL |
capture_procedure_name…}]}} | {[-SCAN_Enable] [-CLOCK_Cones] [-IO]
[-ASYnchronous_controls]} [-VERbose] [{> | >>} file_pathname]
Description
Removes faults from the current fault list.
The Delete Faults command deletes faults from the fault list added using the Add Faults
command or the Load Faults command.
You can optionally specify faults with a specific stuck-at value. If you do not specify a stuck-at
value when deleting a fault, the command deletes both the “stuck-at-0” and “stuck-at-1” faults
from the fault list.
When you issue this command, the tool discards all patterns in the current test pattern. To save
the current test patterns you must explicitly save them with the Save Patterns command prior to
issuing the Delete Faults command.
Arguments
• -All
A switch that deletes all faults in the current fault list.
• object_expression
A string representing a list of instances or pins, whose faults the tool should delete from the
current fault list. 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.
Instance pathnames must be ATPG library cell instances. 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 faults for 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 faults for all the pins on the instances matched.
• -Class class_type
An optional switch and repeatable literal pair that specifies to delete one or more classes of
faults. The class_type argument can be either a fault class code or a fault class name.
• -Stuck_at 01 | 1 | 0
An optional switch and literal pair that specifies the stuck-at values which you want to
delete. The valid stuck-at literals are as follows:
01 — A literal that deletes both of the “stuck-at-0” and “stuck-at-1” faults. This is the
default.
0 — A literal that only deletes the “stuck-at-0” faults.
1 — A literal that only deletes the “stuck-at-1” faults.
• -CLOCK_Domains {ALL | clock_pathname…}
An optional switch and literal or repeatable string pair that specifies a list of clocks and
directs the tool to delete faults that are potentially detectable using any of the specified
clocks (or equivalent clocks). For a transition fault to be potentially detectable, it must be
detectable when the same clock (one of the specified clocks or an equivalent) is used for
launch and capture. Any other type of fault must be detectable when one of the specified
clocks or equivalents is used as the capture clock. The argument choices are as follows:
ALL — A literal that specifies all the clocks in the design.
clock_pathname — A repeatable string that specifies a particular clock.
Be aware that a fault potentially detectable by a clock you specify with this switch will be
deleted even if it might also be detectable by an unspecified clock.
• -NO_EQUivalent_clocks
An optional switch that prevents the -Clock_domains switch from deleting faults in
equivalent clock domains.
• -CAPture_procedures {ALL | capture_procedure_name…}
An optional switch and literal or repeatable string pair that specifies a list of enabled named
capture procedures and directs the tool to delete faults that are potentially detectable by any
of the specified procedures. The argument choices are as follows:
ALL — A literal that specifies all enabled named capture procedures.
capture_procedure_name — A repeatable string that specifies a particular enabled
named capture procedure.
• -SCAN_Enable
An optional switch that specifies to delete faults that only fan out to the select lines of
multiplexers in the scan path. For this switch, a multiplexer is either a MUX simulation
primitive or a nonprimitive type multiplexer composed of AND and OR gates. Basically,
this switch deletes all faults that are in the fanin cone of local scan enable signals and are
dominated by them.
• -CLOCK_Cones
An optional switch that specifies to delete all faults that only fan out to clock ports,
Set/Reset ports or Read/Write control ports of memory elements, including RAM and
ROM. This switch considers any memory elements, not just scan cells.
• -IO
An optional switch that specifies to delete faults that are:
• Only controlled by PIs — To be acted on by the -IO switch, a PI either must not be
defined as a clock or, if defined as clock (or read/write control), must be constrained
off during capture.
• Only observed by POs
• -ASYnchronous_controls
An optional switch that specifies to delete all faults that only fan out to Set/Reset ports of
state elements and RAMs. Notice that this switch applies to a subset of the faults the
-CLOCK_Cones switch deletes.
• -VERbose
By default when you specify wildcard characters for instance (-INstance) or pin (-PIN)
names, the tool outputs a summary message similar to the following:
// Note: Adding faults for 330 fault sites.
When you specify the optional -VERbose switch, then the tool outputs the instance or pin
names instead of the summary. You can optionally redirect this output to a file using the >
or >> redirection operators.
If you use actual instance or pin names instead of wildcards, then this switch has no effect.
• > 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 deletes a stuck-at-0 fault from the current fault list after adding all the
faults to the circuit, but before performing a BIST simulation:
Related Commands
Add Faults Report Faults
Load Faults Set Fault Mode
Save Patterns Write Faults
Related Commands
Add LFSR Connections Report LFSR Connections
Related Commands
Add LFSR Taps Setup LFSRs
Report LFSRs
Delete LFSRs
Scope: Setup mode
Prerequisites
You must define LFSRs with the Add LFSRs command before you can delete them.
Usage
DELete LFsrs lfsr_name… | -All
Description
Removes the specified Linear Feedback Shift Registers (LFSRs).
The Delete LFSRs command deletes LFSRs defined with the Add LFSRs command. You can
use the Report LFSRs command to display a list of the current LFSRs with their current values
and tap positions. When you delete an LFSR, the tool also deletes all its taps and pin
connections.
Arguments
• lfsr_name
A repeatable string that specifies the reference names of the LFSRs that you want to
remove.
• -All
A switch that deletes all defined LFSRs.
Examples
The following example changes the definition of an LFSR by deleting it and then re-adding it
with a new definition:
add lfsrs lfsr1 prpg 5 15 -serial -in
add lfsrs lfsr2 prpg 5 13 -serial -in
add lfsrs lfsr3 prpg 5 11 -parallel -out
delete lfsrs lfsr3
add lfsrs lfsr3 prpg 5 11 -parallel -in
Related Commands
Add LFSRs Setup LFSRs
Report LFSRs
Related Commands
Add MTPI Controller Related Commands
Add MTPI Output
Delete MTPI Output
Related Commands
Add MTPI Controller Related Commands
Add MTPI Output
Delete MTPI Controller
Delete Nofaults
Scope: Setup mode
Usage
DELete NOfaults {-All | {modulename -Module} | {object_expression… [-PIN | -Instance]}}
[-Stuck_at {01 | 0 | 1}] [-Class {User | System | Full}] [-VERbose] [{> | >>} file_pathname]
Description
Removes the nofault settings from either the specified pin or instance/module pathnames.
The Delete Nofaults command deletes the nofault settings 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.
You can also optionally specify nofault settings that have a specific class code: user-defined,
system netlist, or both. If you do not specify a class code, then the command deletes the nofault
setting from the user class.
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.
• objection_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 which you want to
delete. The valid stuck-at literals are as follows:
01 — A literal that deletes both the “stuck-at-0” and “stuck-at-1” nofault settings. This
is the default.
0 — A literal that deletes the “stuck-at-0” nofault settings.
1 — A literal that deletes the “stuck-at-1” nofault settings.
• -Class User | System | Full
An optional switch and literal pair that specifies the source (or class) of the nofault settings
which you want to delete. The valid literals are as follows:
User — A literal that deletes the user-entered nofault settings. This is the default.
System — A literal that deletes netlist-based nofault settings.
Full — A literal that deletes all the nofault settings in the user and system classes.
• -VERbose
By default when you specify wildcard characters for instance (-INstance) or pin (-PIN)
names, the tool outputs a summary message similar to the following:
// Note: Adding faults for 330 fault sites.
When you specify the optional -VERbose switch, then the tool outputs the instance or pin
names instead of the summary. You can optionally redirect this output to a file using the >
or >> redirection operators.
If you use actual instance or pin names instead of wildcards, then this switch has no effect.
• > 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 deletes an extra nofault setting from the instance i_1007 and then adds
all faults to the circuit, thereby allowing the tool to add faults to the pin names of the i_1007
instance:
add nofaults i_1006 i_1007 i_1008 -instance
delete nofaults i_1007 -instance
set system mode fault
add faults -all
Related Commands
Add Nofaults Report Nofaults
Related Commands
Add Notest Points Report Notest Points
Related Commands
Add Output Masks Report Output Masks
FlexTest Specifics
Primary inputs that do not have any constraints use the default format of type NR, period 1, and
offset 0. You can change the default format by using the Setup Pin Constraints command.
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 deletes 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 indata2 c1
add pin constraints indata4 c1
delete pin constraints indata2
Related Commands
Add Pin Constraints Setup Pin Constraints
Report Pin Constraints
Related Commands
Add Pin Equivalences Report Pin Equivalences
Related Commands
Add Primary Inputs
Report Primary Inputs
Arguments
• net_pathname
A repeatable string that specifies the circuit connections that you want to delete. You can
specify the class of primary outputs to delete with the -Class switch.
• primary_output_pin
A repeatable string that specifies a list of primary output pins that you want to delete. You
can specify the class of primary outputs to delete with the -Class switch.
• -All
A switch that deletes all primary outputs. You can specify the class of primary outputs to
delete with the -Class switch.
• -Class User | System | Full
An optional switch and literal pair that specifies the class code of the primary output pins
that you specify. The valid literal names are as follows:
User — A literal specifying that the list of primary outputs were added using the Add
Primary Outputs command. This is the default class.
System — A literal specifying that the list of primary outputs derive from the netlist.
Full — A literal specifying that the list of primary outputs consists of both the user and
system class.
Examples
The following example deletes a primary output from the system class of primary outputs:
delete primary outputs outdata1 -class system
Related Commands
Add Primary Outputs
Report Primary Outputs
Delete Processors
Tools Supported: Tessent FastScan and Tessent TestKompress
Scope: All modes
Usage
DELete PROcessors [hostname[:cpus]]…
Description
Removes processor definitions previously specified with the Add Processors command for
distributable commands for fault simulation.
The Delete Processors command deletes slave processor definitions you previously specified
using the Add Processors command. When you issue the command with no arguments, the tool
discontinues all current slave processes. If you specify one or more hostname arguments, the
tool will discontinue slave processes only on the specified host machines. If you include :cpus
with hostname, the tool will discontinue only the specified number of slave processes on that
host machine. Without the :cpus, all current slave processes on that host machine are
discontinued. When specifying hostname, you must specify the network name of the machine,
even if it was originally selected by an LSF, SGE, or custom job scheduler.
Be aware that the process run by an LSF, SGE, or custom job scheduler is a script rather than
the actual slave process. If you discontinue these slave processes with the Delete Processors
command, the corresponding scripts also terminate.
Tip: Alternatively, you can end execution of the scripts by using the job scheduler
commands (SGE’s qdel, LSF’s bkill, or whatever is used by the job scheduler invoked
by the Add Processors Generic command) or a UNIX kill command. There will be a
small delay before the slave process is actually shut down to allow for the detection of the
script death and for the shutdown to be coordinated with the master process. Slave
processes shut down in this manner will appear to have died in the master process’s
transcript. This is normal behavior. Detection of script deaths occurs only during the Add
Processors, Delete Processors, and Report Processors commands. You can force
detection from the command line without other side effects by issuing the Report
Processors command with no arguments.
Arguments
• hostname
A repeatable string that specifies a host machine you previously defined with the
Add Processors command or received via a job scheduler. The hostname choices are as
follows:
machine_name — A string that specifies the host machine by its network name.
LOCALHOST — A literal that specifies the host machine is the machine on which you
invoked the tool.
report processors
hosts/processors arch CPU(s) %idle free RAM process size
---------------- ------- ----------- ----- ------------ ------------
ace (master) x86 2 x 2.2 GHz 81% 8393.52 MB 20.07 MB
ahab 1 x86 1 x 1.7 GHz 97% 229.83 MB 18.78 MB
master and 1 processor running.
Related Commands
Add Processors Run
Report Bist Capture Set Distributed
Report Processors
Related Commands
Add Scan Chains Report Scan Chains
Related Commands
Add Scan Groups Report Scan Groups
• -Pin
A switch specifying 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 Setup Tied Signals
Report Tied Signals
Dofile
Scope: All modes
Usage
DOFile filename [-History]
Description
Executes the commands contained within the specified file.
The Dofile command sequentially executes the commands contained in a specified file. 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 (//); the tool 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 line from the file before executing it. If the tool encounters an error due
to any command, the Dofile command stops its execution, 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 that you
want the tool 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, in order, all the commands from the file, command_file:
dofile command_file
Related Commands
History Set Dofile Abort
Save History
Exit
Scope: All modes
Usage
EXIt [-Force]
Description
Terminates the application tool program.
The Exit command terminates the tool session and returns to the operating system. You should
either save the current test patterns before exiting the tool or specify the -Force switch to not
save the test patterns.
If you are operating in interactive mode (not running a dofile) and you neither saved the current
test pattern set nor used the -Force option, the tool displays a warning message, and you are
given the opportunity to continue the session and save the test patterns before exiting.
Arguments
• -Force
An optional switch that explicitly specifies to not save the current test pattern set and to
immediately terminate the tool session.
Examples
The following example quits the tool without saving the current test pattern set.
set system mode good
add faults -all
run
exit -force
• -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:
Flatten Model
Scope: Setup mode
Usage
FLAtten MOdel
Description
Creates a primitive gate simulation representation of the design.
The tool automatically flattens the design hierarchy down to the logically equivalent design
when you exit Setup mode. However, there may be times that you would like to access the
flattened model without having to exit Setup mode.
Examples
The following example shows flattening the design to the simulation primitives before adding
constraints that the rule checker then uses when you run the design rule checker. The rule
checker runs when you first attempt to exit Setup mode
flatten model
add pin constraints 1 and_b_in
set system mode good
Related Commands
Add Bist Capture Set System Mode
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 Fault Simulation command. You can use
minimum typing for the command name. If you do not supply a command_name, the default
is to display a list of all the command names.
• -MANual
An optional string that specifies to also display the reference manual description for the
specified command.
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]
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. Please see the ksh(1) man page for specifics on
the various editing modes.
A leading number precedes each command line in the history list that indicates 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 most recent 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.
Examples
The following command displays the history list with leading numbers, starting with the oldest
command.
history
1 help hist
2 dof fault.do
Related Commands
Save History
Load Faults
Scope: Fault and Good modes
Usage
LOAd FAults filename
{[-ALLOW_fault_sampling] | [-RETain] | [-PROtect [-Only] [-Force]] | [-Delete] |
[-DELETE_Equivalent]} | {[-Merge [-NO_Warnings]]} [-Prefix]
Description
Updates the current fault population to include or exclude the faults contained in the specified
fault file.
The Load Faults command affects the current fault population by either adding or removing
faults which you specify in an external fault file. Because you must identify the faults before
performing a fault simulation, this command is useful when you have a large number of faults to
identify.
The format of the fault file data can be either in a three-, four-, or six-column standard format.
Regardless of the format, the Load Faults command uses only the information in the first,
second, and last columns.
The file follows the format illustrated below:
stuck fault_class (cellname) (netname) (ignore) pin_pathname
The following list describes the content of each of the columns of data:
• stuck
The first column must be the stuck-at value.
• fault_class
The second column must be the fault class value.
• cellname
The third column is the cell name enclosed in parenthesis. When present, this column
indicates the type of cell in which the fault resides.
• netname
The fourth column is the net name enclosed in parenthesis. When present, this column
indicates the net in which the fault resides.
• ignore
The fifth column is ignored.
• pin_pathname
The last column must be the pin pathname.
When you issue this command, the tool discards all patterns in the current test pattern set.
The filename specified cannot have fault information lines with comments appended to the end
of the lines or fault information lines greater than 6 columns. The tool will not recognize the line
properly and will not add the fault on that line to the faultlist.
Arguments
• filename
A required string that specifies the name of the file containing the fault list that you want to
load.
• -ALLOW_fault_sampling
An optional switch that enables fault sampling when loading faults.
By default, the Load Faults command ignores fault sampling rate data unless you specify
this switch. If the fault sampling rate is other than 100%, and you do not specify the
-ALLOW_fault_sampling switch, then the tool resets the sampling rate; for subsequent
commands, you must re-specify the sampling rate.
Note
The behavior for the -Delete or -DELETE_equiv switches remain unchanged
irrespective.
• -RETain
An optional switch that specifies for the tool to retain the fault class of each fault that is in
the fault list. This switch ensures that no DS faults are reclassified as AU faults due to the
tool’s AU analysis.
• -PROtect
An optional switch that specifies to load all faults from the external fault list file and to
protect the detected faults from manipulation by subsequent tool commands.
The tool assigns the protected faults to class DI. Use this switch when you want the tool to
generate tests only for undetected faults (stuck-at, toggle, transition, or IDDQ), yet
determine coverage statistics based on all detected faults. This switch does not apply to
bridge faults.
Note
Any fault in the tool’s current internal fault list that is identical to a protected fault being
read in also becomes protected and the tool removes it from the fault list.
Caution
If you use -Protect to turn on fault protection, be sure you no longer need the protection
before issuing a subsequent “set fault type” command. The Set Fault Type command
erases all fault information, even the information about protected faults.
-Only
An optional switch that, together with -Protect, specifies to load only the detected
faults from the external fault list file and then protect them.
In contrast to other Load Faults options, “-protect -only” does not delete the internal
pattern set. This is because the option adds and protects faults for which it assumes a
pattern set exists elsewhere (in an external pattern file, for example). It does reset the
fault classes, however, because the loaded protected faults also protect any equivalent
fault in memory and this will change the coverages. Therefore, be sure to perform a
fault simulation of the current pattern set:
set system mode fault
run
set system mode atpg
-Force
An optional switch that, together with -Protect, specifies for the tool to protect UC
faults as well as detected faults from manipulation by subsequent tool commands.
• -Delete
An optional switch that specifies for the tool to remove all the filename faults except the
protected faults from the current fault population. To delete protected faults, you must use
the Delete Faults command.
• -DELETE_Equivalent
An optional switch that specifies for the tool to remove all the unprotected filename faults
from the current fault population within the tool’s session, and to remove all the unprotected
faults that are equivalent to those in filename.
• -Merge
An optional switch that merges the loaded external faults with the internal fault list. This
allows you to combine the fault lists from different ATPG sessions. For example, if you
partition your design and run ATPG for each partition, you can get chip-level fault statistics
by merging the partition fault lists. Also, for a single design or design partition, you can run
ATPG once, then you can target more undetected faults by incrementally running ATPG
using different settings and merging fault lists. For more information, see Example 2.
If a fault being loaded does not exist in the internal fault list, it will be added to the internal
fault list.
If a fault being loaded already exists in the internal fault list, the fault class of the existing
fault will be updated to have with the highest priority fault class. For example, if the fault
being loaded has a DI class and the matching fault in the internal list has a PT class, then the
class of the fault in the internal list will be updated to DI because DI has a higher priority
than PT.
Fault classes are prioritized as follows:
1. (Highest) Untestable Faults: RE, TI, BL
2. Detected or Detectable Faults: DR > DS > DF > DI > PT > PU > OS > HY
Note
The three untestable fault classes (RE, TI, and BL) have equal priority. It is a conflict to
have a fault with more than one untestable fault class. The tool issues a warning message
if a fault being loaded has a different untestable fault class than a matching fault in the
internal fault list.
-NO_Warnings
An optional switch that suppresses warnings about conflicting untestable fault classes while
merging fault lists. If a fault being loaded has a different untestable fault class than a
matching fault in the internal fault list, the fault class defined in the internal list will be used.
• -Prefix
An optional switch that adds a string to the beginning of each pin pathname in the fault list
that is output after simulation of the LBISTed core.
When simulating the whole design, the fault list resulting from the core simulation is used to
avoid re-simulating the core inside the design. Because the fault locations in the fault list are
relative to the LBISTed core, this option instructs LBISTArchitect to append a string to each
fault that reflects the path difference between the fault location in the core and the actual
location of the core after it is instantiated in the design.
Examples
The following example adds faults to the circuit from an external tool-created fault list before
you begin a BIST simulation:
set system mode fault
load faults faultlist
run
Related Commands
Add Faults Set Fault Mode (FT)
Delete Faults Write Faults
Report Faults
Related Commands
Add Bist Capture
Command Summary
Related Commands
Add Chain Masks Delete Chain Masks
Report Clocks
Scope: All modes
Usage
REPort CLocks [-Display {DEBug | DESign | DAta | ALl}] [-Internal] [{> | >>} file_pathname]
Description
Displays a list of all the primary input pins currently in the clock list.
The Report Clocks command displays a list of all clocks specified using 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.
• -Internal
An optional argument that reports the internal clocks added with the Add Clocks ... -Internal
command. If you omit this arguement, then the tool only reports the PI clocks.
• > 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 adds two clocks to the clock list and then displays a list of the clocks:
add clocks 1 clk1
add clocks 0 clk0
report clocks
Related Commands
Add Clocks Delete Clocks
Analyze Control Signals
You can use the Set Drc Handling command to change the handling of many of the A (RAM), B
(BIST), C (clock), D (data), E (extra), T (trace), and W (timing) rules.
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’s default.
Note
This switch does not display anything if there are no rule violations, or if the tool has not
yet performed DRC.
• -Summary
A switch that specifies to display a summary report that varies depending on whether you
are reporting on all design rules or just on the D5 rule.
When you report on all rules (Report Drc Rules -Summary), the following is reported 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
When you report on just the D5 rule (Report Drc Rules D5 -Summary) the tool displays the
number of non-scan memory elements of each type (INIT-0, INIT-1, INIT-X, TIE-0, TIE-1,
TIE-X or TLA) that resulted in a D5 violation during DRC. Refer to the description of the
-Type switch for the meaning of the types.
• 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 rules and their IDs divide into the following seven groups: A (RAM), B (BIST),
C (clock), D (data), E (extra), T (trace), and W (timing).
• 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.
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)
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 displays a summary of the rules that resulted in violations during an
attempted run:
report drc rules
C3: #fails=2 handling=warning (clock may capture data affected by its
captured data)
C5: #fails=1 handling=error (clock is connected to multiple ports of same
latch)
C7: #fails=19 handling=warning (scan cell capture ability check)
C8: #fails=2 handling=warning (PO connected to a clock line)
C9: #fails=2 handling=warning (PO connected to a clock line gated by scan
cell that uses same clock)
D5: #fails=23 handling=warning (non-scan memory element)
D6: #fails=22 handling=warning (non-transparent non-scan latches)
D7: #fails=22 handling=warning (stable high edge-triggered clock ports)
This example displays the occurrence message for the two C3 violations, and the first C7, and
first D7 violation reported in the preceding example:
report drc rules c3 c7-1 d7-1
// Warning: Clock /sgst failed rule C3 on input 3 of /sp_b_i0.latch
(1501). (C3-1)
// Source of violation: input 3 of /sp_c_i1.slave (1482).
// Warning: Clock /sgst failed rule C3 on input 3 of /sp_c_i0.latch
(1527). (C3-2)
// Source of violation: input 3 of /sp_c_i1.slave (1482).
// Warning: Clock input 5 of /c8.master (1495) cannot capture data
with single clock on. (C7-1)
// Warning: Flipflop /FF1 (103) has clock port set to stable high. (D7-1)
The next example displays a summary of the non-scan memory elements that resulted in D5
rule violations:
report drc rules d5 -summary
// --------------------------------------------------------------------
// 44 non-scan memory elements are identified.
// --------------------------------------------------------------------
// 9 non-scan memory elements are identified as TIE-0. (D5)
// 2 non-scan memory elements are identified as TIE-1. (D5)
// 5 non-scan memory elements are identified as TIE-X. (D5)
// 3 non-scan memory elements are identified as INIT-0. (D5)
// 11 non-scan memory elements are identified as INIT-1. (D5)
// 4 non-scan memory elements are identified as INIT-X. (D5)
// 10 non-scan memory elements are identified as TLA. (D5)
// --------------------------------------------------------------------
The next example displays details about the preceding example’s D5 violations that occurred on
non-scan memory elements the tool identified as type INIT-X:
report drc rules d5 -type ix
// Warning: /U1 (78) is a non-scan flip-flop identified as INIT-x.(D5-1)
// Warning: /U6 (56) is a non-scan flip-flop identified as INIT-x.(D5-7)
// Warning: /U7 (82) is a non-scan flip-flop identified as INIT-x.(D5-8)
// Warning: /U9 (11) is a non-scan latch identified as INIT-x.(D5-9)
// Number of non-scan memory elements reported = 4.
The next example displays the information for just the INIT-X non-scan latch:
report drc rules d5 -type ix -level_sensitive
// Warning: /U9 (11) is a non-scan latch identified as INIT-x.(D5-9)
// Number of non-scan memory elements reported = 1.
You could obtain the same information using the -Notype switch:
report drc rules d5 -notype i1 i0 tx t1 t0 tla -level_sensitive
// Warning: /U9 (11) is a non-scan latch identified as INIT-x.(D5-9)
// Number of non-scan memory elements reported = 1.
Related Commands
Set Drc Handling
Report Environment
Scope: All modes
Usage
REPort ENvironment [{> | >>} file_pathname]
Description
Displays the current values of all the “set” commands.
When you first invoke the tool, the Report Environment command shows all of the default
values for the “set” commands. By default, the output of the command is written to the
transcript window of the tool.
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 shows the current conditions under which the tool tests the circuit, then
performs a simulation run:
set system mode fault
add faults -all
report environment
run
The output from the Report Environment command may look like the following:
abort limit = 30/50
atpg compression = OFF
bist initialization = 0
capture clock = none
checkpoint = OFF
clockpo patterns = ON
clock restriction = clock_po
contention check = ON, mode = bus, handling = warning
fails report = OFF
fault mode = uncollapsed
fault type = stuck
gate level = design
gate report = normal
learn reporting = OFF
Related Commands
All SET commands
Report Failures
Scope: Good and Fault modes
Prerequisites
You must specify the current pattern source with the Set Pattern Source command.
Usage
REPort FAIlures [pin_pathname -Stuck_at {0 | 1}] [-Max integer] [-Pdet]
[{> | >>} file_pathname]
Description
Displays the failing pattern results.
The Report Failures command performs either a good simulation or a fault simulation
depending on whether you provide any arguments. If you issue the command without any
arguments, the command performs a good machine simulation. If you specify a pin and a stuck-
at value, the command performs a fault simulation for those values. In either case, the command
uses the current pattern source (except pseudorandom patterns) and displays information on any
failing patterns. The command presents the failing patterns information in “scan test” and
“chain test” format as follows:
• “scan test” — For a failing response that occurs during the parallel measure of the
primary outputs, the command displays the following two columns:
o The test pattern number that causes the failure.
o The pin name of the failing primary output.
• “chain test” — For a failing response that occurs during the unloading of the scan chain,
the command displays the following three columns:
o The test pattern number that causes the failure.
o The name of the scan chain where the failing scan cell is located.
o The position in the scan chain of the failing scan cell. This position is 0- based, and 0
position is the scan cell closest to the scan-out pin.
You use this command primarily for diagnostics.
Arguments
The Report Failures command requires that you, at minimum, either provide no arguments or
provide the pin_pathname and -Stuck_at value. If you choose to provide the pin_pathname and
-Stuck_at value, you can further modify the command’s behavior by adding the -Max and -Pdet
switches.
• pin_pathname -Stuck_at 0 | 1
A string paired with a switch and literal pair that specifies both the location and the value of
the fault that you want to check for failing patterns. The following describes each of the
arguments in more detail:
pin_pathname — A string that specifies the pin pathname of the fault whose failing
patterns you want to identify.
If you do not specify a pin_pathname, the command performs a “good” machine
simulation. You can use this good machine simulation to check that the measured
values from the test patterns are consistent with simulated values. Any columnar
failing patterns results indicate a mismatch.
-Stuck_at 0 | 1 — A switch and literal pair specifying the stuck-at values that you want
to simulate. The stuck-at literal choices are as follows:
0 — A literal that specifies to simulate the “stuck-at-0” fault.
1 — A literal that specifies to simulate the “stuck-at-1” fault.
• -Max integer
An optional switch and integer pair specifying the maximum number of failing patterns that
you want to occur on the specified fault before the command stops the simulation. The
default is: all failing patterns.
To use this option, you must also specify the pin_pathname and -Stuck_at value.
• -Pdet
An optional switch that specifies reporting of possible detections in addition to the binary
detections for the specified fault. The default is: report only the binary detections.
To use this option, you must also specify the pin_pathname and -Stuck_at value.
• > 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 all failing pattern results from the simulation of a fault using an
external test pattern set:
set system mode good
set pattern source external file1
report failures i_1006/i1 -stuck_at 1
4 /D_OUT(0)
4 chain1 3
6 /D_OUT(0)
7 /D_OUT(0)
7 /D_OUT(1)
7 chain1 3
.
.
.
29 /D_OUT(1)
29 /D_OUT(2)
29 chain1 0
29 chain1 3
31 /D_OUT(1)
31 /D_OUT(2)
// failing_patterns=15 simulated_patterns=36
fault_simulation_time=0.00 sec
Related Commands
Set Pattern Source
Report Faults
Scope: Fault and Good modes
Usage
Stuck/Toggle Faults Usage:
REPort FAults [-Class class_type] [-Stuck_at {01 | 0 | 1}] [-All | object_pathname…]
[-Hierarchy integer [-Min_count integer]] [-Noeq] [-VErilog] [-CLOCK_Domains {ALL |
clock_pathname…} [-NO_EQUivalent_clocks]] [-CAPture_procedures {ALL |
capture_procedure_name…}]} | {[-SCAN_Enable] [-CLOCK_Cones] [-IO]
[-ASYnchronous_controls]} [{> | >>} file_pathname]
Description
Displays fault information from the current fault list.
The Report Faults command displays faults from the fault list added using the Add Faults or the
Load Faults commands. You can use the optional arguments to narrow the focus of the report to
only specific stuck-at faults that occur on a specific object in a specific class. If you do not
specify any arguments, Report Faults displays information on all the known faults.
The Report Faults command displays the following three columns of information for each fault:
• fault value - The fault value may be either 0 (for stuck-at-0) or 1 (for stuck-at-1).
• fault code - A code name that indicates the lowest-level fault class assigned to the fault.
• fault site - The pin pathname of the fault site.
You can use the -Hierarchy option to display a hierarchical summary of the selected faults. The
summary identifies the number of faults in each level of hierarchy whose level does not exceed
the specified level number. You can further specify the hierarchical summary by using the
-Min_count option which specifies the minimum number of faults that must be in a hierarchical
level before the tool displays them.
You may select to display either collapsed or uncollapsed faults by using the Set Fault Mode
command. Also, some fault data is large and it would be more appropriate to use the Write
Faults command, and then read the file contents.
Arguments
• -Class class_type
An optional switch and literal pair that specifies the class of faults that you want to display.
The class_type argument can be either a fault class code or a fault class name.
Table 4-4 lists the valid fault class codes and their associated fault class names; use either
the code or the name when specifying the class_type argument:
Table 4-4. Fault Class Codes and Names
Fault Class Codes Fault Class Names Fault Class
Coverage
FU Full TE+UT
TE TEstable DT+PD+OS+
HY+AU+UD
DT DETEcted DS+DI+DR
DS DET_Simulation
DI DET_Implication
PD POSDET PT+PU
PU POSDET_Untestable
PT POSDET_Testable
OS OSCIllatory (FlexTest Only) OU+OT
OU OSC_Untestable
OT OSC_Testable
HY HYPErtrophic (FlexTest Only) HU+HT
HU HYP_Untestable (FlexTest Only)
HT HYP_Testable (FlexTest Only)
UI Uninitializable (FlexTest Only)
AU Atpg_untestable
UD UNDetected UC+UO
UC UNControlled
UO UNObserved
UT UNTestable UU+TI+BL+RE
UU UNUsed
TI TIed
BL Blocked
RE Redundant
• -Stuck_at 01 | 0 | 1
An optional switch and literal pair that specifies the stuck-at faults that you want to display.
The stuck-at literal choices are as follows:
01 — A literal that displays both the “stuck-at-0” and “stuck-at-1” faults. This is the
default.
0 — A literal that displays the “stuck-at-0” faults.
1 — A literal that displays the “stuck-at-1” faults.
• -All
An optional switch that displays all of the faults on all model, netlist primitive, and top
module pins. This is the default.
• object_pathname
An optional repeatable string that specifies a list of pins or instances whose faults you want
to display.
• -Hierarchy integer
An optional switch and integer pair that specifies the maximum hierarchy level for which
you want to display a summary of the faults.
• -Min_count integer
An optional switch and integer pair that you can use with the -Hierarchy option to specify
the minimum number of faults that must be in a hierarchical level to display the hierarchical
summary. The default is 1.
• -Noeq
An optional switch that displays the fault class of equivalent faults. When you do not
specify this switch, the tool displays an “EQ” as the fault class for any equivalent faults.
• -Verilog
An optional switch that outputs the fault paths in Verilog syntax, rather than using the
existing netlist independent format.
• -CLOCK_Domains {ALL | clock_pathname…}
An optional switch and literal or repeatable string pair that specifies a list of clocks and
directs the tool to report only faults that are potentially detectable using any of the specified
clocks (or equivalent clocks). For a transition fault to be potentially detectable, it must be
detectable when the same clock (one of the specified clocks or an equivalent) is used for
launch and capture. Any other type of fault must be detectable when one of the specified
clocks or equivalents is used as the capture clock. The argument choices are as follows:
ALL — A literal that specifies all the clocks in the design.
clock_pathname — A repeatable string that specifies a particular clock.
Be aware that a fault reported using this switch might also be detectable by an unspecified
clock.
• -NO_EQUivalent_clocks
An optional switch that prevents the -Clock_domains switch from reporting faults in
equivalent clock domains.
Related Commands
Add Faults Set Fault Mode
Delete Faults Write Faults
Load Faults
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.
• > 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 for appending to the contents of
file_pathname.
Examples
The following example leaves the Setup mode (which, among other abilities, flattens the
simulation model and performs the learning process) and displays the identification numbers of
any learned feedback paths:
set system mode fault
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)
Report Gates
Scope: All modes
Prerequisites
Although you can use this command in all modes, you can use it in the Setup mode only after
the tool flattens the netlist. This happens when you first attempt to exit Setup mode or when you
issue the Flatten Model command.
Usage
REPort GAtes {gate_id# | pin_pathname | instance_name}…
[-Type {gate_type}] [{-Sequential_test_depth | -0Control_depth |
-1Control_depth | -Observe_depth} depth_number]
[-Path {pin_pathname | gate_id} {pin_pathname | gate_id}]
[[-Endpoints] [-COnstraint] [-Forward | -Backward]
{pin_pathname | gate_id}…]
[{> | >>} file_pathname]
Description
Displays the netlist information and simulation results for the specified gates and the simulation
results.
The Report Gates command displays the netlist information for either the design-level or the
primitive-level gates you specify. You designate the gate by its gate identification number
(ID#), a pathname of a pin connected to a gate, an instance name (design level only), or a gate
type. You can specify a design cell by the pathname of a pin on the design cell. If you use a gate
ID# or gate type, the command always reports the primitive-level gate. You must flatten the
netlist before issuing this command.
The pin_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 report is:
instance_name cell_type
input_pin_name I (data) pin_pathname...
...
output_pin_name 0 (data) pin_pathname...
...
The list associated with the input and output pin names indicate the pins to which they connect.
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 also report the fan-in or fan-out cone of a specified gate with the Report Gates
command. The endpoints of a cone are defined as the primary inputs, primary outputs, tied
gates, rams, roms, flip-flops, and latches. All gates reported are at the primitive level.
You can change the output of the Report Gates command by using the Set Gate Report
command.
You must flatten the netlist before issuing this command.
The last group of data is more specialized. Its contents depend on the capture clock being set
with the Set Capture Clock command. The starting state for this simulation results from
simulating the events of the test setup procedure, followed by the load_unload procedure and its
apply procedures (shift and shadow_control).
procedure load_unload =
force clk 0 0;
force rst 0 0;
force sen 1 0;
apply shift 7 1;
period 3;
end;
rep ga clk
// /CLK primary_input
// CLK O (0)(0X0)(0)(X)
The first (0) is the simulation of the events in the load_unload procedure prior to the
apply shift, (0X0) is the simulation of the shift procedure, (0) is the simulation of the
events in the load_unload after the shift, and finally (X) is the simulation of the clocks at
X.
• Case 2: Capture Clock Specified
There will be 3 or 4 values in the last pair of ()s. The first three values result from
simulating a pulse of the specified capture clock with all other clocks set to the off value.
If any state element has a different binary value than the one it had at the end of
simulation test setup, its value is changed to X, the effect is propagated, and the final
values are saved in the fourth value between the ()s.
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 (269) LA
// "S" I 14-
// "R" I 145-
// SCLK I 4-/clk
// D I 265-/u1/_g32/X
// ACLK I 2-/scan_mclk
// SDI I 20-/u1/inst__565_ff_d_0__dff/Q2
// "OUT" O 26- 27-
SETUP> b
// /u1/inst__565_ff_d_1__13 (14) TIE0
// "OUT" O 269- 268-
When using the B and F commands, all arguments must be given at the primitive level.
For pins that are not at the library cell boundary (pins internal to the model), the pin name is
enclosed in (“). The following example displays this issue.
FAULT> set gate leve prim
FAULT> rep gate /I_20/I_226/q
// /I_20/I_226 dffsr
// clk I (HX) /I_20/I_225/out
// d I (X) /I_20/I_222/out
// pre I (H1) /PRE
// clr I (H1) /CLR
// q O (X) /I_16/i0 /I_23/I_221/i0 /I_6/i0
// qb O (X)
FAULT> b
// /I_20/I_226 (39) DFF
// "S" I (LX) 26-
// "R" I (LX) 23-
// clk I (HX) 20-/I_20/I_225/out
// d I (X) 36-/I_20/I_222/out
// "OUT" O (0) 12- 13-
// MASTER cell_id=1 chain=c1 group=g1 invert_data=FFFF
The following example shows how to use Report Gate and F commands to trace forward
through the first fanout of the previously reported gate.
SETUP> f
// /u1/inst__565_ff_d_1__13 (26) BUF
// "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-
When using the B and F commands, all arguments must be given at the primitive level.
When using LBISTArchitect to report on RAM or ROM gates, the Report Gates command
displays the RAM and ROM data that describes their behavior. The RAM and ROM simulation
primitives are the same as the library primitives with the outputs being OUT gates in the
RAM/ROM fanout list. The command gives RAM behavior summary information at the end of
the displayed data. The report displays the following messages:
write port: write=G/G (vvv-v-v) first_adr=G first_di=G stability=vv
read port: read=G/G (vvv-v-v) first_adr=G first_do=G stability=vv
Test behavior: Stability=vvvv tiex_flag=v read_only_flag=v
ramseq_flags=v/v(vv)
Contention Behavior: write_write=v/v read_read=v read_write=v/v
The following describes the fields for the write port message line:
The following describes the fields for the read port message line:
The following describes the fields for the Test behavior message line:
The following describes the fields for the Contention Behavior message line:
Arguments
The following lists the three methods for naming the objects on which you want the tool to
display gate information. You can use any number of the three argument choices, in any order.
• gate_id# — A repeatable integer that specifies the gate identification numbers of the
objects. The value of the gate_id# argument is the unique identification number that the tool
automatically assigns to every gate within the design during the model flattening process.
• pin_pathname — A repeatable string that specifies the names of pins within the design.
• instance_name — A repeatable string that specifies the top-level boundary instance names
within the design. This is used for the design level only.
• -Type gate_type
A repeatable switch where gate_type is a name pair that specifies the gate types for which
you want to display the gate information. Table 4-5 lists the supported types for each tool.
Table 4-6 lists the valid clock port categories.
• -Forward {pin_pathname | gate_id}
An optional switch and repeatable string or integer pair that reports the fan-out cone of the
specified gate.
• -Backward {pin_pathname | gate_id}
An optional switch and repeatable string or integer pair that reports the fan-in cone of the
specified gate.
• -Endpoints [-Forward | -Backward] {pin_pathname | gate_id}
An optional switch and repeatable string or integer pair that reports only the endpoint of the
cone.
Note
Immediately after -Endpoints, you must specify either -Forward or
-Backward followed by the specified gate. When using -Endpoints or -COnstraint
simultaneously, -Forward or -Backward followed by the specified gate need only be
entered once.
Note
Immediately after -Constraint, you must specify either -Forward or
-Backward followed by the specified gate. When using -Endpoints or -COnstraint
simultaneously, -Forward or -Backward followed by the specified gate need only be
entered once.
Examples
The following example displays the simulated values of the gate and its inputs at the primitive
level:
set system mode fault
set gate report error_pattern
set gate level primitive
report gates i_1006/o
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 gate report for the primitive level may look like the following:
/P2.13P (23) NAND
A I 9-/LD.1
B I 6-/M1.1
Z O 33-/P2.2P/S
The gate report for the primitive level of a RAM gate may look like the following:
// /P1.RAM/U1 (67) RAM
// "I0" I 27-
// "I1" I 20-
// RCK0 I 36-
// "I3" I
26-
// "I4" I
42-
// "I5" I
43-
// "I6" I
44-
// "I7" I
45-
// "I8" I
46-
// WCK0 I
28-
// "I10" I
19-
// A14 I
29-
// A13 I
30-
// A12 I
31-
// A11 I
32-
// A10 I
34-
// D14 I
66-/P1.RAM/D1[0]
// D13 I
65-/P1.RAM/D1[1]
// D12 I
64-/P1.RAM/D1[2]
// D11 I
63-/P1.RAM/D1[3]
// D10 I
62-/P1.RAM/D1[4]
// "OUT" O
68- 69- 70-
// 71- 72-
// address size = 5
// data size = 5
// minimum address = 0
// maximum address = 31
// number write ports = 1
// number read ports = 1
// edge_triggered = no
// initialization file = ram.init_file
// write port: write=28/- (H) first_adr=29 first_di=66 stability=SS
// read port: read=36/- (0) first_adr=42 first_do=68 stability=SS
// Test behavior: stability=SSSS tiex_flag=0 read_only_flag=1
// ramseq_flags=1/0(00)
// Contention behavior: write_write=allow/X read_read=normal
// read_write=read_new/write_normal
Related Commands
Set Gate Report
Related Commands
Add LFSR Connections Delete LFSR Connections
Report LFSRs
Scope: All modes
Usage
REPort LFsrs [ -Binary | -Hexadecimal ] [{> | >> }file_pathname]
Description
Displays a list of definitions for all the current Linear Feedback Shift Registers (LFSRs).
The Report LFSRs command displays all of the LFSRs with their current values and tap
positions, which you specified using the Add LFSRs and Add LFSR Taps commands.
Arguments
• -Binary
An optional switch that specifies to report all values in binary format. This is the default.
• -Hexadecimal
An optional switch that specifies to report all values in hexadecimal format.
• > 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 for appending to the contents of
file_pathname.
Examples
The following example displays the definitions of all the current LFSRs:
add lfsrs lfsr1 prpg 5 15 -serial -in
add lfsrs lfsr2 prpg 5 13 -serial -in
add lfsrs misr1 misr 5 11 -parallel -in
report lfsrs
The following example displays the definitions of all the current LFSRs in hexadecimal format
and appends them to the file named report_hex:
Related Commands
Add LFSRs Set LFSR Seed
Add LFSR Taps Setup LFSRs
Delete LFSRs
Report Loops
Scope: All modes
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.
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
• > 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 for appending to the contents of
file_pathname.
Examples
The following example lists all the loops in the circuit:
report loops
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
Related Commands
Add MTPI Controller Delete MTPI Output
Add MTPI Output
Delete MTPI Controller
Report Nofaults
Scope: All modes
Usage
REPort NOfaults pathname… | -All [-Instance] [-Stuck_at {01 | 0 | 1}] [-Class {Full | User |
System}] [{> | >>} file_pathname]
Description
Displays the nofault settings for the specified pin pathnames or pin names of instances.
The Report Nofaults command displays for pin pathnames or pin names of instances the nofault
settings which 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 displays 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 which you
want to display. The stuck-at literal choices are as follows:
01 — A literal that displays both the “stuck-at-0” and “stuck-at-1” nofault settings. This
is the default.
0 — A literal that displays only the “stuck-at-0” nofault settings.
1 — A literal that displays only the “stuck-at-1” nofault settings.
• -Class Full | User | System
An optional switch and literal pair that specifies the source (or class) of the nofault settings
which you want to display. The literal choices are as follows:
Full — A literal that displays all the nofault settings in the user and system class. This is
the default.
User — A literal that displays only the user-entered nofault settings.
System — A literal that displays only the netlist-described 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 Notest Points Delete Notest Points
Related Commands
Add Output Masks Delete Output Masks
Related Commands
Add Pin Constraints Setup Pin Constraints (FT)
Delete Pin Constraints
Related Commands
Add Pin Equivalences Delete Pin Equivalences
Examples
The following example displays the full classes of primary inputs:
add primary inputs indata2 indata4
report primary inputs -class full
Related Commands
Add Primary Inputs
Delete Primary Inputs
Examples
The following example displays all primary outputs in the user class:
add primary outputs outdata1 outdata3 outdata5
report primary outputs -class user
Related Commands
Add Primary Outputs Delete Primary Outputs
Report Processors
Tools Supported: Tessent FastScan and Tessent TestKompress
Scope: All modes
Usage
REPort PROCESsors [-Verbose]
Description
Displays information about the current distributed processing environment when executing
distributed commands for fault simulation.
The Report Processors command displays the information listed in Table 4-7 for the current
distributed processing environment:
Table 4-7. Default Report Processors Information Display
Column Name Description
hosts/processors Network names of host machines, along with an identification
number for each slave process
arch Architecture of host machines (similar to entering “uname -m”
on each host)
CPU(s) Number of hardware processors and their speed for each host
machine
%idle Current CPU idle percentage (a small interval of time is
sampled)
free RAM A machine’s total free memory
process size Size of the master or slave process
This information enables you to determine whether to use the current set of host machines for
slave processes or whether to use different machines. For example, a host machine with a low
%idle is not as likely to provide as much CPU time to slave processes as one that is 100% idle.
The free RAM may also help you decide which machines to avoid at the present time.
Note
Be sure to consider the number of processors on the host machine when evaluating the
idle percentage (%idle), as a partially idle machine may have one or more completely idle
processors available to run slave processes.
Arguments
• -Verbose
An optional switch that adds the data listed in Table 4-8 to the normal display:
Note
Mentor Graphics engineers have observed that on certain 64-bit X86 platforms, processes
that should be idle place a small load on the machine. You can see this effect in the
reported CPU times. It has very little impact on the process throughput when actively
performing distributed processing.
Example
The following example summarizes the performance statistics for the current distributed
environment:
report processors
hosts/processors arch CPU(s) %idle free RAM process size
---------------- ------ ----------- ----- ------------ ------------
nemo (master) x86-64 2 x 2.2 GHz 99% 5.82 GB 40.82 GB
ahab 1 x86-64 2 x 2.0 GHz 0% 10.21 GB 20.45 GB
2 20.45 GB
Related Commands
Add Processors Set Distributed
Delete Processors
Arguments
• -All
An optional switch that displays the scan cells for all scan chains. This is the default.
• chain_name
An optional repeatable string that specifies the scan chains whose scan cells you want to
display.
• -Display DEBug
A switch and literal that displays the reported information graphically in the debug
DFTVisualizer window.
• > 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 a list of the scan cells for all the scan chains:
add scan groups group1 scanfile
add scan chains chain1 group1 indata2 outdata4
set system mode fault
report scan cells
cell# chain group mem_type inv. gate# ins_name (ext.pin name)
-------------------------------------------------------------
0 chain1 group1 MASTER FFFF 7402 /MQ_I400 ““ (TI,QN)
1 chain1 group1 MASTER FFFF 7394 /FH_I400 ““ (TI,QN)
2 chain1 group1 MASTER FFFF 7367 /FQ_I10 ““ (TI,QN)
3 chain1 group1 MASTER FFFF 7366 /RP_I10 ““ (TI,QN)
4 chain1 group1 MASTER FFFF 7365 /IS_I10 ““ (TI,QN)
5 chain1 group1 MASTER FFFF 7386 /CZ_I400 ““ (TI,QN)
The first column in the report displays the chain cell index number, where 0 is the scan cell
closest to the scan-out pin.
The second column displays the name of the scan chain in which the scan cell resides.
The third column displays the name of the scan group in which the scan chain resides.
The fourth column displays the scan cell’s type of memory element.
The fifth column contains inversion data using F (false) to indicate no inversion difference and
T (true) to indicate inversion difference. The inversion data has four elements; one for each scan
cell memory element. The report presents the elements (left-to-right) as follows:
1. Inversion of the scan cell input pin, library cell input pin, or scan subchain relative to
the scan chain input pin.
2. Inversion of the scan cell output pin, library cell output pin, or scan subchain relative to
the scan chain output pin.
3. Inversion of the scan cell memory gate relative to the library cell input pin.
4. Inversion of the scan cell memory gate relative to the library cell output pin.
The sixth column displays the gate index number.
The seventh column displays the instance name of the memory element.
The eighth column displays the library instance name. If there is no library instance name, then
the report shows two double-quotes in the library instance name field.
The last column displays the library cell input and output pins of the scan cell. If the scan cell
input or output pin does not directly connect to the library cell boundary pin, the report shows a
dash (-) in the corresponding pin field.
Related Commands
Add Scan Chains Add Scan Groups
Related Commands
Add Scan Chains Delete Scan Chains
Related Commands
Add Scan Groups Delete Scan Groups
Report Statistics
Scope: All modes
Usage
REPort STAtistics [-Instance instance_pathname] [{> | >>} file_pathname]
Description
Displays a detailed report of the design’s simulation statistics.
The Report Statistics command displays a detailed statistics report to the screen. The statistics
report lists the following three groups of information:
• The current number of collapsed and total faults in each class. The report does not
display fault classes with no members.
• The percentage of test coverage, fault coverage, and ATPG effectiveness for both
collapsed and total faults
• 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
• -Instance instance_pathname
An optional switch and string pair that allows fault statistics to be reported for a specific
instance. The instance_pathname is the name of a circuit block whose statistics you want to
report. Only fault statistics are affected by this option; pattern count statistics apply to the
entire design.
As illustrated in Figure 4-2, this switch uses the representative fault to determine whether to
include a fault in the count for the specified block. For more information about
representative faults, refer to the Fault Collapsing and Fault Reporting sections in the Scan
and ATPG User’s Manual.
Representative fault
in instance A Equiv. faults excluded from B’s count
• > 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 a statistics report after performing BIST simulation:
set system mode fault
add faults -all
run
report statistics
The following shows a statistics report for the Report Statistics command:
Statistics report
--------------------------------------
#faults #faults
fault Class (coll.) (total)
--------------------------------------
FU (full) 15923 39904
--------------------------------------
DS (det_simulation) 11333 32714
DI (det_implication) 2730 4578
UU (unused) 1039 1202
TI (tied) 435 604
BL (blocked) 22 28
RE (redundant) 364 778
--------------------------------------
test_coverage 100.00% 100.00%
fault_coverage 88.32% 93.45%
atpg_effectiveness 100.00% 100.00%
--------------------------------------
#test_patterns 383
#basic_patterns 259
#clock_po_patterns 124
#simulated_patterns 864
CPU_time (secs) 28.2
FlexTest Example
The following shows a FlexTest statistics report for the Report Statistics command:
Total number of sequential instances = 2
*****Circuit Statistics*****
# of primary inputs = 12
# of primary outputs = 6
# of library model instances = 14
# of combinational gates = 12
# of sequential elements = 2
# of simulation primitives = 62
# of scan cells = 2
# of scan sequential elements = 2
*****Fault List Statistics*****
Fault Class Uncollapsed Collapsed
Full (FU) 120 56
Det_simulation (DS) 72 28
Det_implication (DI) 48 28
Fault coverage 100.00% 100.00%
Test coverage 100.00% 100.00%
Atpg effectiveness 100.00% 100.00%
*****Test Patterns Statistics*****
Total Test Cycles Generated = 26
Total Scan Operations Generated = 13
Total Test Cycles Simulated = 26
Total Scan Operations Simulated = 13
***** Runtime Statistics *****
Machine Name : checklogic
User Name : Steve
User CPU Time : 1.9 seconds
System CPU Time : .6 seconds
Memory Used : 2.137M
Related Commands
Add Tied Signals Setup Tied Signals
Delete Tied Signals
Report Variables
Scope: All modes
Usage
REPort VAriables
Description
Displays user-defined variables and values.
The Report Variables command displays variables you previously defined within the tool and
their corresponding values. This does not include environment variables defined in the parent
shell environment.
You define, reference, and report on user-defined variables as follows:
• Defining — You can define a variable from the tool’s command line, from a dofile, or
from a startup file. Variable names are case sensitive. Use the following syntax to create
and set a variable’s value:
$variable = value
o If the variable is not meant to be concatenated with any other string, it can be
referenced simply as $variable-name. For example:
$INDENT = 8
report statistics -hierarchy -indent $INDENT
Examples
The following example defines two variables, refers to them within a tool command, and
displays a list of all user-defined variables:
...
$design_base_file = my_transition_patt
$design_base_dir = $HOME/my_patterns
save patterns ${design_base_dir}/${design_base_file}.v -verilog
report variables
design_base_dir $HOME/my_patterns
design_base_file my_transition_patt
Note
As $HOME is defined in the parent shell environment, it is available for use within the
tool and in other variable definitions.
Reset Di Faults
Scope: Fault and good modes
Usage
RESet DI Faults {-ALL | -END_of_chains | -CHain chain_name | pin_pathname}
[-Stuck_at {01 | 0 | 1}] [-Both | -Rise | -Fall]
Description
Re-classifies DI faults to UC.
The Reset Di Faults command re-classifies det_implication (DI) faults to the uncontrolled (UC)
category. When the fault type is stuck-at or transition, this command by default resets both
stuck-at-0 (or slow-to-rise for transition faults) and stuck-at-1 (or slow-to-fall for transition
faults) faults at each DI fault site. You can use one of the optional switches to reset just one,
rather than both, faults at each DI fault site.
Use this command when you want faults that were previously classified as DI (and thus no
longer targeted for detection) retargeted in the next run. For example, the tool currently declares
scan path faults DI because they are tested by the chain test. This is not optimal in some cases;
the end of each scan chain (after the last scan cell) is often used as a system path and it is
sometimes desirable to create an at-speed transition fault test to exercise this path. The DI fault
category prevents the tool from targeting or simulating such faults. When the fault classification
is changed to UC, the tool then has the ability to target those faults.
• -ALL
A switch that specifies for the tool to reset all unprotected DI faults to UC. This is the
invocation default.
• -END_of_chains
A switch that specifies to reset, for each scan chain, the unprotected scan path DI faults from
the output of the last scan cell in the chain to the scan output pin.
• -CHain chain_name
A switch and string pair that specifies to reset the unprotected DI faults along the specified
scan chain to UC. This includes scan input and output pin faults.
• pin_pathname
A string that specifies to reset the unprotected DI faults on a particular pin. The
pin_pathname must be an instance/pin name that exists in the flattened model. These are
typically model boundary pins, primary input pins, and primary output pins.
• -Stuck_at 01 | 0 | 1
An optional switch and literal pair that specifies which unprotected DI faults to reset to UC.
Mentor Graphics recommends you use this switch only if the fault type is stuck; the tool
accepts it, however, regardless of fault type.
01 — A literal specifying that for stuck-at faults the tool reset both the “stuck-at-0” and
“stuck-at-1” faults; or for transition faults the tool reset both “slow-to-rise” and
“slow-to-fall” faults. This is the default.
0 — A literal specifying that for stuck-at faults the tool reset only the “stuck-at-0” faults;
or for transition faults the tool reset only “slow-to-rise” faults.
1 — A literal specifying that for stuck-at faults the tool reset only the “stuck-at-1” faults;
or for transition faults the tool reset only “slow-to-fall” faults.
• -Both | -Rise | -Fall
Optional switches that specify which unprotected transition faults to reset to UC. These
switches apply to transition faults only.
-Both - An optional switch that specifies to reset both slow-to-rise and slow-to-fall
transition faults. This is the default.
-Rise - An optional switch that specifies to reset only the slow-to-rise transition faults.
-Fall - An optional switch that specifies to reset only the slow-to-fall transition faults.
Examples
The following example resets all unprotected stuck-at-0 and stuck-at-1 DI faults (including
clock faults) to UC.
reset di faults
The next example resets all unprotected stuck-at-0 faults declared DI anywhere in the netlist.
reset di faults -stuck_at 0
The next example resets stuck-at-0 and stuck-at-1 DI faults at the output of the last cell of each
chain.
reset di faults -end_of_chain
The next example resets only the slow-to-rise transition fault at the output of the last cell of each
chain.
reset di faults -end_of_chain -rise
The next example resets both DI faults at pin /top/mid/bottom/Q if unprotected (any type fault).
reset di faults /top/mid/bottom/Q -stuck_at 01
The next example is equivalent to the preceding example, except that it applies to transition
faults only.
reset di faults /top/mid/bottom/Q -both
The next example uses the defaults to reset DI faults at the specified location (any fault type).
reset di faults /top/mid/bottom/Q
The next example resets only the slow-to-rise transition fault at the specified location.
reset di faults /top/mid/bottom/Q -rise
The next example resets only the stuck-at-1 fault (or slow-to-rise if transition fault) at the
specified location.
reset di faults /top/mid/bottom/Q -stuck_at 1
Related Commands
Load Faults
Run
Scope: Fault and Good modes
Usage
RUN [-RETain_abort] [-NOAnalyze]
Description
Runs a simulation.
The Run command performs a fault or good simulation using the current test pattern source. To
terminate the simulation, use Control-C. You can utilize multiple processors simultaneously on
specified host machines when executing distributed commands for fault simulation.
You can repeat the Run command as often as you want to further increase test coverage. If a run
analysis fails to satisfy all ATPG restrictions prior to test generation, you will be notified of the
existence of these test generation problems and the run will be terminated. At this point, you
may choose to either 1) continue the run analysis, but ignore the problems by re-issuing the Run
command with the -Noanalyze switch, or 2) use the Analyze Restrictions command to find the
source of the problems.
Arguments
• -RETain_abort
An optional switch that specifies to not target any aborted faults that were the result of
aborting the previous run.
• -NOAnalyze
An optional switch that specifies for the tool to skip the analysis of test generation problems.
Examples
The following example runs a good simulation after adding all faults to the circuit:
set system mode good
add faults -all
run
The following example runs an ATPG process after adding all faults to the circuit, terminates
the run with a Control-C, and re-runs the ATPG process while not targeting any aborted faults
from the previous run:
set system mode atpg
add faults -all
run
Control-C
run -retain_abort
Related Commands
Report Gates Set Pattern Source
Set System Mode Set Logfile Handling
Usage
SAVe FLattened Model filename [-Replace]
Description
Saves the flattened circuit model, the scan trace, and all DRC-related information to a binary
file.
When you issue the Save BIST command during the BIST Controller Generation phase,
LBISTArchitect automatically adds the Save Flattened Model command to the
enitity_core_faultsim.do file. This dofile is later executed upon invocation of the fault
simulation phase.
LBISTArchitect writes the enitity.flat circuit model for later use during diagnostics with Tessent
Diagnosis.
Arguments
• filename
A required string that specifies the name of the file to which you want to write the flattened
circuit model. By default, the file is named “enitity.flat”. If you need to change the default
file name, you must use the “Setup File Naming -FLat_model” command within the BIST
Controller Generation phase before you issue the Save Bist command.
• -Replace
An optional argument that lets you overwrite an existing circuit model file.
Related Commands
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
dof fault.do
set system mode fault
add faults -all
run
report statistics
history -nonumbers
Related Commands
Dofile
History
Save Patterns
Scope: Fault and good modes
Prerequisites
You may use this command if you first use the Set Pattern Source command with the
-Store_patterns option, after simulating in Good mode.
Usage
SAVe PAtterns pattern_filename [-Replace] [format_switch]
[timing_filename [-TIMingfile] | {{proc_filename -PROcfile} [-NAme_match | -
POsition_match] [-PARAMeter param_filename]}] [-PARALlel | -Serial]
[-NOInitialization] [-BEgin {pattern_number | pattern_name}]
[-END {pattern_number | pattern_name}] [-TAg tag_name] [-CEll_placement {Bottom |
Top | None}] [-ENVironment] [-One_setup] [-ALl_test | -CHain_test | -SCan_test]
[-NOPadding | -PAD0 | -PAD1] [-Noz] [-MAP mapping_file] [-PATtern_size integer]
[-MAXloads load_number]
Description
Saves the current test pattern set to a file in the format that you specify.
You can save the patterns in several different formats. The format_switch argument supports an
extensive list of formats. When saving your patterns using the Save Patterns command, choose
the format_switch that best suits your needs.
The module name created for the Verilog test bench, using enhanced pattern outputs via the
-PROcfile switch, is determined by the pattern_filename specified on the Save Patterns
command line. The module name consists of the design name, followed by an underscore,
followed by the file name (minus any path names), followed by “_ctl”. Additionally, any
periods (“.”) in the pattern_filename are converted to underscores (“_”). This lets you change
the module name in the test bench by changing the name of the file on the Save Patterns
command line. See the Example 1 section of this command for an example of the module name
in the test bench that the tool creates.
By default, when you are not using the -Procfile switch, the module name created consists of the
design name followed by “_ctl”.
Note
You can cleanly stop the Save Patterns command by typing Ctrl-C from the command
line.
Arguments
• pattern_filename
A required string that specifies the name of the file to which you want to write the test
pattern set. If the filename ends with “.gz”, the tool automatically compresses the file using
the GNU gzip utility, as part of the save operation. If the filename ends with “.Z”, the tool
uses the UNIX compress utility to compress the file during the save operation.
Note
Normally, automatic file compression is enabled by default, and all you do to use the
compression capability is apply one of the two extensions to your filenames. You can
turn off the file compression functionality with the Set File Compression command. This
could be useful, for example, in the unlikely event that files had either of the compressed
file extensions, but were not actually compressed files.
• -Replace
An optional switch that specifies replacement of the contents of pattern_filename, if a file
by that name already exists.
• format_switch
An optional switch that specifies the format in which you want to save the test pattern set.
The formats divide into three groups. The first group lists the general purpose formats. The
second group lists the simulation and test formats. The third group lists the ASIC vendor
formats.
The general purpose format switch choices are as follows:
-Ascii — A switch that writes the patterns in the standard ASCII format. The ASCII
format includes the statistics report, environment settings, scan structure definition,
scan chain functional test, scan test patterns, and the scan cell information. This is the
command’s default. For more information on the ASCII BIST pattern format, see
“BIST Pattern File Format” in the Scan and ATPG User’s Manual.
The three types of ASCII BIST patterns are:
o BIST patterns in Tessent FastScan format with LFSM values which include both
LFSM values and pattern internal view — Default. This pattern type is generated
when you specify a format using the following command:
set pattern source BIST -store_patterns
o BIST patterns with LFSM values only — This pattern type is generated when you
specify a format using the following command:
set pattern source BIST -store_patterns -lfsm_value_only
If you use the -External or the -Begin and -End switches, thereby not saving all the
internal patterns, the tool does not include test coverage and fault information in the
ASCII pattern set.
-BInary — A switch that writes the patterns in binary format.
Many ASIC vendors accept test pattern data in their own test data formats. ASIC vendor test
data formats usually support only a single timing file. You can specify the test timing that
each ASIC vendor requires by using different timing definition files for each format.
The ASIC vendor format switch choices are as follows:
-Fjtdl — A switch that writes the patterns in the Fujitsu FTDL-E format.
-MItdl — A switch that writes the patterns in the Mitsubishi MITDL format.
-Mode Lsi — A switch that changes the functionality of the Verilog and WGL output
formats so that the saved pattern files meet LSI Logic requirements. This switch is
valid only with the -Verilog and -wgl switches.
-STil — A switch that writes the patterns in the STIL format. Also, you can customize
the output format when you utilize the parameter file.
-TItdl — A switch that writes the patterns in the Texas Instruments TDL91 format.
Also, you can customize the output format when you utilize the parameter file.
Note
If the design uses a single timeplate, the tool changes the TDL version to the 4.3 format.
This removes the TIMING, END_TIMING, and SET_TIMING statements from the
pattern file. Also, the VERSION statement changes from 6.0 to 4.3. However, if the
design uses multiple timeplates, then the TDL version is set to 6.0.
-TSTl2 — A switch that writes the patterns in Toshiba Standard Tester Interface
Language 2.
• -NOInitialization
A switch that writes patterns without creating the initialization cycle in the pattern file. The
-Noinitialization switch is valid with the following output pattern formats:
The -Noinitialization switch is valid with all enhanced output pattern formats.
• timing_filename [-TIMingfile]
An optional string and optional switch that specifies the name of the timing plate file from
which you want to read the non-scan event timing information. This option causes the tool
to save patterns using the old output pattern, which gets its timing information from the
timing file specified on the command line. See the “Test Pattern Formatting and Timing”
section in the Scan and ATPG User’s Manual for the description of the timing file and how
to create it. You cannot use this argument with the -Ascii or -Binary formats.
• proc_filename -PROcfile
An optional string and switch that specifies the name of the enhanced procedure file from
which you want to read the non-scan event timing information. This option causes the tool
to save patterns using the output pattern, which retrieves its timing information from the
enhanced procedure file. You can specify the procedure filename with this argument or
specify it before using this command by issuing the Read Procfile command. You cannot
use this argument with the -Ascii or -B-inary formats. This is the default.
When an invalid output format is used with the -Procfile option, the tool displays the
following error message:
Procfile patterns cannot be saved in <format> form, use the -
Timingfile option.
If you start with a Verilog netlist and then do not restart with a flattened model, the pattern
Verilog output will automatically switch to using the position match method.
• -POsition_match
An optional switch that specifies for the tool to use the position matching method to
instantiate the device under test in the test bench.
Note
The -Position_match switch is valid only when using -Verilog outputs in conjunction
with the -Procfile switch
• -PATtern_size integer
A optional switch and integer pair which specifies the size of the memory buffer and pattern
file in which to save. Integer is given in kilobytes.
Note
The -Pattern_size switch is valid only when using -Verilog output in conjunction with the
-Procfile switch.
The default pattern size is 32MB. However, any size specified for a pattern size will be
adjusted to hold a multiple of the largest pattern. For example, if the largest pattern requires
3MB for one pattern, then the file size will be a multiple of 3MB, which would result in a
30MB pattern size.
• -PARAMeter param_filename
An optional switch and string pair that specifies field names and values for use in certain
output pattern formats.
• -PARALlel
An optional switch that saves all scan cells in parallel. This is the default.
In designs with scan cells, only scan pins are active during the scan shift cycles. If the tool
tries to represent the state of each pin during each shift cycle, it may produce very large
pattern files. Simulating the shift operations of these patterns might require a considerable
amount of time if you use a different simulator. You can avoid these problems by saving all
scan cells in parallel. You can use the -Parallel switch with all formats.
• -Serial
An optional switch that saves all scan cells in series. You can only use this switch with the -
STil, -TItdl (enhanced pattern output only), -wgl, or -Verilog format type switches.
• -BEgin {pattern_number | pattern_name}
An optional switch that specifies the pattern at which you want the command to begin
storing patterns.
pattern_number — An integer that specifies the number of the pattern at which you
want the command to begin storing patterns. The default pattern number is 0.
pattern_name — A string generated by using the -tag switch (which specifies a prefix
for all pattern names). For example, pattern_name = tag_name_1, tag_name_2, and
so on.
If you save only a portion of the internal patterns in the -Ascii format, the tool does not
include test coverage and fault information.
• -END {pattern_number | pattern_name}
An optional switch that specifies the number of the pattern at which you want the command
to stop storing patterns. This argument is inclusive; therefore, the tool stores the pattern
identified by the pattern_number | pattern_name you specify. The default pattern is the last
pattern of the pattern set.
pattern_number — An integer that specifies the number of the pattern at which you
want the command to stop storing patterns.
pattern_name — A string generated by using the -tag switch (which specifies a prefix
for all pattern names). For example, pattern_name = tag_name_1, tag_name_2, etc.
If you save only a portion of the internal patterns in the -Ascii format, the tool does not
include test coverage and fault information.
• -TAg tag_name
An optional switch that adds a unique user-specified label, tag_name, to each pattern. All
chain tests automatically have “chain” as the tag_name regardless of the tag_name given in
the -Tag switch. Since all tag names must be unique, “chain” is not a valid tag_name. If the
tag_name supplied is not unique, an error message is issued and the run aborts.
If the tool reads in patterns using the Set Pattern External command, the patterns must also
be unique. The run aborts if LBISTArchitect attempts to make two identically named
patterns co-resident by any method. This uniqueness extends across both the internal and
external pattern sets. It is not possible to have the same pattern_name in the internal and
external sets.
• -CEll_placement Bottom | Top | None
An optional switch and literal pair that controls the placement of the scan cell data in the
ASCII pattern file. The literal choices are as follows.
Bottom — A literal that places the scan data after the patterns, at the end of the file. This
is the default.
Top — A literal that places the scan data before the patterns, at the top of the file.
None — A literal that excludes the scan data from the file.
• -ENVironment
An optional switch that includes information about the current LBISTArchitect environment
into the pattern file as comments. The information includes the identification stamp number,
the environment settings, and the DRC rules. The information is the same as the Report
Environment and Report ID Stamp commands display.
• -One_setup
An optional switch that specifies for the tool to apply only one test setup procedure when
both chain and scan test patterns are saved in one pattern file. The tool applies the single test
setup procedure before the chain test patterns. The default behavior causes the tool to apply
one test setup procedure before the chain test patterns and another before the scan test
patterns.
• -ALl_test
An optional switch that specifies to save both the chain test and the scan test
• -CHain_test
An optional switch that specifies for the tool to save only the chain test in the pattern file.
• -SCan_test
An optional switch that specifies to save only the scan test in the pattern file.
• -Noz
An optional switch that changes all Z output values to the value specified by the last Set Z
Handling command.
• -NOPadding (ASCII patterns only)
An optional switch that saves the ASCII patterns with unpadded scan load and load data.
The tool eliminates the extra X values that are due to short scan chains. This is the default.
You can only use this switch with the -Ascii format type switch.
If you subsequently input unpadded ASCII patterns into the tool, you must use the Set
Pattern Source command with its -Nopadding switch.
• -PAD0 (ASCII patterns only)
An optional switch that saves the ASCII patterns with values of 0 for don’t care inputs and
scan chain inputs of short scan chains.
• -PAD1 (ASCII patterns only)
An optional switch that saves the ASCII patterns with values of 1 for don’t care inputs and
scan chain inputs of short scan chains.
• -MAxloads load_number
An optional switch and string pair that specifies the number of scan loads, load_number, to
include in a pattern file. Much like the -Begin and -End switches, the -Maxloads switch
automatically breaks up the pattern file into a series of pattern files with the specified
number of scan loads in each. This switch is equivalent to the following series of
commands:
Save Patterns filename_0 -begin 0 -end j
Save Patterns filename_1 -begin j+1 -end k
Save Patterns filename_2 -begin k+1 -end l
...
Where filename is the name of the file given in the Save Patterns command; and j, k, and l
are integers.
Note
This switch is only valid with ASCII, Binary, and enhanced output patterns, and cannot
be used with the -Pattern_size switch.
Example 1
The following example performs a Good simulation run on the BIST patterns, and then saves
the patterns to a file in the Verilog format:
set pattern source bist -store_patterns
set system mode good
add faults -all
run
save patterns file1 -verilog
Example 2
The following example illustrates the module name created in the enhanced Verilog output
when using the -Procfile switch. If the design name is “MAIN” and you issue the following
Save Patterns command, the module name in the test bench will be “MAIN_pattern1_pat_ctl”.:
save patterns pattern1.pat -procfile -verilog -replace
Related Commands
Add Scan Groups Set Pattern Source
Save Patterns
Then, in the fault simulation phase, the configuration file will automatically contain the
following command:
set bist chain_test 64
This next example stops the chain test and replaces it with a 64 pattern flush test.
set lbist controller -flush_test 64
Then, in the fault simulation phase, the configuration file automatically contains a command
similar to the following, which removes the default capture clock disabling.
set bist chain_test none
Related Commands
Set Lbist Controller
// command: run
// ---------------------------------------------------------------------
// Simulation performed for #gates = 5732 #faults = 418
// system mode = fault simulation pattern source = 63 BIST patterns
// ---------------------------------------------------------------------
// #patterns test #faults #faults # eff. # test process
// simulated coverage in list detected patterns patterns CPU time
The next example initiates a trace on the values of the PRPG and MISR for all patterns:
// command: set bist debug misr prpg all
// command: run
// ---------------------------------------------------------------------
// Simulation performed for #gates = 5912 #faults = 513
// system mode = fault simulation pattern source = 63 BIST patterns
// ---------------------------------------------------------------------
// #patterns test #faults #faults # eff. # test process
// simulated coverage in list detected patterns patterns CPU time
// begin bist patterns: capture clock = /clk, observe point = MASTER
PRPG prpg 0 0001001000001001
PRPG prpg 1 0011001000011010
PRPG prpg 2 0010111111001111
PRPG prpg 3 0110011101111011
.
.
.
PRPG prpg 29 0001101111101000
PRPG prpg 30 0100010010110000
PRPG prpg 31 1110101100101111
MISR misr 0 0101010100001101
MISR misr 1 1101011101111111
MISR misr 2 1101010001101001
MISR misr 3 1110000010111001
.
.
.
MISR misr 29 0010001111001110
MISR misr 30 1111000010000110
MISR misr 31 1111001001110101
PRPG prpg 32 1000110000011000
PRPG prpg 33 0101010011111101
Related Commands
Set BIST Trace Add LFSRs
Command Summary
The first element on each line is the pattern number, followed by the simulated element type
(MISR or PRPG). The third element is the name of the simulated element. The names shown in
the example above are the default names assigned by the Add LFSR commands included in the
BIST-Controller-phase-generated fault simulation driver. You can edit the driver file to rename
the elements.
Note
Do not modify or delete any header information in filename. LBISTArchitect generates
the microcoded test bench instructions based on information in this header.
The sequence of activities that occur within the simulation of the BIST controller determines
the order of the lines in filename.
If you issue multiple Set BIST Trace commands before the Run command, LBISTArchitect
only executes the last one issued.
To reduce the volume of data written to filename, use the -Interval and -Offset switches. See the
Examples section for this command.
Arguments
• -Nolfsr
An optional switch that specifies to not enable LFSR value tracing. This is the invocation
default.
• -Lfsr filename
An optional switch and string pair that specifies to enable tracing of PRPG and MISR values
during a BIST run and to write those values to the file, filename.
• -Replace
An optional switch that specifies to replace the contents of filename if that file already
exists.
• -Interval interval
An optional switch and integer pair that specifies to write the PRPG and MISR values to
filename for the patterns beginning at 0 and separated by the interval given by the integer,
interval. The values for the first and last patterns are always written.
• -Offset offset
An optional switch and integer pair that specifies to write the PRPG and MISR values to
filename beginning at the pattern number given by the integer, offset. The values for the first
and last patterns are always written.
Examples
The following example writes traced values to the file, lfsr.trace, but to conserve disk space,
only writes the values for every 256th pattern.
set bist trace -lfsr lfsr.trace -replace -interval 256
If, in the preceding example, you discover a problem begins after pattern 1530, you might
narrow the search with the following command:
Related Commands
Set BIST Debug
Command Summary
Related Commands
Add Clocks Report Clocks
Delete Clocks Report Environment
Using this option, you can then view the simulated values of all gates in the first bus
contention pattern by using the Report Gates command. The error message indicates the
number of patterns the tool rejected in the current simulation pass of 32 patterns and also
identifies the bus gate on which the bus contention occurred.
• -Bus
An optional switch that specifies for the tool to perform contention checking of tri-state
driver buses. This is the default.
Tri-state logic allows several bus drivers to time-share a bus. However, if the circuit enables
two bus drivers of opposite logic to drive the bus, physical damage can occur. This switch
allows the tool to identify these conditions and notify you of their existence.
• -Port
An optional switch that specifies for the tool to perform contention checking for multiple-
port flip-flops and latches. The tool identifies and rejects patterns during which any
multiple-port latch or flip-flop has more than one clock, set, or reset input active (or at X).
• -ALl
An optional switch that specifies for the tool 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 multiple-port flip-flops and latches,
stops the simulation if any bus contention occurs, and displays an error message. The message
indicates the number of patterns rejected and the bus gate on which the bus contention occurred:
set contention check on -port -error
set system mode fault
add faults -all
run
Related Commands
Report Gates Set Gate Report
Set Distributed
Tools Supported: Tessent FastScan and Tessent TestKompress
Scope: All modes
Usage
SET DISTributed [variable [value]]
Description
Displays or sets the values of several variables when executing distributed commands for fault
simulation.
The Set Distributed command displays or sets the values of several distributed processing
variables that affect the behavior of the tool. Issuing the command without arguments displays
all variables and their current values. Issuing the command with a variable but no value displays
the current value of just that variable. Include a value with variable to change the variable’s
current setting to the new value.
Table 4-10 lists the distrubted variables and their purpose. Refer to the Examples section for
examples of the use of these variables.
Default: rsh
generic_scheduler string Specifies the command script to use to request a slave process
from the job scheduler. Applies only to subsequent
Add Processors Generic commands, not currently running
processes. For example, the following specifies an alternative
interface to SGE:
The “%job” defines where to insert the actual job number in the
qdel command syntax; and also defines the string “job” to
search for in the generic_scheduler’s output to determine the
job number.
lsf_options string Specifies command options for the tool to append to the job
submission command for the LSF or SGE job scheduler. Setting
sge_options string a correct value for the string requires a knowledge of the
scheduler configuration at your site and the job control
submission syntax. Applies only to subsequent Add Processors
commands, not currently running processes. An incorrect
specification can prevent the correct operation of the Add
Processors command.
Note
The use of job schedulers requires certain environment prerequisites to be satisfied before
you invoke the tool. See “Multiprocessing Requirements” in the Scan and ATPG User’s
Manual for more information.
Arguments
• variable
An optional string that specifies the name of a variable. Table 4-10 lists the variables, their
purpose and the type of value (integer or string) you can assign them. Variable names are
case-sensitive; enter them exactly as shown.
• value
An optional string or integer that specifies the value to which the tool should set the
specified variable.
Example 1
The following example displays the current settings of the variables:
set distributed
Distributed Processing Variables:
string generic_delete = // generic job scheduler delete
string generic_scheduler = // generic job scheduler
string lsf_options = // options for LSF job scheduler
string remote_shell = rsh // rsh,ssh remote_shell setting
int scheduler_timeout = 10 // # mins for job scheduler
string sge_options = // options for SGE job scheduler
The lsf_options variable supports the ability to explicitly control type and memory constraints
that would normally be supplied automatically. For example:
set distributed lsf_options -R "select[type==LINUX64 && mem> 200 && swp > 200 ]"
set distributed lsf_options
string lsf_options = -R select[type==LINUX64 && mem> 200 && swp > 200]
// options for LSF job scheduler
This setting would constrain LSF to select the specified hosts. The type specification also
inhibits the automatic learning that would normally take place to discover all the type/model
names in an LSF cluster. (This is useful if your site prevents the use of the lsrun command or if
the learning hits non-responsive hosts.) Any legal LSF constraints for the installation can be
specified and they will override any related specifications the tool would have provided
otherwise. It is up to you to supply syntactically and semantically correct LSF options.
To erase the value from the variable, set it to an empty string:
set distributed lsf_options ’’
set distributed lsf_options
string lsf_options = // options for LSF job scheduler
Example 2
The following example specifies that LSF use queue myqueue (the single quotes are optional):
set distributed lsf_options ’-q myqueue’
Example 3
The following example appends an additional option to the previous setting:
set distributed lsf_options -R "select[type==LINUX64]"
set distributed lsf_options
string lsf_options = -q myqueue -R select[type==LINUX64] // options…
Example 4
The following example specifies that SGE impose a 6 hour timeout on slave processes:
set distributed sge_options -l h_rt=6:00:00
As with the lsf_options variable, each successive value you specify for the sge_options variable
gets appended to the current value until you clear the variable by setting it to an empty string:
Example 5
The following example specifies an alternative interface to SGE for launching slave processes:
set distributed generic_scheduler ’$SGE_ROOT/bin/lx24-x86/qsub %command’’
The %command represents a substring you must use inside the generic_scheduler string to
specify the location to substitute the Mentor Graphics command script that launches a slave
process. Variables can be defined in the dofile to make this more convenient, as in the following
example dofile excerpt:
$SUBMIT="$SGE_ROOT/bin/lx24-x86/qsub"
set distributed generic_scheduler ’${SUBMIT} %command’
Example 6
The following example specifies an alternative interface to SGE for terminating slave
processes:
set distributed generic_delete ’$SGE_ROOT/bin/lx24-x86/qdel %job’
The %job defines where to insert the actual job number in the qdel command syntax and also
defines the string “job” to search for in the generic_scheduler’s output.
Example 7
The following example specifies that the master host should use the ssh shell command to
create processes on slave hosts (manual specification of hosts only):
set distributed remote_shell ssh
Tip: Refer to “SSH Environment and Passphrase Errors” in the Scan and ATPG User’s
Manual if you encounter errors trying to utilize SSH.
Related Commands
Add Processors Report Processors
Delete Processors
Related Commands
Dofile
Arguments
• drc_id
A required non-repeatable literal that specifies the identification of the exact design rule
violations whose message handling you want to change.
The design rule violations and their identification literals are divided into the following five
groups: RAM, Clock, Data, Extra, and Trace rules violation IDs.
• Error
An optional literal that specifies for the tool to both display the error occurrence message
and immediately terminate the rules checking.
If you do not specify the Error, Warning, Note, or Ignore option, then the handling is either
set to the previous handling or set to the Design Rules Checker default.
• Warning
An optional literal that specifies for the tool to display the warning summary message
indicating the number of violations for that rule. If you also specify the Verbose option, the
tool displays the occurrence message for each occurrence of the rules violation.
If you do not specify the Error, Warning, Note, or Ignore option, then the handling is either
set to the previous handling or set to the Design Rules Checker default.
• NOTe
An optional literal that specifies for the tool to display the summary message indicating the
number of violations for that rule. If you also specify the Verbose option, the tool also
displays the occurrence message for each occurrence of the rules violation.
If you do not specify the Error, Warning, Note, or Ignore option, then the handling is either
set to the previous handling or set to the Design Rules Checker default.
• Ignore
An optional literal that specifies for the tool to perform rules checking, but to not display
any messages for rule violations.
If you do not specify the Error, Warning, Note, or Ignore option, then the handling is either
set to the previous handling or set to the Design Rules Checker default.
• NOVerbose
An optional literal that specifies for the tool to display the occurrence message only once for
the rules violation. 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.
• NOAtpg_analysis
An optional literal that specifies for the tool not to use test generation analysis when
performing rules checking. This is the default.
• Atpg_analysis
An optional literal that specifies for the tool to use test generation analysis when performing
rules checking for clock rules (such as, C1, C3, C4, C5 and C6), some D rules (such as D6
and D9), and some E rules (such as, E4, E5, E8, E10, E11, and E12).
For clock rules C3 and C4, the Atpg_analysis option generates a check of the clocks of the
source and sink to see if they are gated off. To see if a path exists from the Q output of the
source to the sink, use the Set Sensitization Checking command with checking turned on. It
is recommended that you use the Atpg_analysis option with the Set Sensitization Check On
analysis to remove the maximum number of false C3 and/or C4 violations.
Note
If you want the tool to use the constraint values during the D6 rule analysis, you must use
the Atpg_analysis option.
• -Mode A clk_name
A switch, a literal (A), and a string triplet that specifies the name of the clock on which the
tool performs further analysis to screen out false C3 and C4 clock rules violations.
• -Interval number
An optional switch and integer pair that you can only use with C3 and C4 clock violations to
specify how often you want the tool to display a message during the ATPG analysis of those
violations. The number argument indicates multiples of violation occurrences that cause the
tool to display a message. The default is 0.
The message includes the number of sequential elements that the tool checked, the number
of sequential elements remaining to check, the current number of ATPG passes during the
C3 or C4 clock rules checking, and the current CPU time used by the tool for clock rules
checking.
The value of the number parameter must be either zero or a positive integer. You can only
specify one number value that the tool uses for both the C3 and C4 violations. If you issue
multiple Set Drc Handling commands (one for C3 and one for C4) that specify different
values for the number argument, the tool uses the last interval value you specified.
• ATPGC
An optional literal that specifies for the design rules checker to use all the current ATPG
constraints when performing the analysis of the C1, C3, C4, C5, C6, E10, and E11 rule
violations. You can also use the Add Atpg Constraints -Static command to do the same
thing.
• -Mode {Combinational | Sequential}
An optional switch and literal for the tool to use with the E10 rule. The Combinational
option is the default. It performs bus contention, mutual-exclusivity checking and is limited
by the combinational logic boundary.
The Sequential option considers the inputs to a single level of sequential cells behaving as
“staging” latches in the enable lines of tri-state drivers. All of the latches found in a back
trace must share the same clock. There must also be only a single clocked data port on each
cell, and both set and reset inputs must be tied (not pin constrained) to the inactive state.
This check ensures that there is no connectivity from the cells in the input cone of the
sequential cells and enables of the tri-state devices except through the sequential cells.
Examples
The following example specifies rule checking E4 to be an error:
The following shows an example when reporting uncollapsed tied faults as compared to
reporting collapsed tied faults:
Uncollapsed: Collapsed:
0 TI /I_140/I 0 TI /I_140/I
1 TI /II_140/O 1 TI /II_140/O
1 EQ /II_140/I
Related Commands
Add Faults Report Faults
Delete Faults Write Faults
Load Faults
The fault sites of all models are the input and output pins of the design cells in addition to
external pins. The tool uses the values 0 and 1 for all fault models to indicate the type of fault at
the fault site. Each fault model has its own separate fault collapsing according to the model’s
rules of equivalence.
When you change the fault type, the tool deletes both the current fault list and the internal
pattern set.
Caution
In LBISTArchitect, changing to a different fault model type erases all fault information,
even the information about protected faults. If some faults are protected, be sure you no
longer need the protection before you issue this command.
Arguments
• Stuck
A literal that specifies for the tool to perform BIST pattern simulation for the single stuck-at
fault model. This is the default upon invocation of the tool.
• Iddq
A literal that specifies for the tool to perform BIST pattern simulation for the IDDQ fault
model.
• TOggle
A literal that specifies for the tool to to perform BIST pattern simulation for the toggle fault
model.
• TRansition
A literal that specifies for the tool to to perform BIST pattern simulation for the transition
fault model.
• -NO_Shift_launch
An optional switch that prevents the tool from creating transition tests that launch off of the
last shift. Normally, for at-speed (AC) tests using transition faults, the tool tries to generate
a clock sequential pattern that launches in some cycle after shift is completed (broadside). If
that fails, the tool next tries to generate a basic combinational pattern that uses the last shift
as the launch. You can use this switch to stop the tool from creating “launch off shift”
patterns when it is unable to generate clock sequential tests. This is useful if you utilize
internal PLLs and only support the first form of transition test.
Note
Pattern generation with this option requires a sequential depth of 2 if the design uses a
mux-DFF scan architecture, 4 if it uses an LSSD architecture. Use the Set Pattern Type
command’s -Sequential switch to set the sequential depth.
Note
This option does not prevent the tool from asserting the scan enable signal during at-
speed tests. You must use other means (scan_enable pin constraint or capture procedure,
for example) to prevent inappropriate assertion of the scan enable pin during the at-speed
part of a multiple cycle sequential transition fault test.
When you use this switch, each transition fault for which the tool fails to create a clock
sequential pattern will have the status given to it by the sequential search, so you may get
slightly lower fault coverage.
• -APPLY_HOLD_PI_attribute_to_shift_launch ON | OFf
An optional switch and literal that specifies to enable (ON) or disable (OFf) apply hold
attribute defined at primary inputs to test generation for launch-off-shift patterns. The
default for this switch is ON.
During test generation for launch-off-shift patterns, the tool forces primary inputs with hold
attribute to have the same value as the value in the last shift cycle except for the following
conditions:
• The PI is a clock pin or a read/write control pin.
• The PI is explicitly forced in the last shift cycle by load/unload and/or shift
procedures and the forced value is not the same as the pin constraint value if there is
any.
• All scan input pins will be treated as TIE-X during test pattern generation.
For these exception pins, the tool ignores the hold attribute defined at these pins.
• Path_delay
A literal that specifies for the tool to to perform BIST pattern simulation for the path delay
fault model.
• -Mask_nonobservation_points
An optional switch that specifies to mask all non-observation points so path delay patterns
are generated with values only at observation points. If there is already an internal pattern
set in the tool and the fault type is already set to path delay, re-issuing the command with
this switch alters the internal pattern response values by masking the non-observation
points. If this switch was specified previously when setting the fault type to Path_delay, re-
issuing the command without the switch causes the tool to re-simulate the internal patterns
to restore the capture values at the non-observation points.
• -ROBust_detection_only
An optional switch that specifies to include test coverage only for robust tests for path delay
faults. For more information about robust, non-robust and functional detection, refer to
“Path Delay Fault Detection” in the Scan and ATPG User’s Manual.
Note
This switch is not cumulative; you must include it with each subsequent Set Fault Type
command or the tool returns to the default behavior.
• -NO_Functional_detection
An optional switch that specifies not to include test coverage of functional tests for path
delay faults. For more information about robust, non-robust and functional detection, refer
to “Path Delay Fault Detection” in the Scan and ATPG User’s Manual.
Note
This switch is not cumulative; you must include it with each subsequent Set Fault Type
command or the tool returns to the default behavior.
• Bridge
A literal that specifies for the tool to perform BIST pattern simulation for the static bridge
fault model.
Note
For information about fault protection, see the command reference descriptions for
Load Faults -Protected.
Related Commands
Add Faults Set Fault Mode
Delete Faults Write Faults
Report Faults
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
Related Commands
Report Gates Set Gate Report
<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
• Bist_data
A literal that specifies for the Report Gates command to display previously- calculated
control and observe values. To set the Bist_data option, you must do so prior to rules
checking, and you must re-execute the design rules checking process; otherwise, no data (-)
from this option will be available for gate reporting.
• TIe_value
A literal that specifies for the Report Gates command to display the simulated values that
result from all natural tied gates and learned constant value non-scan cells.
Tie_value is available at any time the flattened model exists. The value displayed on the TIE
node is set by simulation. All internal nodes are initially set to X for simulation.
Subsequently, BIST simulation or various commands may put values on the nodes.
Occasionally, a set of circumstances may occur where an X shows up on a TIE node.
During operation, BIST simulation typically marks for simulation only those gates which
are of interest for sensitization and propagation of a particular fault. If a gate is not marked,
it will not be simulated, and any nodes associated with it may remain at an “X” value, even
though they are connected to a TIE gate.
While tie_value reports the status of node values once it comes out of the DRC checks, the
constrain_value tells you what the gate is suppose to act like for future consideration.
• Constrain_value
A literal that specifies for the Report Gates command to display the simulated values that
result from all natural tied gates, learned constant value non-scan cells, constrained pins,
and constrained cells.
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).
The displayed values are only available at the end of DRC once the tool successfully leaves
Setup Mode. While tie_value reports the status of node values once it comes out of the DRC
checks, the constrain_value tells you what the gate is suppose to act like for future
consideration.
• Seq_depth_data
A literal that specifies for the Report Gates command to display the calculated gate
sequential depths.
When you select a non-zero sequential depth, the tool performs a learning process to
identify the minimum depths necessary to satisfy controllability and observability
requirements for all gates using the current clock_sequential cells. The tool calculates both
the 0-state and 1-sate controllability depths. At the end of the analysis, the tool displays a
summary message that indicates the largest sequential test depth, along with the largest
control and observe depth. The test generator uses the sequential depth information in
making decisions and avoiding paths whose sequential depth exceeds the maximum allowed
sequential depth.
The Report Gates command includes three values separated by a comma and a dash. The
first value is the 0-state controllability depth, the second value is the 1-state controllability
depth, and the third value is the observability depth. The maximum reported depth is 255. If
controllability or observability is logically impossible or exceeds 255, the report displays an
asterisk (*) in the corresponding fields.
• Clock_cone pin_name
A literal and string pair that specifies the clock pin for which the Report Gates command
displays the clock cone data.
The clock cone data from the Report Gates command is the same data that is available as
error data for clock rules violations. You can only use this option after flattening the
simulation model.
The pin_name must be a valid clock pin or an error condition occurs. The tool considers the
pin equivalents when calculating the clock cones. State elements that the tool identifies as
capturing on the clock’s trailing edge, will not propagate the clock effect cone. During the
Setup system mode, this information is not available, and the tool assumes all state elements
capture with the leading edge of the selected clock.
• 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.
You must set the Drc_pattern prior to rules checking and you must re-execute the design
rules checking process; otherwise, no data (-) from this option will be available for gate
reporting.
-All — An optional switch that specifies the use of all times in the test procedure file.
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).
• CApture_pattern [n | All]
A literal that specifies for the Report Gates command to display simulation values that result
after the final capture clock pulse has been added. For 32-bit invocations, the option n is an
integer in the range of 0 to 31 for all platforms. For 64-bit invocations, the option n is an
integer in the range of 0 to 63 for all platforms. This integer corresponds to the parallel
pattern number. The All option forces all values to be displayed in a single string separated
by the “/” character.
Note
You must first issue the command “Set Contention Check Capture_clock” in order for
this option to work properly.
If you cannot have contention check on, use the previously-described Parallel_pattern
option, rather than Capture_pattern. The difference between the two modes is that the
Parallel_pattern option shows the values right before the capture clock, whereas the
Capture_pattern option shows the values right after the capture clock.
• -False_paths [ON | Off]
An optional switch and literal pair that enables or disables the reporting of false path
information for the Report Gates command and the DFTVisualizer Debug window. The two
-False_paths options are as follows.
ON —False path information is reported by the Report Gates command and displayed in
the Debug window. This option is only effective during non-Setup mode. When you
enable this switch, any subsequent issuance of the Report Gates command can
include one or more of the following false path-related keywords:
Fr: Indicates the launch/start point of a false path.
To: Indicates the capture/end point of a false path.
Th: Indicates points along a false path.
In: Indicates points along the intersection of multiple false paths.
Ef: Indicates points in a false path effect cone.
— : Indicates points that are not part of any false path.
OFf — False path information is not reported by the Report Gates command.
Because the -false_paths argument does not reset the previously-specified gate report
option, you can use this argument in conjunction with other Set Gate Report settings.
Example 1
The following example sets the gate report so that reporting and display show the simulated
values of the gate and its inputs (assuming a rules checking error occurred when exiting the
setup system mode):
set system mode fault
set gate report error_pattern
report gates i_1006/o
Example 2
The following example illustrates a shift procedure containing two clocks that are pulsed in
sequence and the corresponding gate report display when the gate report is set to trace. The data
displayed is with respect to the shift procedure.
procedure shift =
force_sci 0;
measure_sco 0; force clk 1 1;
force clk 0 2;
force tclk 1 3;
force tclk 0 4;
period 6;
end;
rep gate 32
// /I_15 (32) NOR
// i0 I (XXXXX) 16-/I_16/out
// i1 I (XXXXX) 17-/I_6/out
// out O (XXXXX) 43-/S2
Example 3
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
Related Commands
Set File Compression
Examples
The following example specifies for the tool to write a logfile and to disable the writing of the
transcript:
set logfile handling /user/designs/setup_logfile
set screen display off
add clocks 0 clk
add clocks 1 pre clr
report clocks
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
Report Environment
Related Topics
Add LFSR Taps Delete LFSRs
Add LFSRs Report LFSRs
Command Summary
Arguments
• shift_number
Specifies the number of shifts. If the number specified is smaller than the default number
determined by the tool, the tool issues an error message.
Example
The following example sets the number of shifts for loading or unloading the scan chains to 2.
set number shifts 2
Arguments
• directory_name
A required repeatable string that specifies the full path directory names in which the tool
saves buffer files, thus enabling the usage of temporary buffer files for pattern data. Re-
issuing this command with additional directories causes the tool to add the directories to the
current list of directories available for buffer files.
• -Off
A required switch that disables the use of temporary buffer files, causing the tool to save
run-time data in virtual memory. This is the default upon invocation. Disabling the usage of
pattern buffers can only be done when there is no pattern data, such as after issuing the
Reset State or Set System Mode Setup commands.
Example
The following example places buffer files in the specified directories.
set pattern buffer /usr/jdoe/buffers /usr2/jdoe/morebuffers
Example 1
The following example performs fault simulation with the BIST patterns and the patterns are
then saved with both the LFSM value and the pattern internal view (Tessent FastScan file
format):
set system mode good
set pattern source bist -store_patterns
add faults -all
run
save patterns bist.pat -rep
Example 2
The following example only stores the LFSM values to save memory during BIST pattern
simulation:
set pattern source bist -store_patterns -lfsm_value_only
run
save patterns bist_lfsm_only.pat -rep
Example 3
The following example saves the patterns in the FastScan pattern format:
set pattern source bist -store_patterns -exclude_lfsm_value
save patterns bist_exclude_lfsm.pat -rep
Related Commands
Save Patterns
The Set Pattern Type command determines the type of patterns the tool uses during simulation.
The -Sequential switch provides the ability to use clock sequential cells. For example,
“-sequential 2” enables the tool to simulate clock sequential patterns with up to two clock pulses
between scan loads. Try to use the smallest possible depth, as it affects both memory
requirements and performance. You can use the Run command to obtain estimates of the
maximum test coverage possible with different sequential depth settings.
LBIST pattern simulation depends on named capture procedures that describe the clock
waveforms that are applied to the core for each pattern. Each named capture procedure may
require a different number of simulation cycles depending on the number of clock pulses that it
generates. The Set Pattern Type command is used to specify the number of sequential cycles
that the fault simulation kernel will simulate for any pattern. This value must be large enough to
properly simulate all of the named capture procedures.
Arguments
• -SEQuential depth
An optional switch and integer pair that specifies the depth of the design’s non-scan
sequential elements (its sequential depth). The integer can be a value between 0 and 255, but
the best practice is to set the depth as low as possible because it affects both memory
requirements and performance. The default sequential depth upon invocation is 0.
Note
Clock sequential patterns must be avoided if a clock procedure contains a restore_bidis
statement.
Related Commands
Set Pattern Source
Related Commands
Report Environment Set Logfile Handling
Examples
The following example changes the system mode so you can perform a fault simulation run:
add scan groups group1 scanfile
add scan chains chain1 indata2 outdata4
set system mode fault
add faults -all
run
Setup LFSRs
Scope: All modes
Usage
SETup LFsrs {-Both | -Serial | -Parallel} {-Out | -In}
Description
Changes the shift_type and tap_type default setting for the Add LFSRs and Add LFSR Taps
commands.
The Setup LFSRs command controls the default setting for the shift_type and tap_type switches.
You specify the LFSR’s shift technique by using one of the following shift_type switches: -
Both, -Serial, or -Parallel. You specify the placement of the exclusive-OR taps by using one of
the following tap_type switches: -Out or -In. When you change one or both of the default
settings, all future Add LFSRs and Add LFSR Taps commands use the new default.
Arguments
The following lists the three shift_type switches of which you can choose only one:
• -Both
A switch specifying that the LFSR shifts both serially and in parallel. This is the default
behavior upon invocation of LBISTArchitect.
• -Serial
A switch specifying that a serial shift LFSR shifts a number of times equal to the length of
the longest scan chain for each scan pattern.
• -Parallel
A switch specifying that a parallel shift LFSR shifts once for each scan pattern.
The following lists the two tap_type switches of which you can only choose one:
• -Out
A switch that places the exclusive-or taps outside the register path. This is the default upon
invocation of LBISTArchitect.
• -In
A switch that places the exclusive-or taps in the register path.
Examples
The following example changes the default shift_type setting to Serial and the default tap_type
switch to In:
setup lfsrs -serial -in
add lfsrs lfsr1 prpg 5 13
add lfsrs lfsr2 prpg 5 11
add lfsr taps lfsr1 2 3
Related Commands
Add LFSRs Delete LFSR Taps
Add LFSR Taps Report LFSRs
Delete LFSRs
R1 period offset width — A literal and three integer quadruplet that specifies
application of one negative pulse per specified period during non-scan operation.
SR1 period offset width — A literal and three integer quadruplet that specifies
application of one suppressible negative pulse.
CR1 period offset width — A literal and three integer quadruplet that specifies no
negative pulse during non-scan operation.
Where:
period — An integer that specifies the total number of test cycles. The Set Test Cycle
command defines the number of timeframes per test cycle.
offset — An integer that specifies the timeframe in which values start to change in each
period.
width — An integer that specifies the pulse width of the pulse type waveform.
Examples
The following example sets one primary input to behave as a clock and the rest of the primary
inputs to behave as a constant high signal:
set test cycle 2
add pin constraints ph1 r1 1 0 1
setup pin constraints c1
Related Commands
Add Pin Constraints Report Pin Constraints
Delete Pin Constraints
Related Commands
Add Tied Signals Report Tied Signals
Delete Tied Signals
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 simulation run, then displays the current working directory
without exiting the tool:
set system mode fault
add faults -all
run
system pwd
Related Commands
Report Faults
Write Faults
Scope: Fault and Good modes
Usage
Stuck/Toggle Faults Usage:
WRIte FAults filename [-Replace] [-Class class_type] [-Stuck_at {01 | 0 | 1}] [-All |
object_pathname…] [-Hierarchy integer] [-Min_count integer]
[-Noeq] [-Cell_name] {[-CLOCK_Domains {ALL | clock_pathname…}
[-NO_EQUivalent_clocks]] | [-CAPture_procedures {ALL | capture_procedure_name…}]}
| {[-SCAN_Enable] [-CLOCK_Cones] [-IO] [-ASYnchronous_controls]}
Description
Writes fault information from the current fault list to a file.
The Write Faults command is identical to the Report Faults command, except that the data is
written into a file. You can review or modify the file and later load the information into the fault
list with the Load Faults command. You can use the optional arguments to narrow the focus of
the report to only specific stuck-at faults that occur on a specific object in a specific class. If you
do not specify any of the optional arguments, Write Faults writes information on all the known
faults to the file.
The file contains the following columns of information for each fault:
• fault value - The fault value may be either 0 (for stuck-at-0) or 1 (for stuck-at-1).
• fault code - A code name that indicates the lowest-level fault class assigned to the fault.
• fault site - The pin pathname of the fault site.
• cell name (optional) - The name of the cell corresponding to the fault (included only if
you used the -Cell_name argument).
You can use the -Hierarchy option to write a hierarchical summary of the selected faults. The
summary identifies the number of faults in each level of hierarchy whose level does not exceed
the specified level number. You can further specify the hierarchical summary by using the
-Min_count option which specifies the minimum number of faults that must be in a hierarchical
level before writing.
You may select to display either collapsed or uncollapsed faults by using the Set Fault Mode
command.
Arguments
• filename
A required string that specifies the name of the file where LBISTArchitect is to write the
fault information.
• -Replace
An optional switch that replaces the contents of the file if the filename already exists.
• -Class class_type
An optional switch and literal pair that specifies the class of faults that you want to write.
The class_type argument can be either a fault class code or a fault class name. If you do not
specify a class_type, the default is to write all fault classes.
Table 4-4 on page 608 lists the valid fault class codes and their associated fault class names;
use either the code or the name when specifying the class_type argument.
• -Stuck_at 01 | 0 | 1
An optional switch and literal pair that specifies the stuck-at faults that you want to write.
The stuck-at literal choices are as follows:
01 — A literal that writes both the “stuck-at-0” and “stuck-at-1” faults. This is the
default.
0 — A literal that writes the “stuck-at-0” faults.
1 — A literal that writes the “stuck-at-1” faults.
• -All
An optional switch that writes all faults on all model, netlist primitive, and top module pins
to the file. This is the default.
• object_pathname
An optional repeatable string that specifies the list of pins or instances whose faults you
want to write.
• -Hierarchy integer
An optional switch and integer pair that specifies the maximum fault class hierarchy level
for which you want to write a hierarchical summary of the faults.
• -Min_count integer
An optional switch and integer pair that you can use with the -Hierarchy option and that
specifies the minimum number of faults that must be in a hierarchical level to write a
hierarchical summary of the faults. The default is 1.
• -Noeq
An optional switch that specifies for the tool to write the fault class of equivalent faults.
When you do not specify this switch, the tool writes an “EQ” as the fault class for any
equivalent faults. This switch is meaningful only when the Set Fault Mode command is set
to Uncollapsed.
• -CEll_name
An optional switch that specifies to list, for each reported fault, the corresponding circuit
element (ATPG library cell, Verilog primitive, primary input or primary output) as
summarized in Table 4-11. Cell names displayed for equivalent faults are based on the cells
associated with the equivalent faults, not the cells associated with the representative faults.
This switch is valid for the stuck-at, transition, toggle and IDDQ fault models only.
• -CLOCK_Cones
An optional switch that specifies to only write faults that fan out to clock ports, Set/Reset
ports or Read/Write control ports of memory elements, including RAM and ROM. Notice
that this applies to any memory elements, not just scan cells.
• -IO
An optional switch that specifies to write faults that are:
• Only controlled by PIs — To be acted on by the -IO switch, a PI either must not be
defined as a clock or, if defined as clock (or read/write control), must be constrained
off during capture.
• Only observed by POs
• -ASYnchronous_controls
An optional switch that specifies to only write faults that fan out to Set/Reset ports of state
elements and RAMs. This switch applies to a subset of the faults the -CLOCK_Cones
switch writes.
Examples
The following example performs a simulation run, then writes all the untestable faults to a file
for review:
set system mode fault
add faults -all
run
write faults faultlist -class ut
Related Commands
Add Faults Report Faults
Delete Faults Set Fault Mode
Load Faults
lbistarchitect
Usage
lbistarchitect {{-bist_ready bist_ready_arguments} | {-bist_controller
bist_controller_arguments} | {-fault_simulation fault_simulation_arguments} | {-tbgen
tbgen_arguments} | {-tvgen tvgen_arguments} | {-FAILuremap failuremap_arguments}
| {[-help] [-versions]} [-LIBRARY_ARRAY_DELIMITER {square | angle}]
Note
Shell commands do not follow the minimum typing rule.
Description
This command is a unified, process-phase invocation for LBISTArchitect. Choosing one of the
phase arguments initiates a phase in the logic BIST implementation—BIST-Ready phase, BIST
Controller Generation phase, Fault Simulation phase, Test Bench Generation phase, Test Vector
Generation phase, and the Failuremap Diagnostics phase.
Arguments
• -bist_ready bist_ready_arguments
This switch and set of arguments invokes the BIST-Ready phase. The BIST-Ready phase
performs DFT rule checks, scan insertion, X bounding, and MTPI test point analysis and
insertion. You must also supply any other required BIST-Ready design information, as well
as any desired options, with the bist_ready_arguments:
design_name [-VERilog] [-32 | -64] [-LIBrary filename] [-INCDIR include_directory]
[-LICense_wait {minutes | NONE | UNLimited}] [-SEnsitive | -INsensitive] [-LOG
filename [-Replace]] [-TOP module_name] [-DOfile dofile_name] [-HIStory] | [-Help |
-Version] [-DISABLE_Version_match]
Example
lbistarchitect -bist_ready big_alu_scan.v -library dft_lib -log brlog.log -replace
For descriptions of the switches common between multiple phases, refer to the first item
“design_name” beginning on page 747. The following switches are specific to the
-bist_ready phase, and therefore are described here.
-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.
• -fault_simulation fault_simulation_arguments
This switch and set of arguments invokes the logic BIST Fault Simulation phase. This phase
fault simulates the design using bit-accurate logic BIST patterns and generates the good-
circuit signature. You must also add any other required Fault Simulation arguments, as well
as any desired options, with the fault_simulation_arguments:
{design_name [-VERilog] [-LIBrary filename]
[-INCDIR include_directory] [-SEnsitive | -INsensitive] [-LOGfile filename [-REPlace]]
[-TOP model_name] [-DOfile dofile_name [-HIStory]]} | [-Help | -Usage | -Version]
Example
lbistarchitect -fault_simulation big_alu_bs.v -verilog -library dft_lib -logfile \\
balog_fsim.log -replace
• -tvgen tvgen_argments
This switch and set of arguments invokes the Test Vector Generator, a command-line-only
phase for generating test vectors and diagnostics.
This phase uses the Fault Simulation phase LFSR trace file as input and generates a WGL
output file. You can run this phase in either the default mode where the -Start, -Stop, or
-Check switches signify that the test vectors the tool generates will be performing a regular
BIST pattern run, across a pattern range. Or, you can run this phase in diagnostics mode by
either specifying a single step action with the -Check 1, or the -Funload option.
The design_name is the pathname of the file that contains the RTL description of the Logic
BIST Controller, and the interconnects between the controller and the core. The default file
name is design_bist.v. This file is written out during the BIST Controller synthesis phase.
{design_name output_filename [-FOrmat Wgl | Stil] [-BSDArchitect [-BSDL_file
filename]] [-TRace lfsr_trace_file] [[-STArt pattern_number] [-STOp pattern_number]]
{[[[-CHeck interval] | [SAmple sample_size]] | [[-Runload] | [-Unload pattern_number] |
[-FUnload unload_filename] [-PAttern_source filename] [-SIngle_scan_chain]]}
[-Interface_period period_in_ns] [-PEriod period_in_ns] [-Replace] {[-shift_rate rate
{-delay_cycles cycles | -se_on_cycles on_cycles -se_off_cycles off_cycles}]} [-HELP | -
VERSION]
output_filename — An optional string when you are in diagnostics mode that specifies
the name of the file where TVGen writes the diagnostic output results. You are in
diagnostics mode when you either issue the -Check switch with an interval of 1, or
when you issue the -FUnload switch.
By default, if you do not specify the value of the output_filename, the tool writes the
WGL information to the same filename that LBISTArchitect used for writing the
WGL information during the BIST Controller phase. This phase only overwrites an
existing output file if you used the -Replace switch.
-FOrmat [Wgl | Stil] — An optional switch and literal pair specifying which output
format the tool will write the test vectors. The default format is WGL.
-BSDArchitect [-BSDL_file filename] — An optional switch with a corresponding
optional switch and string pair. This option requires a valid BSDArchitect license.
Before using this switch, you must first run BSDArchitect to generate the TAP
controller and interconnects. BSDArchitect generates the BSDL file when it
generates the boundary scan controller and the interconnects.
This switch initiates the generation of TAP centric test vectors. This switch forces the
single scan chain behavior. The default name of the BSDL file is
design_name_bscan.bsd. You can override the default filename with the -BSDL_file
switch.
The default names for the generated files are enitity_lbist_bscan.test_seq (test
sequence file) and entity_lbist_bscan.wgl (test vector file). You can override these
default filenames using the Setup File Naming command.
-TRace lfsr_trace_file — An optional switch and string pair that specifies the name of
the LFSR trace file you created during the Fault Simulation phase of LBISTArchitect.
By default, the tool extracts the pathname of the trace file from the configuration data
for the BISTed core design.
If you are running diagnostics from a different location than where you performed the
BIST controller synthesis phase, the design’s configuration data may point to an
incorrect location for the lfsr_trace_file. Therefore, you can explicitly specify the
location to the correct lfsr_trace_file with the -Trace switch.
-STArt pattern_number — An optional switch and integer pair that specifies the number
of the first pattern to be run. The default start value of pattern_number is 0.
-STOp pattern_number — An optional switch and integer pair that specifies the number
of the last pattern of the run. The default stop value of pattern_number is the end of
the pattern space, pattern N-1.
-CHeck interval — An optional switch and integer pair that specifies to start running
patterns at the specified start pattern number (or pattern 0), run the number of patterns
specified by interval, check the MISR value, and continue checking at every interval,
through to the stop pattern number (or N-1). The default is to check only at the end of
the run.
If the check interval is 1, then the tool uses the BIST controller’s MISR reload
diagnostic mode. Otherwise, if the check interval is not 1, the checking will be
performed using a sequence of run interval sub ranges with full BIST controller
reinitializations.
-SAmple sample_size — An optional switch and string pair that controls the selection of
sub ranges of BIST patterns to execute. The argument is either an absolute pattern
count or a percentage value. This switch causes the tool to split the pattern region
from start to stop into a number of sub regions of the sample_size. These pattern
regions come from the flush test patterns and the MTPI phases within the overall
pattern region.
You can use this switch as a way of running through a sample of important patterns in
the BIST controller.
The -Sample and -Check switches are mutually exclusive. If you also specify the -
Funload, or -Unload switch, then the test vectors will perform only the specified
unloads, not a pattern region of the BIST controller run.
-Runload — An optional switch that specifies for the output file (set of test vectors) to
run the range of patterns (as specified by -Start and -Stop switches) with the BIST
controller in diagnostics mode.
After each BIST pattern completes the capture phase, the BIST controller waits, and
the test vectors unload the captured data (using the bist_diag_clk clock control input
signal). The tool then compares the unloaded scan chain contents to the expected
values for the pattern. Once these series of steps are done, the BIST controller
advances to the next pattern.
This switch can be useful to cause a range of BIST patterns to be unloaded from the
running BIST controller.
-Unload pattern_number — An optional switch and string pair that specifies that the test
vectors will be performing scan chain unloads rather than the default conventional
BIST pattern run. This mode of operation is mutually exclusive to the conventional
BIST pattern run. You can specify any number of unload patterns by repeating the
switch and string pair.
The tool will serially unload the scan chain contents for the pattern_number you
specify, which is what the tool would normally observe in the MISR.
-FUnload unload_filename — An optional switch and string pair that specifies that the
test vectors will be performing scan chain unloads rather than the default
conventional BIST pattern run. This mode of operation is mutually exclusive to the
conventional BIST pattern run. This switch specifies the pathname of an unload file
in a specified format.
The tool will serially unload the scan chain contents for the pattern_number you
specify, which is what the tool would normally observe in the MISR.
-PAttern_source pattern_filename — An optional switch that specifies an explicit
pathname to the pattern file. When TVGen generates the scan chain unload vectors,
the tool needs to read in the BIST pattern file to be able to specify the expected chain
content values for the unload.
By default, the tool reads in the patterns from the file location that is specified in the
metadata for the BISTed core design. However, if you are running diagnostics from a
different location than where you performed the BIST controller synthesis phase, the
pattern source file in the metadata may not contain the correct information for the
diagnostic process. Therefore, you can explicitly specify the location to the correct
pattern_filename with the -Pattern switch.
-SIngle_scan_chain — An optional switch specifying that any unloading of the core
scan chains the tool performs using the concatenated single scan chain, rather than the
top-level scan chains.
-Interface_period period_in_ns — An optional switch that allows you to overload the
default period value that the tool reads from metadata.
-PEriod period_in_ns — An optional switch that allows you to overload the default fast
clock period value that the tool reads from metadata.
-Replace — An optional switch that specifies that TVGen overwrites the existing output
file.
-shift_rate rate — An optional switch and integer pair specifying that the generated test
bench and vectors explicitly load the shift_rate register in the controller with a value
of (rate - 1). You use this switch in conjunction with either of the following switches:
o -delay_cycles cycles
o -se_on_cycles on_cycles -se_off_cycles off_cycles
You must specify rate with an integer between 1 and 8 meaning the following:
1 — Selects full speed shifting.
2 — Selects a shift speed of 1/2 bist_clk.
3 — Selects a shift speed of 1/3rd bist_clk.
4 — Selects a shift speed of 1/4th bist_clk.
5 — Selects a shift speed of 1/5th bist_clk.
6 — Selects a shift speed of1/6th bist_clk.
7 — Selects a shift speed of 1/7th bist_clk.
8 — Selects a shift speed of 1/8th bist_clk.
Note
The -delay_cycles cycles and {-se_on_cycles on_cycles -se_off_cycles off_cycles} are
mutually exclusive.
-delay_cycles cycles — An optional switch and integer pair specifying that the
generated test bench and vectors explicitly load the scan enable control register with
the value of in cycles bits 0 to 3 and 4 to 7. This configures the hardware to generate
the specified number of delay cycles for both scan enable transitions. You must
specify cycle using an integer between 0 (zero) and 15.
See “Using Delay Cycles for Scan Enable Transition” in the LBISTArchitect Process
Guide for additional information on delay cycles.
-se_on_cycles on_cycles -se_off_cycles off_cycles — An optional switch and integer
quadruplet specifying that the generated test bench and vectors explicitly load the
scan enable control register with the value of on_cycles in bits 0 to 3 and the value of
off_cycles in bits 4 to 7. This configures the hardware to generate on_cycles delay
cycles during the scan enable on transition, and off_cycles delay cycles during the
scan enable off transition. You must specify both on_cycles and off_cycles, and you
must these values using integers between 0 (zero) and 15.
See “Using Delay Cycles for Scan Enable Transition” in the LBISTArchitect Process
Guide for additional information on delay cycles.
• -tbgen tbgen_argments
This switch and set of arguments invokes the Test Bench Generator, a command-line-only
phase useful for signature mismatch debugging.
This phase uses the Fault Simulation phase LFSR trace file as input and generates a Verilog
or VHDL test bench. You can run this phase in either the default mode where the -Start,
-Stop, or -Check switches signifies that the test bench the tool generates will be performing
a regular BIST pattern run, across a pattern range. Or, you can run this phase in diagnostics
mode by specifying a single step action with the -Check 1 option with an output_filename.
The design_name is the pathname of the file that contains the RTL description of the Logic
BIST Controller, and the interconnects between the controller and the core. The default file
name is design_bist.v. This file is written out during the BIST Controller synthesis phase.
Note
If a trace file is not available because fault simulation has not been run, the -tbgen step
gives a warning but creates the default test bench.
output_filename — An optional string when you are in diagnostics mode that specifies
the name of the file where TBGen writes the diagnostic output results. You are in
diagnostics mode when you either issue the -Check switch with an interval of 1, or
when you issue the -FUnload switch. The HDL language of the generated test bench
will be the same as that of the BISTed core.
By default, if you do not specify the output_filename, the tool writes the test bench to
the same filename as you used for writing the test bench during the BIST Controller
Synthesis phase. This phase only overwrites an existing output file if you used the -
Replace switch.
-BSDArchitect [-BSDL_file filename] — An optional switch with a corresponding
optional switch and string pair. This option requires a valid BSDArchitect license.
Before using this switch, you must first run BSDArchitect to generate the TAP
controller and interconnects. BSDArchitect generates the BSDL file when it
generates the boundary scan controller and the interconnects.
This switch initiates the generation of the TAP centric test bench. This option forces
single scan chain behavior. The default name of the BSDL file is
design_name_bscan.bsd. You can override the default filename with the -BSDL_file
switch.
The default names for the generated files are enitity_lbist_bscan.test_seq (test
sequence file) and enitity_lbist_bscan_tb.suffix (test bench file). You can override
these default filenames using the Setup File Naming command.
-TRace lfsr_trace_file — An optional switch and string pair that specifies the name of
the LFSR trace file you created during the Fault Simulation phase of LBISTArchitect.
By default, the tool extracts the pathname of the trace file from the metadata for the
BISTed core design.
The lfsr_trace_file may not contain the correct information for the diagnostic process
if you are running diagnostics from a different location than where you performed the
BIST controller synthesis phase. Therefore, you can explicitly specify the location to
the correct lfsr_trace_file with the -Trace switch.
-STArt pattern_number — An optional switch and integer pair that specifies the number
of the first full pattern to be run. The default start value of pattern_number is 0.
-STOp pattern_number — An optional switch and integer pair that specifies the number
of the last pattern of the run. The default stop value of pattern_number is the end of
the pattern space, pattern N-1.
-CHeck interval — An optional switch and integer pair that specifies to start running
patterns at the specified start pattern number (or pattern 0), run the number of patterns
specified by interval, check the MISR value, and continue checking at every interval,
through to the stop pattern number (or N-1). The default is to check only at the end of
the run.
If the check interval is 1, then the tool uses the BIST controller’s MISR reload
diagnostic mode. Otherwise, if the check interval is not 1, the checking will be
performed using a sequence of run interval sub ranges with full BIST controller
reinitializations.
-SAmple sample_size — An optional switch and string pair that controls the selection of
sub ranges of BIST patterns to execute. The argument is either an absolute pattern
count or a percentage value. This switch causes the tool to split the pattern region
from start to stop into a number of sub regions of the sample_size. These pattern
regions come from the flush test patterns and the MTPI phases within the overall
pattern region.
You can use this switch as a way of running through a sample of important patterns in
the BIST controller.
The -Sample and -Check switches are mutually exclusive. If you also specify the
-Funload, or -Unload switch, then the test vectors will perform only the specified
unloads, not a pattern region of the BIST controller run.
-Runload — An optional switch that specifies for the output file (test bench) to run the
range of patterns (as specified by -Start and -Stop switches) with the BIST controller
in diagnostics mode.
After each BIST pattern completes the capture phase, the BIST controller waits, and
the test bench unloads the captured data (using the bist_diag_clk clock control input
signal). The tool then compares the unloaded scan chain contents to the expected
values for the pattern. Once these series of steps are done, the BIST controller
advances to the next pattern.
This switch can be useful to cause a range of BIST patterns to be unloaded from the
running BIST controller.
-Unload pattern_number — An optional switch and string pair that specifies that the test
bench will be performing scan chain unloads rather than the default conventional
BIST pattern run. This mode of operation is mutually exclusive to the conventional
BIST pattern run. You can specify any number of unload patterns by repeating the
switch and string pair.
The tool will serially unload the scan chain contents for the pattern_number you
specify, which is what the tool would normally observe in the MISR.
-FUnload unload_filename — An optional switch and string pair that specifies that the
test bench will be performing scan chain unloads rather than the default conventional
BIST pattern run. This mode of operation is mutually exclusive to the conventional
BIST pattern run. This switch specifies the pathname of an unload file in a specified
format.
The tool will serially unload the scan chain contents for the pattern_number you
specify, which is what the tool would normally observe in the MISR.
-PAttern_source pattern_filename — An optional switch that specifies an explicit
pathname to the pattern file. When TBGen generates the scan chain unload test
bench, the tool needs to read in the BIST pattern file to be able to specify the expected
chain content values for the unload.
By default, the tool reads in the patterns from the file location that is specified in the
metadata for the BISTed core design. However, if you are running diagnostics from a
different location than where you performed the BIST controller synthesize phase, the
pattern source file in the metadata may not contain the correct information for the
diagnostic process. Therefore, you can explicitly specify the location to the correct
pattern_filename with the -Pattern switch.
-Replace — An optional switch that specifies that TBGen overwrites the existing output
file.
-shift_rate rate — An optional switch and integer pair specifying that the generated test
bench and vectors explicitly load the shift_rate register in the controller with a value
of (rate - 1). You use this switch in conjunction with either of the following switches:
o -delay_cycles cycles
o -se_on_cycles on_cycles -se_off_cycles off_cycles
You must specify rate with an integer between 1 and 8 meaning the following:
1 — Selects full speed shifting.
2 — Selects a shift speed of 1/2 bist_clk.
3 — Selects a shift speed of 1/3rd bist_clk.
4 — Selects a shift speed of 1/4th bist_clk.
5 — Selects a shift speed of 1/5th bist_clk.
6 — Selects a shift speed of1/6th bist_clk.
7 — Selects a shift speed of 1/7th bist_clk.
8 — Selects a shift speed of 1/8th bist_clk.
Note
The -delay_cycles cycles and {-se_on_cycles on_cycles -se_off_cycles off_cycles} are
mutually exclusive.
-delay_cycles cycles — An optional switch and integer pair specifying that the
generated test bench and vectors explicitly load the scan enable control register with
the value of in cycles bits 0 to 3 and 4 to 7. This configures the hardware to generate
the specified number of delay cycles for both scan enable transitions. You must
specify cycle using an integer between 0 (zero) and 15.
See “Using Delay Cycles for Scan Enable Transition” in the LBISTArchitect Process
Guide for additional information on delay cycles.
-se_on_cycles on_cycles -se_off_cycles off_cycles — An optional switch and integer
quadruplet specifying that the generated test bench and vectors explicitly load the
scan enable control register with the value of on_cycles in bits 0 to 3 and the value of
off_cycles in bits 4 to 7. This configures the hardware to generate on_cycles delay
cycles during the scan enable on transition, and off_cycles delay cycles during the
scan enable off transition. You must specify both on_cycles and off_cycles, and you
must these values using integers between 0 (zero) and 15.
See “Using Delay Cycles for Scan Enable Transition” in the LBISTArchitect Process
Guide for additional information on delay cycles.
• -FAILuremap failuremap_arguments
This switch and set of arguments invokes the command-line only diagnostic phase. This
phase takes as input both the source reference (WGL, Verilog, or VHDL test bench), and the
reformatted logfile (from either the ATE or the event-based simulator). Your first pass
through this phase generates information on the failing patterns, and your second pass
through this phase generates the corresponding failing bits within the scan cells.
The design_name is the pathname of the file that contains the RTL description of the Logic
BIST Controller, and the interconnects between the controller and the core. The default file
name is design_bist.v. This file is written out during the BIST Controller Generation phase.
{design_name
[source_reference] [reformatted_logfile] [output_file]
source_reference — The pathname to the WGL, Verilog, or VHDL test bench
(source_reference) file that you used to perform the event-based simulation run. The
tool processes this specially annotated source_reference file, along with the logfile
that you reformatted. Both TVGen and TBGen place annotations in the WGL or test
bench file to tie the time and cycle values to the BIST patterns. The information in
this specially annotated source_reference file is what allows the tool to derive the
relationship between the vector run time and the associated pattern number.
reformatted_logfile — The pathname to the MISR fail logfile (first cycle through
-failuremap), or the pathname to the pattern fail logfile (the second cycle through
-failuremap). The following example shows the format of the failing BIST pattern file
(time-based):
%MISR_FAIL
# this is a comment list
# <time> <output>
1020ns bist_data_sout
2001ns bist_data_sout
2020010ps bist_data_sount
The following example shows the format of the failing BIST pattern unload file
(time-based):
%PATTERN_FAIL
# this is a comment list
# <time> <output> <expected_value> <actual_value>
1020ns sout_1 H L
2001ns sout_2 L H
2020010ps shared_pin[0] L H
The following example shows the format of the failing BIST pattern unload file
(cycle-based):
%PATTERN_FAIL
# this is a comment list
# <time> <output> <expected_value> <actual_value>
cycle_102 sout_1 H L
cycle_200 sout_2 L H
cycle_202 shared_pin[0] L H
The following example shows three failing patterns, four passing patterns, one flush
test pattern, and three non flush test patterns in the different MTPI phases:
%PATTERN_UNLOAD
# this is a comment list
# <pattern> <intent>
2 pass flush
33 pass MTPI phase 0
1024 fail
2043 fail
4096 pass MTPI phase 1
8109 fail
8192 pass MTPI phase 2
output_file — The pathname to where the tool writes the results of the prediagnostic
failuremap phase.
• design_name
A required string that specifies the pathname of the design on which to invoke. The design
format is derived either from a supplied format switch (-VERilog) or from the design_name
suffix.
• -VErilog
An optional switch specifying that design_name is a netlist in Verilog format.
• -VHdl (Core Fault Simulation Only)
An optional switch specifying that design_name is a netlist in VHDL format as supported by
LBISTArchitect.
• -LIBrary library_name
An optional switch and repeatable string pair that specifies the names of the files containing
the ATPG library descriptions for all cell models in design_name. You can use wildcarding
as supported by the invocation shell to specify multiple library files.
This argument is not required if the specified netlist fully defines all the primitives in the
design (which can occur in Verilog format). If the library does not contain scan models for
any of the sequential element your design uses, LBISTArchitect issues a warning message
stating this when you switch from Setup mode to Dft mode during the session.
• -INCDIR include_directory
An optional switch and repeatable string that lists directories relative to which the tool
should search for files included in a Verilog design with the ‘include compiler directive.
This enables you to use simple filenames in ‘include directives and, when invoking
LBISTArchitect, use the -Incdir switch to specify the pathnames of the directories
containing the files. Each include_directory in the list should be either a relative directory
pathname, relative to the current (tool invocation) directory, or an absolute directory
pathname.
The tool searches for include files relative to the following locations in the following order
of precedence:
1. Absolute pathnames specified by ‘include directives in the Verilog design
2. Directories specified with the -Incdir invocation switch, if used
When locating ‘include file targets that are a relative paths, the tool appends the target
path to each specified include_directory to obtain the pathname of the include file. The
tool searches these directories in the same order they are listed, left to right, in the
command. If identically named files exist in multiple directories, the tool reads in the
first file it finds and ignores others with the same name.
A search path may contain the asterisk (*) and other wildcard characters supported by
the invocation shell. For example, if you specify “-incdir sp*”, the tool recognizes every
directory within the current directory that starts with “sp” as a search path.
3. Directory where the calling file is located
4. Directory from which the tool was invoked (current directory)
• -INSENsitive | -SENsitive
Optional switches that specify for the tool to consider pin, instance, and net pathnames case-
insensitive or case-sensitive. The default is case-insensitive for all netlist formats except
Verilog, which the tool treats as case-sensitive.
Regardless of the use of this switch, command names are always case-insensitive.
• -LOGfile filename [-Replace]
An optional switch and string pair that specifies the name of the file to which you want
LBISTArchitect to write all session information. The default is to display session
information to the standard output.
-Replace — An optional switch that specifies to overwrite the -LOGfile filename if one
by the same name already exists.
• -TOP model_name
An optional switch and string pair that specifies the name of the top-level model in the
netlist. If the netlist describes multiple top modules and you do not use this argument,
LBISTArchitect assumes the first top to be the top module.
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.
The Tessent Documentation System. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751
Mentor Support Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 752
• Shell Command — On Linux platforms, enter mgcdocs at the shell prompt or invoke a
Tessent tool with the -Manual invocation switch.
• File System — Access the Tessent InfoHub or PDF bookcase directly from your file
system, without invoking a Tessent tool. For example:
HTML:
firefox $MGC_DFT/docs/infohubs/index.html
PDF:
acroread $MGC_DFT/docs/pdfdocs/_bk_tessent.pdf
• Application Online Help — You can get contextual online help within most Tessent
tools by using the “help -manual” tool command:
> help dofile -manual
This command opens the appropriate reference manual at the “dofile” command
description.
• Software Updates — Get the latest releases and product enhancements to keep your
environment current.
• Mentor Graphics Support Center — Access our online knowledge base, personalized
to your Mentor products.
• Support Forums — Learn, share, and connect with other Mentor users.
• Technical Support — Collaborate with Mentor support engineers to solve complex
design challenges.
• Regular Communications — Receive the latest knowledge base articles and
announcements for your Mentor products.
• Mentor Ideas — Share ideas and vote for your favorites to shape future products.
More information is available here:
https://support.mentor.com/
If your site is under a current support contract, but you do not have a Support Center login,
register today:
https://support.mentor.com/register
Index
—T—
TIE0, scannable, 47
TIE1, scannable, 47
IMPORTANT INFORMATION
USE OF ALL SOFTWARE IS SUBJECT TO LICENSE RESTRICTIONS. CAREFULLY READ THIS LICENSE
AGREEMENT BEFORE USING THE PRODUCTS. USE OF SOFTWARE INDICATES CUSTOMER’S COMPLETE
AND UNCONDITIONAL ACCEPTANCE OF THE TERMS AND CONDITIONS SET FORTH IN THIS AGREEMENT.
ANY ADDITIONAL OR DIFFERENT PURCHASE ORDER TERMS AND CONDITIONS SHALL NOT APPLY.
2. GRANT OF LICENSE. The software installed, downloaded, or otherwise acquired by Customer under this Agreement, including any
updates, modifications, revisions, copies, documentation, setup files 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. Except for Software that is embeddable (“Embedded Software”), which is licensed pursuant to
separate embedded software terms or an embedded software supplement, 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 4.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 provides any
feedback or requests any change or enhancement to Products, whether in the course of receiving support or consulting services,
evaluating Products, 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. BETA CODE.
3.1. Portions or all of certain Software may contain code for experimental testing and evaluation (which may be either alpha or beta,
collectively “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. Mentor Graphics may
choose, at its sole discretion, not to release Beta Code commercially in any form.
3.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.
3.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 3.3 shall survive termination of this Agreement.
4. RESTRICTIONS ON USE.
4.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. Except for Embedded Software that has been embedded in executable
code form in Customer’s product(s), 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 Products 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 becomes aware of such unauthorized
disclosure or use. Customer acknowledges that Software provided hereunder may contain source code which is proprietary and
its confidentiality is of the highest importance and value to Mentor Graphics. Customer acknowledges that Mentor Graphics
may be seriously harmed if such source code is disclosed in violation of this Agreement. Except as otherwise permitted for
purposes of interoperability as specified by applicable and mandatory local law, Customer shall not reverse-assemble,
disassemble, reverse-compile, or reverse-engineer any Product, or in any way derive any source code from Software that is not
provided to Customer in source code form. 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’ trade secret and 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
Products or Files or allow their use for the purpose of developing, enhancing or marketing any product that is in any way
competitive with Products, or disclose to any third party the results of, or information pertaining to, any benchmark.
4.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, or as permitted for Embedded Software under separate
embedded software terms or an embedded software supplement. 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 on-site
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.
4.3. Customer agrees that it will not subject any Product to any open source software (“OSS”) license that conflicts with this
Agreement or that does not otherwise apply to such Product.
4.4. 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.
4.5. The provisions of this Section 4 shall survive the termination of this Agreement.
5. SUPPORT SERVICES. To the extent Customer purchases support services, Mentor Graphics will provide Customer with 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/supportterms.
6. OPEN SOURCE SOFTWARE. Products may contain OSS or code distributed under a proprietary third party license agreement, to
which additional rights or obligations (“Third Party Terms”) may apply. Please see the applicable Product documentation (including
license files, header files, read-me files or source code) for details. In the event of conflict between the terms of this Agreement
(including any addenda) and the Third Party Terms, the Third Party Terms will control solely with respect to the OSS or third party
code. The provisions of this Section 6 shall survive the termination of this Agreement.
7. LIMITED WARRANTY.
7.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, improper installation or Customer is not
in compliance with this Agreement. 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. 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.”
7.2. THE WARRANTIES SET FORTH IN THIS SECTION 7 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.
8. LIMITATION OF LIABILITY. TO THE EXTENT PERMITTED UNDER APPLICABLE LAW, IN NO EVENT SHALL
MENTOR GRAPHICS OR ITS LICENSORS BE LIABLE FOR INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES (INCLUDING LOST PROFITS OR SAVINGS) WHETHER BASED ON CONTRACT, TORT OR ANY OTHER
LEGAL THEORY, EVEN IF MENTOR GRAPHICS OR ITS LICENSORS HAVE BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES. IN NO EVENT SHALL MENTOR GRAPHICS’ OR ITS LICENSORS’ LIABILITY UNDER THIS
AGREEMENT EXCEED THE AMOUNT RECEIVED FROM CUSTOMER FOR THE HARDWARE, SOFTWARE LICENSE OR
SERVICE GIVING RISE TO THE CLAIM. IN THE CASE WHERE NO AMOUNT WAS PAID, MENTOR GRAPHICS AND ITS
LICENSORS SHALL HAVE NO LIABILITY FOR ANY DAMAGES WHATSOEVER. THE PROVISIONS OF THIS SECTION 8
SHALL SURVIVE THE TERMINATION OF THIS AGREEMENT.
10. INFRINGEMENT.
10.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 such 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.
10.2. If a claim is made under Subsection 10.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.
10.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; (h) OSS, except to the extent that
the infringement is directly caused by Mentor Graphics’ modifications to such OSS; or (i) infringement by Customer that is
deemed willful. In the case of (i), Customer shall reimburse Mentor Graphics for its reasonable attorney fees and other costs
related to the action.
10.4. THIS SECTION 10 IS SUBJECT TO SECTION 8 ABOVE AND STATES THE ENTIRE LIABILITY OF MENTOR
GRAPHICS AND ITS LICENSORS, AND CUSTOMER’S SOLE AND EXCLUSIVE REMEDY, FOR DEFENSE,
SETTLEMENT AND DAMAGES, WITH RESPECT TO ANY ALLEGED PATENT OR COPYRIGHT INFRINGEMENT
OR TRADE SECRET MISAPPROPRIATION BY ANY PRODUCT PROVIDED UNDER THIS AGREEMENT.
11. TERMINATION AND EFFECT OF TERMINATION.
11.1. If a Software license was provided for limited term use, such license will automatically terminate at the end of the authorized
term. 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.
11.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 of this Agreement and/or any license granted under this Agreement, 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.
12. EXPORT. The Products provided hereunder are subject to regulation by local laws and European Union (“E.U.”) and United States
(“U.S.”) government agencies, which prohibit export, re-export or diversion of certain products, information about the products, and
direct or indirect products thereof, to certain countries and certain persons. Customer agrees that it will not export or re-export Products
in any manner without first obtaining all necessary approval from appropriate local, E.U. and U.S. government agencies. If Customer
wishes to disclose any information to Mentor Graphics that is subject to any E.U., U.S. or other applicable export restrictions, including
without limitation the U.S. International Traffic in Arms Regulations (ITAR) or special controls under the Export Administration
Regulations (EAR), Customer will notify Mentor Graphics personnel, in advance of each instance of disclosure, that such information
is subject to such export restrictions.
13. U.S. GOVERNMENT LICENSE RIGHTS. Software was developed entirely at private expense. The parties agree that all Software is
commercial computer software within the meaning of the applicable acquisition regulations. Accordingly, pursuant to U.S. 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, which shall supersede any
conflicting terms or conditions in any government order document, except for provisions which are contrary to applicable mandatory
federal laws.
14. 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.
15. 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 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 15 shall survive the termination of this Agreement.
16. CONTROLLING LAW, JURISDICTION AND DISPUTE RESOLUTION. The owners of certain Mentor Graphics intellectual
property licensed under this Agreement are located in Ireland and the U.S. 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, U.S., if Customer is located in North or South America, and the laws of Ireland if Customer is located outside of North or
South America or Japan, and the laws of Japan if Customer is located in Japan. 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, or the Tokyo District Court when the laws of Japan apply. Notwithstanding the foregoing, all
disputes in Asia (excluding Japan) 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. Nothing in this section shall restrict Mentor Graphics’ right to bring an action (including
for example a motion for injunctive relief) 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.
17. 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.
18. MISCELLANEOUS. This Agreement contains the parties’ entire understanding relating to its subject matter and supersedes all prior
or contemporaneous agreements. Any translation of this Agreement is provided to comply with local legal requirements only. In the
event of a dispute between the English and any non-English versions, the English version of this Agreement shall govern to the extent
not prohibited by local law in the applicable jurisdiction. This Agreement may only be modified in writing, signed by an authorized
representative of each party. Waiver of terms or excuse of breach must be in writing and shall not constitute subsequent consent, waiver
or excuse.
Rev. 170330, Part No. 270941