Tshell Bscan User
Tshell Bscan User
Tshell Bscan User
Tessent™ BoundaryScan
User’s Manual
Software Version 2021.3
Document Revision 22
Unpublished work. © 2021 Siemens
This material contains trade secrets or otherwise confidential information owned by Siemens Industry Software, Inc.,
its subsidiaries or its affiliates (collectively, "Siemens"), or its licensors. Access to and use of this information is
strictly limited as set forth in Customer's applicable agreement with Siemens. This material may not be copied,
distributed, or otherwise disclosed outside of Customer's facilities without the express written permission of
Siemens, and may not be used in any way not expressly authorized by Siemens.
This document is for information and instruction purposes. Siemens 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 Siemens to determine whether any changes have been made. Siemens disclaims all warranties with
respect to this document including, without limitation, the implied warranties of merchantability, fitness for a
particular purpose, and non-infringement of intellectual property.
The terms and conditions governing the sale and licensing of Siemens products are set forth in written agreements
between Siemens and its customers. Siemens' End User License Agreement may be viewed at:
www.plm.automation.siemens.com/global/en/legal/online-terms/index.html.
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 Siemens whatsoever.
TRADEMARKS: The trademarks, logos, and service marks ("Marks") used herein are the property of Siemens or
other parties. No one is permitted to use these Marks without the prior written consent of Siemens or the owner of
the Marks, as applicable. The use herein of third party Marks is not an attempt to indicate Siemens as a source of a
product, but is intended to indicate a product from, or associated with, a particular third party. A list of Siemens'
trademarks may be viewed at: www.plm.automation.siemens.com/global/en/legal/trademarks.html. 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.
Author: In-house procedures and working practices require multiple authors for documents. All
associated authors for each topic within this document are tracked within the Siemens
documentation source. For specific topic authors, contact the Siemens Digital Industries
Software documentation department.
Revision History: Released documents include a revision history of up to four revisions. For
earlier revision history, refer to earlier releases of documentation on Support Center.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
4 Tessent™ BoundaryScan User’s Manual, v2021.3
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Table of Contents
Chapter 1
Introduction to Tessent BoundaryScan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Benefits of Boundary Scan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Boundary Scan Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Boundary Scan Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Embedded Boundary Scan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
TAP Controller State Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Boundary Scan Insertion With Tessent BoundaryScan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Chapter 2
Getting Started With Tessent BoundaryScan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
DFT Flow Using Tessent Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Design Flow Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Design Flow Dofile Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Pin Order File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Load the Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Set the Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Read the Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Read the Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Elaborate the Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Specify and Verify DFT Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Specify DFT Specification Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Add Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Run DRC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Create DFT Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Invoke create_dft_specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Configure the DFT Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Configure the DFT Specification With the Configuration Data Visualizer . . . . . . . . . . . 38
Configure the DFT Specification in Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Validate the DFT Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Process DFT Specification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Create DFT Hardware With the DFT Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Extract ICL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Preparation for Pattern Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Create Patterns Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Automatically Created Patterns Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Configure the Patterns Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Process Patterns Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Create Patterns and Test Benches According to Your Specification . . . . . . . . . . . . . . . . . 53
Run and Check Test Bench Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Run Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Check Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Formal Verification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Test Logic Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
RTL Design Flow Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Using Generated SDC for BoundaryScan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Synthesizing the RTL Design With Test Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Gate Level Design Flow Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Run Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Concatenate Netlist Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Chapter 3
Boundary Scan Specific Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Pad Cell Library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Using pad.library and Verilog Simulation Models for the Pad Cells . . . . . . . . . . . . . . . . . . 63
Creating a Tessent Cell Library from pad.library and Verilog Simulation Models . . . . . . . 63
Customizing Boundary Scan Pin Order. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Inserting Tessent Boundary Scan on a Custom or Preexisting TAP Controller . . . . . . . . . . 67
Sharing TAP Ports Between a Preexisting TAP and Tessent TAP . . . . . . . . . . . . . . . . . . . . 68
AC JTAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Embedded Boundary Scan Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Adding a Test Data Register to the TAP Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
BSDL-Only Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Dividing Boundary Scan for Logic Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Pad Cell Input Path Considerations for Boundary Scan Testing . . . . . . . . . . . . . . . . . . . . . . 82
Pad Cell Library Attribute Considerations for Boundary Scan Testing . . . . . . . . . . . . . . . . 83
Multiple Bonding Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Custom Boundary Scan Cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Debugging Failing JtagBscan Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Chapter 4
MemoryBIST Insertion With BoundaryScan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
TAP, BoundaryScan, and MemoryBIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
MemoryBIST Insertion Before Tap and BSCAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Chapter 5
Tap, BoundaryScan and LPCT Type 2 TestKompress. . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Design Flow for TAP Control of TestKompress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
TAP and Boundary Scan Insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Scan Chain Insertion and Stitching. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
EDT (Type 2 LPCT) IP Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Pattern Generation and Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Appendix A
Tessent Core Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
BoundaryScan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
CustomBsdlCellInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
ExternalPort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
NonScannableInstances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Segment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Appendix B
Support For AC Pins (IEEE 1149.6) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Specifying AC Pins in Your Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
AC Pins in Configuration Specifications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
AC Pins in the DftSpecification Wrapper. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
AC Pins in the PatternsSpecification Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
IEEE 1149.6 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
TAP Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
AC Control Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Boundary Scan Cells. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Differential Output Pad Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
AC Select Cell Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Differential Input Pad Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Test Receiver Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Appendix C
Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Tessent Documentation System. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Global Customer Support and Success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Third-Party Information
The most recent revision to the IEEE standard, made in 2013, is known as IEEE 1149.1-2013.
The IEEE 1149.6 specification adds support for differential and capacitively coupled pin
testing. Tessent BoundaryScan fully supports IEEE 1149.1-2001 and IEEE 1149.6. It does not
support the extensions of newer versions of IEEE 1149.1.
• Incorrect components
• Missing components
• Incorrectly oriented components
• Components with stuck, shorted, or open pins
• Failed wire bonds
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Introduction to Tessent BoundaryScan
Benefits of Boundary Scan
Although engineering costs may increase slightly because of the additional silicon and ports the
boundary scan circuitry uses, implementing the IEEE 1149.1 standard can dramatically reduce
design manufacturing costs.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Introduction to Tessent BoundaryScan
Boundary Scan Overview
Using boundary scan on a board or MCM provides access to the chips’ input and output ports by
linking them together in a scan path. Data shifts along the scan path, starting at the board’s test
data in (TDI) port and ending at the board’s test data out (TDO) port. The scan path connects all
the devices on the board that have boundary scan circuitry. The TDO of one chip feeds the TDI
of the next, all the way around the board.
Test clock (TCK) and test mode select (TMS) connect globally to each boundary scan device in
the board’s scan path. Tessent BoundaryScan uses this configuration to enable you to test board
interconnections, take a snapshot of system data, or test individual chips. The test access port
(TAP) controller is a state machine that controls the operation of the boundary scan circuitry.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Introduction to Tessent BoundaryScan
Boundary Scan Architecture
• Core circuit — This is the application logic of the original design before the addition of
boundary scan logic. This logic may include internal scan circuitry or internal scan ports
to facilitate building the boundary scan path.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Introduction to Tessent BoundaryScan
Boundary Scan Architecture
• Boundary scan cells — These contain memory elements for capturing data from the
circuit, loading data into the circuit, and shifting data to the next cell in the scan path.
The tool places boundary scan cells between the core circuit and each input,
bidirectional, or two- or three-state output pin. The set of boundary scan cells comprises
a parallel-in, parallel-out shift register that runs along the periphery, or boundary, of the
original design.
• Test access port (TAP) — This is a set of signals that controls the boundary scan
operation. The TAP consists of at least four signals of the test bus. These include the test
clock (TCK), the test data input (TDI), the test data output (TDO), and the test mode
selector (TMS). Also shown is an optional, active low, asynchronous test reset signal
(TRST).
• TAP controller state machine — This is a finite state machine that controls the
operation of the instruction and test data registers. The TAP controller’s next state
depends on its current state and the TMS signal’s value at each clock pulse.
• Boundary scan register — This is the primary test data register. The boundary scan
register is a virtual shift register. It consists of the individual boundary scan cells joined
in a path, which can load and unload input and output data for the circuit. The loading
and unloading can be done either serially or in parallel.
• Bypass register — This is a register that shortens the path between TDI and TDO to one
cell when there is no need to test a particular device. This shortened path bypasses the
chip, providing more efficient test data shifting to other devices in the chain.
• Optional test data registers:
o Device identification register — This register contains a device identification code
or other code used to check that the board contains the correct chips.
o Data-specific registers — These registers provide access to the chip’s test support
features, such as BIST and internal scan paths.
• Instruction register — This register controls the boundary scan circuitry by connecting
a specific test data register between the TDI and TDO pins. It controls the operation
affecting the data in that register using a predefined set of instructions. Some
instructions are mandatory, and others are optional.
Mandatory instructions:
o EXTEST — This instruction tests circuitry external to the devices, such as board
interconnect. EXTEST is the main test instruction for boundary scan testing.
o SAMPLE/PRELOAD — This instruction takes data from the I/O pads of the chips
and latches it into the boundary scan register during normal board operation.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Introduction to Tessent BoundaryScan
Embedded Boundary Scan
Note
The IEEE 1149.1-2001 standard has redefined this instruction as two separate
instructions (SAMPLE and PRELOAD). The tool uses the PRELOAD
instruction, if it is available, to load the boundary scan register. If PRELOAD is not
available, SAMPLE/PRELOAD is used.
o SAMPLE — This instruction takes data from the I/O pads of the chips and latches it
into the boundary scan register during normal board operation.
o PRELOAD — This instruction loads test data into the boundary scan register before
selecting another instruction.
o BYPASS — This instruction enables bypassing of chips. Bypassed chips contribute
only a single scan flop to the chain instead of all boundary scan registers, reducing
the number of shifts.
Optional instructions:
o INTEST — This instruction tests a chip’s internal circuitry by applying a test vector
to the application logic and capturing the output response.
o IDCODE — This instruction connects the device identification register between
TDI and TDO. Use IDCODE when the device identification register contains the
device ID code. This code verifies that the chip belongs on the board.
o USERCODE — This instruction also connects the device identification register
between TDI and TDO, but the information in the register is user-defined and
provides more detail than the IDCODE information.
o CLAMP — This instruction forces static 1s or 0s on selected nodes to block
interfering signals or to create a testable situation.
o HIGHZ — This instruction forces a chip’s output and bidirectional pins into a high-
impedance state so that an in-circuit tester can test the chip without risking overdrive
damage.
o RUNBIST — This instruction runs the circuit’s internal BIST procedure.
o EXTEST_PULSE — This instruction tests circuitry external to the chips for
designs that have AC pins. This instruction is mandatory when using AC cell types.
o EXTEST_TRAIN — This instruction is optional when using AC cell types. It
operates similarly to EXTEST_PULSE but can use multiple TCK cycles. For more
details, refer to the IEEE 1149.6 standard.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Introduction to Tessent BoundaryScan
TAP Controller State Machine
routing and improved timing. The Tessent embedded boundary scan feature enables boundary
scan cells to be integrated near their associated I/O cells within the core rather than at the top
level of the chip.
You can add boundary scan cells to any core at any level of a design. See Figure 1-3 for a
three-level example of an embedded boundary scan solution.
The embedded boundary scan capability of Tessent BoundaryScan automates the integration of
the boundary scan cells and the verification of the resulting boundary scan segment within the
core.
This approach maintains and extends the physical design benefits of placing I/O cells directly
into cores. It enables a more efficient core reuse methodology because all design and DFT sign-
off activity can occur at the core level.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Introduction to Tessent BoundaryScan
TAP Controller State Machine
The TMS signal (shown adjacent to each state transition) controls the state transitions on each
rising edge of TCK. The rising edge of TCK also captures the TAP controller inputs.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Introduction to Tessent BoundaryScan
Boundary Scan Insertion With Tessent BoundaryScan
• Instruction Support — Full support of the required IEEE 1149.1 standard instructions.
• Extension Support — Support of base extensions to IEEE 1149.1, such as the Device
ID register.
• Compliant Verilog — Generation of Verilog (IEEE 1364-2001) code that is compliant
with Questa® SIM, Synopsys Design Compiler, and other industry simulation and
synthesis tools.
• RTL-Level Boundary Scan Generation — Insertion and connection of boundary scan
circuitry at the RTL level, moving the generation of test circuitry earlier in the design
flow.
• Customized Boundary Scan — Generation of default or user-customized boundary
scan architectures.
• Automatic Connection — Automatic integration of boundary scan circuitry with
internal scan logic.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Introduction to Tessent BoundaryScan
Boundary Scan Insertion With Tessent BoundaryScan
• Test bench Generation — Generation of a test bench that enables testing the boundary
scan circuitry after integration with the core application logic.
• Test Vector Generation — Generation of boundary scan test vectors in a variety of
common test data formats, including ASCII, binary, STIL, WGL, and others.
• Setup File Generation — Generation of ATPG setup files for designs with generated
boundary scan circuitry.
• Compliant BSDL — Production of Boundary Scan Definition Language (BSDL)
output compliant with the IEEE 1149.1-2001 standard.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Chapter 2
Getting Started With Tessent BoundaryScan
This chapter describes how to start inserting Tessent BoundaryScan within Tessent Shell and
includes examples showing the most common scenarios and usages.
For a complete set of wrapper and property descriptions, refer to the “BoundaryScan” section of
the “DftSpecification Configuration Syntax,” “PatternsSpecification Configuration Syntax,”
and “DefaultsSpecification Configuration Syntax” sections in the Tessent Shell Reference
Manual. The flow and steps are the same for inserting TAP, boundary scan, and embedded
boundary scan. Each step describes any commands required for embedded boundary scan.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Check Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Formal Verification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Test Logic Synthesis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
RTL Design Flow Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Gate Level Design Flow Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
DFT Flow Using Tessent Shell
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Design Flow Prerequisites
Note
If the Tessent cell library for the IO pad cells is not available, Tessent Shell also natively
supports the Tessent BoundaryScan-LV pad library.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Pin Order File
Extract ICL
extract_icl
Related Topics
Load the Design
Specify and Verify DFT Requirements
Create DFT Specification
Process DFT Specification
Extract ICL
Create Patterns Specification
Process Patterns Specification
Run and Check Test Bench Simulations
Test Logic Synthesis
Load the pin order file with the -pin_order_file option of the set_boundary_scan_port_options
command.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Pin Order File
Note
If you run set_boundary_scan_port_options command with the -pin_order_file option, the
check_design_rules command does not create the file.
The first column of the pin order file lists the port names associated with the cells for the
boundary scan chain. The order of the rows defines the ordering of the scan chain. The chain
starts with the cell or cells created for the port listed in the first row of the pin order file,
followed by the cell or cells created for the port listed in the second row, and so on.
The second column lists the pin IDs for mapping the device package pins in the BSDL file. You
can use the -packed_pin_name option of the set_boundary_scan_port_options command to
define the pin IDs if the pin order file is created automatically during check_design_rules.
The third column defines options for the ports. Do not use the pin order file to set these options.
Instead, use the -cell_options option of set_boundary_scan_cell_options or
BoundaryScanCellOptions in the BoundaryScan or the EmbeddedBoundaryScan wrapper to set
them.
The fourth column specifies logical groups for the ports. Do not use the pin order file to define
these groups. Instead, use LogicalGroups in the BoundaryScan or EmbeddedBoundaryScan
wrapper to define them.
Related Topics
check_design_rules [Tessent Shell Reference Manual]
set_boundary_scan_port_options [Tessent Shell Reference Manual]
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Load the Design
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Read the Libraries
Examples
Example 1
The following example sets the context to dft and specifies that the design to be read in is
written in RTL.
Example 2
The following example sets the context to dft and specifies that a gate-level netlist is to be read
in.
Example 3
The following example opens a child’s TSDB directory and therefore, exposes it at the parent
level.
open_tsdb ../ebscan_tsdb_outdir
Examples
Example 1
The following example reads in the Tessent cell library file for the pad IO macros.
read_cell_library ../library/adk_complete.tcelllib
Example 2
The following example reads in the ATPG.lib files and the old pad library description when the
Tessent cell libraries do not include the pad information.
read_cell_library ../library/atpg.lib
read_cell_library ../library/pad.library
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Read the Design
Examples
Example 1
The following example reads in one netlist, which can be either RTL or gate level.
read_verilog ../netlist/cpu_top.v
Example 2
The following example reads in a Verilog file and directory of design files.
Example
The following example shows how to use the set_current_design command.
set_current_design cpu_top
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Specify and Verify DFT Requirements
Examples
The following examples show how to specify DFT specification requirements for chip and
sub_block levels.
Example 1
The following example shows how the boundary scan DFT specification requirements are
specified and how the design is specified at the chip level.
set_dft_specification_requirements -boundary_scan On
set_design_level chip
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Add Constraints
Example 2
The following example shows, for embedded boundary scan, how to provide a Tcl list of pad IO
ports that need boundary scan cells to be inserted. The example also shows how to set the design
level to sub-block.
set_dft_specification_requirements -boundary_scan on
set_design_level sub_block
Note
To ensure the pad IO macros function properly when using embedded boundary scan, you
may need to use the add_input_constraints command to constrain some ports to either a 1 or
0 value. Typically, these ports are driven to the proper values at the next higher level in the
design.
Add Constraints
To insert Tessent BoundaryScan, four TAP pins (TDI, TCK, TMS, and TDO) must be available
at the chip level and connected to pad IO macros. TRST, which is optional, can be an output pin
of a power-up detector.
When all five TAP pins are connected to chip level pad IO macros, a 5-pin TAP is inserted. If
TRST is connected to an internal power-on reset pin, a 4-pin TAP is inserted.
Note
If you need to specify internal pins for TDI, TMS, TCK, and TDO, and those pins connect
to a chip level pad IO macro, you need two insertion passes. The TAP must be inserted in
the first pass, and the boundary scan insertion is performed in a subsequent pass.
The TAP pins can be identified in the constraints section of your dofile or can be specified in the
pin order file. Similarly, the power and ground pins can be identified in the constraints section
or specified in the pin order file. If any special boundary-scan cell types are required, they can
also be specified in the constraints section using the set_boundary_scan_port_options
command.
If you are using embedded boundary scan and some ports must be constrained to a constant 1 or
0 value, use the add_input_constraints command. Typically, these values are properly driven at
the next higher level in the design.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Add Constraints
Examples
Example 1
The following example specifies the function and purpose of the five TAP pins (tck_p, tdi_p,
tms_p, trst_p, tdo_p).
Example 2
The following example shows how to use the DefaultsSpecification wrapper to specify the five
TAP pins if they are the standard port names used across all designs. The DefaultsSpecification
wrapper is used when the create_dft_specification command is issued in the next step.
You also can use the set_defaults_value command to set the DefaultsSpecification and the
get_defaults_value command to see the specified value.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Run DRC
Example 3
The following example reads in the pin order file where the five TAP pins, power, and ground
are specified.
Example 4
The following example shows how you can set some ports to a constant value if you are using
embedded boundary scan.
Run DRC
The next step in Specify and Verify DFT Requirements is to run Design Rule Checking (DRC)
to make sure all the constraints are correct. Once DRC is clean, Tessent Shell moves from the
SETUP to the ANALYSIS prompt.
check_design_rules
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Create DFT Specification
Invoke create_dft_specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Configure the DFT Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Validate the DFT Specification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Invoke create_dft_specification
A DFT specification is automatically created using the create_dft_specification command. This
DFT specification is stored in memory.
To report the DFT specification in memory, use the report_config_data command. The DFT
specification uses IJTAG network infrastructure because this is the only supported method for
incremental insertion passes. The IJTAG network is fully compliant with the 1149.1 IEEE
standard. For further information about the Tessent IJTAG flow, refer to the Tessent IJTAG
User’s Manual.
To insert boundary scan into a preexisting TAP in your design, you must have an ICL for the
TAP. The tool automatically uses this TAP to connect to the boundary scan chain if the TAP has
ScanInterface host_bscan in the TAP ICL. You can also specify the host_bscan to connect to by
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Invoke create_dft_specification
Examples
Example 1
In the following example, the DFT specification generated with the create_dft_specification is
stored in a variable called dft_spec so that the variable can be used to report the DFT
specification.
Example 2
The following example shows how to connect to the preexisting TAP when multiple TAPs are
present. This only works if a ScanInterface host_bscan is in the ICL file for the preexisting TAP
controller. If a single TAP controller is present, the tool automatically uses this controller, and
you do not need to provide the host_bscan to connect to.
create_dft_specification -existing_host_bscan_scan_in \
My_TAP_INST/fromBscan
report_config_data
My_TAP_INST in this example is the instance name of the preexisting TAP in the design, and
fromBscan is the input port on the preexisting TAP where the boundary-scan chain needs to
connect.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Configure the DFT Specification
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Configure the DFT Specification
Figure 2-5. Editing the DFT Specification With the Configuration Data Visualizer
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Configure the DFT Specification
To exclude another port, click the button and type in another port name. Repeat as
necessary.
6. Click Apply to update the Configuration Data Visualizer GUI and the DFT specification
in memory.
7. Repeat these steps to add additional modifications.
Results
This method demonstrates using the Configuration Data Visualizer to edit the DFT specification
by adding multiple package bonding configurations that are defined by two
BondingConfiguration wrappers.
To see the resulting configuration, use the report_config_data command.
> report_config_data $dft_spec
DftSpecification(car,gate) +{
IjtagNetwork +{
HostScanInterface(tap) +{
Interface {
tck : TCK;
trst : TRST;
tms : TMS;
tdi : TDI;
tdo : TDO;
}
Tap(main) +{
HostIjtag(1) {
}
HostBscan {
}
}
}
}
BoundaryScan {
ijtag_host_interface : Tap(main)/HostBscan;
BondingConfigurations {
BondingConfiguration(default) {
}
BondingConfiguration(bonding1) {
unused_ports : COORD2, COORD3, D1[2], D1[1], EN0, D1[0], D1[3];
}
}
}
}
Examples
Using read_config_data, you can effectively cut and paste the manually entered Configuration
Data Visualizer edits into the dofile as shown in the example below. Then for subsequent runs,
the configuration edits are already present in the dofile, making the process repeatable with
scripting.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Configure the DFT Specification
Related Topics
Configure the DFT Specification in Memory
Examples
The following examples show how to modify the DFT specification that is loaded in memory
using the editing commands.
Example 1
The following example adds multiple package bonding configurations for Tessent
BoundaryScan. The report_config_data command shows the DFT specification created.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Configure the DFT Specification
DftSpecification(car,gate) {
IjtagNetwork {
HostScanInterface(tap) {
Interface {
tck : TCK;
trst : TRST;
tms : TMS;
tdi : TDI;
tdo : TDO;
}
Tap(main) {
HostIjtag(1) {
}
HostBscan {
}
}
}
}
BoundaryScan {
ijtag_host_interface : Tap(main)/HostBscan;
}
}
You can add the necessary BondingConfiguration wrappers and then use the report_config_data
command to see how the DFT specification was updated.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Configure the DFT Specification
> report_config_data
DftSpecification(car,gate) +{
IjtagNetwork +{
HostScanInterface(tap) +{
Interface {
tck : TCK;
trst : TRST;
tms : TMS;
tdi : TDI;
tdo : TDO;
}
Tap(main) +{
HostIjtag(1) {
}
HostBscan {
}
}
}
}
BoundaryScan {
ijtag_host_interface : Tap(main)/HostBscan;
BondingConfigurations {
BondingConfiguration(default) {
}
BondingConfiguration(bonding1) {
unused_ports : COORD2, COORD3, D1[2], D1[1], EN0, D1[0], D1[3];
}
}
}
}
Example 2
The following example modifies the DFT specification using the editing commands, including
the use of the delete_config_element command.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Configure the DFT Specification
DftSpecification(cpu_top,rtl) {
IjtagNetwork {
HostScanInterface(tap) {
Interface {
tck : tck_p;
trst : trst_p;
tms : tms_p;
tdi : tdi_p;
tdo : tdo_p;
}
Tap(main) {
HostIjtag(1) {
}
HostBscan {
}
}
}
}
BoundaryScan {
ijtag_host_interface : Tap(main)/HostBscan;
}
}
You can add the necessary BondingConfiguration wrappers and then use the report_config_data
to see how the DFT Specification was updated.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Configure the DFT Specification
> report_config_data
DftSpecification(cpu_top,rtl) +{
IjtagNetwork +{
HostScanInterface(tap) +{
Interface {
tck : tck_p;
trst : trst_p;
tms : tms_p;
tdi : tdi_p;
tdo : tdo_p;
}
Tap(main) +{
HostIjtag(1) {
}
HostBscan {
}
}
}
}
BoundaryScan {
ijtag_host_interface : Tap(main)/HostBscan;
BondingConfigurations {
BondingConfiguration(standard) {
}
BondingConfiguration(package1) {
unused_ports : D1[2], D1[1], D1[0], D1[3];
}
}
}
}
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Validate the DFT Specification
Related Topics
Configure the DFT Specification With the Configuration Data Visualizer
Example
The following example validates your DFT specification.
process_dft_specification -validate_only
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Process DFT Specification
Examples
Example 1
The following example generates and inserts into the design the hardware requested with the
DFT specification.
process_dft_specification
Example 2
The following example generates the hardware requested with the DFT specification but does
not insert the hardware into the design.
process_dft_specification -no_insertion
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Extract ICL
Extract ICL
The Extract ICL step verifies the proper connectivity of the ICL modules that were inserted with
the process_dft_specification command. If no DRC violations are detected, the top-level ICL
description is extracted.
The extract_icl command also creates an SDC file that can be used for synthesis. Refer to the
“RTL Design Flow Synthesis” section for more information.
Downstream tools use the top-level ICL description for creating patterns. You can use the
open_visualizer command to debug any ICL extraction DRC violations that are reported.
Example
The following example extracts all ICL modules to the root of the design.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Preparation for Pattern Generation
extract_icl
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Create Patterns Specification
Example
The following example creates a default patterns specification and stores the specification in a
variable called pat_spec and then uses this variable to report the patterns specification in
memory. The use of the Tcl variable is not necessary and is only used for convenience.
For a full description of the patterns specification, see the section on the PatternsSpecification
wrapper in the Tessent Shell Reference Manual. The following example shows a
PatternsSpecification wrapper for module “MyDesign” with design_identifier “rtl” and
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Configure the Patterns Specification
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Configure the Patterns Specification
Example
The following example shows that the default value for tester_period is 100ns and can be
changed by editing the patterns specification in memory.
Method 2: Write out the patterns specification, edit the file, and read the file
back in
This method may be easier, but keep in mind that every time the primary Tcl script or dofile
runs, the patterns specification that is written out overwrites your edits. To make sure your edits
are reusable and repeatable using scripts, make a copy of the patterns specification and then edit
the specification before reading it back in.
Example
The following example writes the patterns specification into a file called
bonding1_config.pat_spec. After making the edits in a copy of this file, this file is read back in.
Note that the file that is written out is different from the edited file that is read back in.
create_patterns_specification
report_config_data
read_config_data bonding1_config_edited.pat_spec
report_config_data
When manually editing the patterns specification, it is highly recommended that you validate
the specification as shown in the following example.
process_patterns_specification -validate_only
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Process Patterns Specification
Example
The following example generates the test benches.
process_patterns_specification
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Run and Check Test Bench Simulations
Run Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Check Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Formal Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Run Simulations
Use the run_testbench_simulations command to invoke a simulation manager to run a set of
simulation test benches.
The run_testbench_simulations command compiles and simulates test benches, generated for
the TAP and boundary scan from the process_patterns_specification command, that are located
at tsdb_outdir/patterns/<design>.patterns_signoff.
For a detailed description of the run_testbench_simulations command and its usage, see the
Tessent Shell Reference Manual.
Example
The following example runs simulations of all patterns defined in the PatternsSpecification.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Check Results
set_simulation_library_sources -y ../library/verilog \
-v ../library/pad_cells.v
run_testbench_simulations
Check Results
Use the check_testbench_simulations command to check the status of the simulations that were
previously launched by the run_testbench_simulations command.
For a detailed description of the check_testbench_simulations command and its usage, see the
Tessent Shell Reference Manual.
Example
The following example checks the simulation results for errors.
check_testbench_simulations -report_status
Formal Verification
Tessent Shell-based products currently do not generate scripts for use with Synopsys®
Formality®. You can however, set constraints in your design and manually create a script that is
used with Formality.
For guidance on how this is accomplished, refer to the “Formal Verification” Appendix in the
Tessent Shell User’s Manual.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Test Logic Synthesis
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
RTL Design Flow Synthesis
The created SDC is composed of several procedures that can be integrated into a design
synthesis script.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Tessent BoundaryScan
Gate Level Design Flow Synthesis
Run Synthesis
The run_synthesis command only synthesizes test logic RTL contained within the TSDB.
When creating and inserting memory BIST, boundary scan or IJTAG logic, the generated RTL
is automatically written to the TSDB during process_dft_specification.
The run_synthesis command to invokes a synthesis manager to perform synthesis of the test
logic RTL
For a detailed description of the run_synthesis command and its usage, refer to the Tessent Shell
Reference Manual.
Example
The following example performs synthesis for a design and can be run at the physical_block or
top design level.
run_synthesis
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Chapter 3
Boundary Scan Specific Topics
Topics within this chapter cover a variety of subjects that describe cell library requirements as
well as insertion of boundary scan cells in different design scenarios.
Pad Cell Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Using pad.library and Verilog Simulation Models for the Pad Cells . . . . . . . . . . . . . . . 63
Creating a Tessent Cell Library from pad.library and Verilog Simulation Models . . . 63
Customizing Boundary Scan Pin Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Inserting Tessent Boundary Scan on a Custom or Preexisting TAP Controller . . . . . . 67
Sharing TAP Ports Between a Preexisting TAP and Tessent TAP . . . . . . . . . . . . . . . . . 68
AC JTAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Embedded Boundary Scan Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Adding a Test Data Register to the TAP Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
BSDL-Only Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Dividing Boundary Scan for Logic Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Pad Cell Input Path Considerations for Boundary Scan Testing . . . . . . . . . . . . . . . . . . 82
Pad Cell Library Attribute Considerations for Boundary Scan Testing . . . . . . . . . . . . 83
Multiple Bonding Configurations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Custom Boundary Scan Cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Debugging Failing JtagBscan Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Pad Cell Library
model INPAD
(IO, FP)
(
cell_type = pad;
input (IO) (pad_from_io; )
output (FP) (pad_from_pad; )
{
primitive = _buf mlc_buf_1 (IO, FP);
}
) // end model INPAD
model OUTPAD_EN1
(IO, TP, EN1)
(
cell_type = pad;
output (IO) (pad_to_io; )
input (TP) (pad_to_pad; )
input (EN1) (pad_enable_high; )
(
primitive = _tsh mlc_tsh_1 (TP, EN1, IO);
)
) // end model OUTPAD_EN1
model IOPAD_EN0
(IO, FP, TP, EN0)
(
cell_type = pad;
inout (IO) (pad_pad_io; )
input (TP) (pad_to_pad; )
output (FP) (pad_from_pad; )
input (EN0) (pad_enable_low; )
(
primitive = _buf mlc_buf_1 (IO, FP);
primitive = _tsl mlc_tsl_1 (TP, EN0, IO);
)
) // end model IOPAD_EN0
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Pad Cell Library
model configurable_pad
(io, fp, tp, en1, modein)
(
cell_type = pad;
mode(
pin (io) (pad_pad_io; )
pin (fp) (pad_from_pad; )
pin (modein) (pad_tied1; )
)
mode(
pin (io) (pad_pad_io; )
pin (tp) (pad_to_pad; )
pin (en1) (pad_enable_high; )
pin (modein) (pad_tied0; )
)
input (tp) ( )
input (en1) ( )
input (modein) ( )
inout (io) ( )
output (fp) ( )
(
primitive = _inv mlc_inv_1 (modein, modeininv);
primitive = _and mlc_and_1 (andin, modein, fp);
primitive = _and mlc_and_2 (en1, modeininv, anden);
primitive = _buf mlc_buf_1 (io, andin);
primitive = _tsh mlc_tsl_1 (tp, anden, io);
)
) // end model configurable_pad
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Pad Cell Library
model two_pads (
IO,
TP,
EN0,
FP
)
(
cell_type = pad;
mode (
pin (IO[0]) (pad_pad_io;)
pin (TP[0]) (pad_to_pad;)
pin (EN0) (pad_enable_low;)
pin (FP[0]) (pad_from_pad;)
)
mode (
pin (IO[1]) (pad_pad_io;)
pin (TP[1]) (pad_to_pad;)
pin (EN0) (pad_enable_low;)
pin (FP[1]) (pad_from_pad;)
)
input (EN0) ()
output (FP) (array = 1:0;)
inout (IO) (array = 1:0;)
input (TP) (array = 1:0;)
(
primitive = _tsh outbuf0 (TPC[0], EN0, IO[0]) ;
primitive = _buf inbuf0 (IO[0], FP[0]);
primitive = _tsh outbuf1 (TP[1], EN0, IO[1]) ;
primitive = _buf inbuf1 (IO[1], FP[1]);
)
) // end model two_pads
The function of a modeled pad is contained in the pad_function attribute. For example, to obtain
the function of the FP pin of the input pad INPAD as defined above, you can use the
get_attribute_value_list command:
Note
The pad_function attribute is not set for configured or grouped pads as shown in the two
examples above that include the mode wrapper.
For further information on how to generate a Tessent cell library, refer to the Tessent Cell
Library Manual. For further information on the pad_function attribute, see Tessent Pin Function
and Pad_Function Attributes in the Tessent Cell Library Manual.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Using pad.library and Verilog Simulation Models for the Pad Cells
The following sections describe alternate methods if you already have a pad.library file. This
file contains pad IO cell descriptions and verilog simulation models for the pad cells.
2. Read the Verilog models for the pad cells from the appropriate directory, as shown in
the following example.
SETUP>read_verilog ../library/verilog/pads.v
Results
The attributes of the pad cells described within the pad.library file are applied on top of the
Verilog description of the pad cells that were read in using the read_verilog command.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Creating a Tessent Cell Library from pad.library and Verilog Simulation Models
• Verilog models for the pad IO cells describing the functional behavior
Procedure
1. Invoke the LibComp tool from the unix shell prompt to compile a libcomp.atpglib file
from the pad cell Verilog simulation models. The first parameter passed is the path to
the Verilog simulation models for the pad cells.
UNIX>libcomp pads.v -dofile
Note
You do not need to provide any dofiles with the -dofile switch.
A libcomp.atpglib file is created for all the cells present in the pads.v file. Ensure that
any includes using “include” in the pads.v file are properly read in.
Note
For more information about libcomp startup options, see libcomp in the Tessent Cell
Library Manual.
2. Invoke Tessent Shell and optionally create a log file for reference.
UNIX>tessent -shell -log create_cell_lib.log
3. Read the pad.library and the libcomp.atpglib file created in step 1 using
read_cell_library at the Tessent Shell prompt.
SETUP>read_cell_library pad.library
SETUP>read_cell_library libcomp.atpglib
Results
The created Tessent Cell Library can be read into Tessent Shell using the read_cell_library
command.
If LibComp is unable to translate a cell in the pads.v file into an atpg.lib model, an empty
blackbox model is created for that cell. In this situation, the translation of these cells into the
Tessent Cell Library as functional library elements is not completed and they must be manually
edited into valid functional models.
Related Topics
read_cell_library [Tessent Shell Reference Manual]
write_cell_library [Tessent Shell Reference Manual]
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Customizing Boundary Scan Pin Order
Prerequisites
• If you want to have the initial boundary scan pin order based on port layout placement,
the DEF file should be loaded during the Load the Design step. All the steps for loading
a design should be completed.
• Specify and Verify DFT Requirements steps are completed.
Procedure
1. Edit the boundary scan pinorder file with the pin order you want, and save it to either the
same or a different file name.
The boundary scan pinorder file is created once an error-free Design Rule Checking
(DRC) result is obtained with the check_design_rules command in the Run DRC step of
the flow. The pinorder file is named <design_name>.pinorder and is located in the
Tessent Shell Data Base (TSDB) tsdb_outdir/dft_inserted_designs folder. An example
of a pinorder file is shown in Figure 3-1.
Figure 3-1. Example PINORDER File
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Customizing Boundary Scan Pin Order
//-----------------------------------------------------
// File created by: Tessent Shell
// Version:
// Created on:
//-----------------------------------------------------
2. On subsequent iterations, read in the customized pinorder file while in SETUP mode,
prior to running check_design_rules as shown in this example:
SETUP>set_boundary_scan_port_options -pin_order_file \
./tsdb_outdir/dft_inserted_designs/cpu_top.pinorder.modified
The specified pinorder file is validated during the check_design_rules command rather
than a pinorder file being created. The pinorder file that was specified is shown in the
pin_order_file : filename property of the DftSpecification/BoundaryScan wrapper when
the DftSpecification is created.
Results
Once the DFT hardware specified in the DftSpecification is created and inserted using
process_dft_specification, the boundary scan chain order can be observed within the port listing
of the BSDL file that is created. The BSDL file is located in the TSDB <root_directory>/
instruments/<design_name>_<design_id>_bscan.instrument folder and is named
<design_name>.bsdl.
Related Topics
Tessent Shell Data Base (TSDB) [Tessent Shell Reference Manual]
set_boundary_scan_port_options [Tessent Shell Reference Manual]
DftSpecification/BoundaryScan wrapper [Tessent Shell Reference Manual]
process_dft_specification [Tessent Shell Reference Manual]
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Inserting Tessent Boundary Scan on a Custom or Preexisting TAP Controller
Prerequisites
• An ICL description for a the custom or preexisting TAP controller.
• A TAP controller that meets the requirements outlined in the DftSpecification/
BoundaryScan wrapper description.
Procedure
1. Read in the Verilog model and the ICL description of the preexisting or custom TAP.
SETUP>read_verilog design/my_custom_TAP.v
SETUP>read_icl design/my_custom_TAP.icl
If there is only a single HostBscan interface defined, the boundary scan chain is
connected to the preexisting TAP controller that is read in if all the requirements of the
TAP controller are met.
2. If the preexisting TAP controller has more than one HostBscan interface, you can
explicitly specify the interface the boundary scan chain is to be connected to by using
the following:
ANALYSIS>create_dft_specification -existing_bscan_host_scan_in \
my_custom_TAP_INST/fromBscan1
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Sharing TAP Ports Between a Preexisting TAP and Tessent TAP
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Sharing TAP Ports Between a Preexisting TAP and Tessent TAP
Procedure
1. Specify the TAP pins during the “Specify DFT Specification Requirements” section of
the design flow, as shown in the following example:
SETUP> set_attribute_value tck_p -name function -value tck
SETUP> set_attribute_value tdi_p -name function -value tdi
SETUP> set_attribute_value tms_p -name function -value tms
SETUP> set_attribute_value trst_p -name function -value trst
SETUP> set_attribute_value tdo_p -name function -value tdo
2. Specify the compliance enable (CE) pins during the “Create DFT Specification” section
of the design flow:
ANALYSIS> create_dft_specification \
-active_low_compliance_enables CEO \\<pin_port_list>
For this example, there is a single active low compliance enable pin named “CE0”.
When specifying the compliance enable pins with create_dft_specification, the
active_high_compliance_enables and active_low_compliance_enables properties within
the HostScanInterface/Interface wrapper are filled with the named ports, and they are
also added to the BoundaryScan/ BoundaryScanCellOptions wrapper as
compliance_enable1 and compliance_enable0, respectively. For this example there
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Sharing TAP Ports Between a Preexisting TAP and Tessent TAP
If boundary scan is to be inserted, then those pins listed with the compliance_enable0/
compliance_enable1 attributes appear in the COMPLIANCE_PATTERNS attribute in
the BSDL file. If an internal pin is provided in the list, then a warning is given that the
BSDL file is not IEEE Std 1149.1 compliant.
3. Complete the Process DFT Specification section of the design flow. Prior to starting the
Extract ICL step, use the add_ijtag_logical_connection command to enable extract_icl
to bypass the TMS gating to the preexisting TAP.
a. Manually change the context to patterns -ijtag for add_ijtag_logical_connection:
INSERTION>set_context patterns -ijtag
b. Specify the logical path across the TMS gating logic to the preexisting TAP. In this
example it would be from the output of TMS_PAD to the output of tms_gating_inst
as seen from Figure 3-2.
SETUP>add_ijtag_logical_connection -to tms_gating_inst/Z -from
TMS_PAD/C
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
AC JTAG
4. Complete the Extract ICL step and continue with the remaining steps of the design flow.
Results
The Tessent TAP is created and selected during boundary scan tests when the CE0 port is “0”.
This value is automatically set during boundary scan test simulations and is documented in the
generated BSDL file. The Tessent TAP module is named
<design_name>_<design_id>_tessent_tap_<id>.
A module named “<design_name>_<design_id>_tessent_compliance_enable_<id>” is created
that muxes the TDO signal and gates the TMS signal to the Tessent TAP based on the
compliance enable signal values.
If you are using a compliance enable pin and the logic to enable the TAP that is already present
in the design, refer to Example 2 in the IjtagNetwork wrapper description in the Tessent Shell
Reference Manual. This example shows the steps to follow when you want to connect the TAP
controller to internal pins that are not directly on the pads associated to the TAP ports.
Related Topics
set_attribute_value [Tessent Shell Reference Manual]
create_dft_specification [Tessent Shell Reference Manual]
HostScanInterface/Interface [Tessent Shell Reference Manual]
BoundaryScanCellOptions [Tessent Shell Reference Manual]
AC JTAG
If there are any AC JTAG pad IO cells present in the design, then a Tessent Cell Library
describing them needs to created and read in during the “Load the Design” portion of the design
flow.
For more information, refer to Chapter 2 “Library Model Creation” of the Tessent Cell Library
Manual.
If an old pad.library file is available and verilog models are present, then the procedure
described in “Using pad.library and Verilog Simulation Models for the Pad Cells” can be used.
Related Topics
Load the Design
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Embedded Boundary Scan Flow
be present within this sub-block or the physical region, then the embedded boundary scan flow
is used.
To implement this flow, the command set_boundary_scan_port_options is used to specify the
ports that require embedded boundary scan cells. This process is performed in the Specify DFT
Specification Requirements step after Load the Design completed. The following procedure
shows an example of how this is done for both sub-block and physical region implementations.
Prerequisites
• Load the Design steps have been completed and the design is loaded and elaborated.
Procedure
1. Start the Specify and Verify DFT Requirements step by beginning to define the DFT
specification requirements.
## Begin Specify and Verify DFT Requirements step
SETUP>set_dft_specification_requirements -boundary_scan on
3. Specify the list of pad IO ports that need embedded boundary scan cells by using the
set_boundary_scan_port_options command.
## The following inserts embedded boundary scan cells
SETUP>set_boundary_scan_port_options -pad_io_ports [list in1 \
in_diff_p in_diff_n out1 out_diff_p out_diff_n clk A Y]
4. Use the add_input_constraints command to specify the constants that are required for
the pad IO to operate.
Note
Some of the pad IO constants that are required may come from the next higher level,
either through test setup or other initialization setup.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Adding a Test Data Register to the TAP Controller
##Constraints specified for pins where the value comes from the next
level
SETUP>add_input_constraints vss -C0
SETUP>add_input_constraints Ten3[2] -C0
SETUP>add_input_constraints Ten3[1] -C0
SETUP>add_input_constraints Ten4[2] -C0
SETUP>add_input_constraints vdd -C1
SETUP>add_input_constraints Ten1 -C1
SETUP>add_input_constraints Ten2 -C1
SETUP>add_input_constraints Ten3[0] -C1
SETUP>add_input_constraints Ten4[1] -C1
5. Run check_design_rules to verify the implementation and then continue with the rest of
the design flow.
##Running DRC
SETUP>check_design_rules
Related Topics
add_input_constraints [Tessent Shell Reference Manual]
set_dft_specification_requirements [Tessent Shell Reference Manual]
set_boundary_scan_port_options [Tessent Shell Reference Manual]
The procedure below provides an example for how one can create a default DFT specification
and manually add a TAP using the Configuration Data Visualizer GUI. A method is shown for
copying the DFT specification, inserting the TDR without using the Configuration Data
Visualizer GUI and reading the DFT Specification back into memory. This is used to facilitate
creation of dofiles to make the process repeatable without having to manually edit it within the
Configuration Data Visualizer.
Prerequisites
• Load the Design steps have been completed and the design is loaded and elaborated.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Adding a Test Data Register to the TAP Controller
3. Within the Configuration Data Visualizer, add in the TAP structure by selecting and
highlighting the location within the DftSpecification tree, right clicking, and choosing
Add > Tap, as shown in Figure 3-3. This example implements the following to the TAP
named “main”:
/IjtagNetwork/HostScanInterface(tap)/Tap(main)
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Adding a Test Data Register to the TAP Controller
4. Using the form in the Configuration Data Visualizer, change the ID of the TAP to
“main.” Continue using the tree view and the form to create a HostIjtag(1) wrapper as a
child of the TAP.
5. In the shell window, use report_config_data to list the current structure.
report_config_data $spec
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Adding a Test Data Register to the TAP Controller
7. The TDR that was added can be inspected within the Configuration Data Visualizer as
shown in Figure 3-4.
Figure 3-4. Viewing the Added TDR in the Configuration Data Visualizer
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
BSDL-Only Flow
Related Topics
create_dft_specification [Tessent Shell Reference Manual]
display_specification [Tessent Shell Reference Manual]
report_config_data [Tessent Shell Reference Manual]
BSDL-Only Flow
Boundary scan patterns can be generated in Tessent Shell using a Boundary Scan Definition
Language (BSDL) file created outside of the Tessent environment. No design data other than
the BSDL file is required for this pattern generation flow; however, if needed, you can also
include a Serial Vector Format (SVF) file in this flow.
Prerequisites
• A valid BSDL file.
Procedure
1. The configuration data to specify the patterns to be applied to DFT components that are
inserted into a design is defined within the BoundaryScan wrapper in the
PatternsSpecification. An example of the wrapper contents is shown in Figure 3-5. This
would be saved as a file, and for this example it is named
example.patterns_spec_signoff. The third party BSDL file is specified in the
BoundaryScan wrapper with the bsdl_file property.
Figure 3-5. Example PatternsSpecification for Third Party BSDL
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
BSDL-Only Flow
PatternsSpecification(example,bscan,signoff) {
Patterns(JtagBscanPatterns) {
tester_period : 100ns;
TestStep(JtagBscanTestStep) {
BoundaryScan {
bsdl_file : EP432P12.bsdl;
RunTest(test_logic_reset) {
}
RunTest(inst_reg) {
}
RunTest(bypass_reg) {
}
RunTest(bscan_reg) {
}
RunTest(input) {
}
RunTest(sample) {
}
RunTest(highz) {
}
RunTest(clamp) {
}
RunTest(output) {
}
}
}
}
}
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
BSDL-Only Flow
In most cases, the BSDL description should be sufficient to generate patterns, but if an
initialization sequence is needed it can be specified as follows:
PatternsSpecification(example,bscan,signoff) {
Patterns(JtagBscanPatterns) {
tester_period : 100ns;
TestStep(JtagBscanTestStep) {
BoundaryScan {
bsdl_file : EP432P12.bsdl;
RunTest(test_logic_reset) {
}
RunTest(inst_reg) {
}
RunTest(bypass_reg) {
}
RunTest(bscan_reg) {
}
RunTest(input) {
}
RunTest(sample) {
}
RunTest(highz) {
}
RunTest(clamp) {
}
RunTest(output) {
}
}
}
ProcedureStep(init) {
svf_file : EP432P12.svf;
}
}
}
Note
The BSDL package include directory is assumed to be in the same location as the
BSDL file. If it is not, specify the location with the bsdl_package_directories
argument or create a symbolic link to the package directory.
For more explanation of the RunTest wrapper and parameters, refer to the
BoundaryScan topic in the “Configuration-Based Specification” chapter in the Tessent
Shell Reference Manual.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Dividing Boundary Scan for Logic Test
2. Create a Tcl file containing the Tessent Shell steps to set the proper context, read in the
configuration wrapper and generate the patterns. An example file is shown in Figure 3-6
and is named bsdl_only.tcl for this procedure.
Figure 3-6. Tessent Shell dofile for Third Party BSDL Processing
Results
The test bench “JtagBscanPatterns.v” is created in the tsdb_outdir/Patterns/
example_bscan.patterns_signoff directory. For details on how the tsdb_outdir directory
structure is organized, refer to “Tessent Shell Data Base (TSDB)” in the Tessent Shell Reference
Manual.
Related Topics
BoundaryScan wrapper [Tessent Shell Reference Manual]
RunTest [Tessent Shell Reference Manual]
PatternsSpecification wrapper [Tessent Shell Reference Manual]
The example presented in this section segments the boundary scan chain so that a maximum of
200 flops are present in any segment.
Prerequisites
• Load the Design steps have been completed and the design is loaded and elaborated.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Dividing Boundary Scan for Logic Test
4. Create and insert the hardware for the TAP and boundary scan into the design.
ANALYZE>process_dft_specification
5. Inspect the results to confirm the boundary scan is now segmented into the smaller chain
segments for inclusion with logic testing, and save the output for later reference if
wanted.
List the currently available instrument dictionaries created by process_dft_specification.
ANALYZE>get_instrument_dictionary -list
List the scan chains and scan_in/scan_out ports created. This also identifies how many
scan chains segments were created.
ANALYSIS>format_dictionary [get_instrument_dictionary \
mentor::jtag_bscan::DftSpecification logic_test_scan_chains]
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Pad Cell Input Path Considerations for Boundary Scan Testing
Optionally, save the output created in step 6 for later reference by using the script below.
This saves the output to a file named “logic_test_scan_chains.dictionary”.
set fp [open logic_test_scan_chains.dictionary w]
puts $fp "set logic_test_scan_chains {"
puts $fp [format_dictionary [get_instrument_dictionary
mentor::jtag_bscan::DftSpecification logic_test_scan_chains ] ]
puts $fp "}"
close $fp
Results
The single boundary scan chain that is connected between the TDI and TDO is now segmented,
with muxes added in and controlled by logic_test_enable. The single boundary scan chain
connectivity is also maintained.
Related Topics
create_dft_specification [Tessent Shell Reference Manual]
set_config_value [Tessent Shell Reference Manual]
format_dictionary [Tessent Shell Reference Manual]
Figure 3-7 shows a bidirectional pad cell with an active high input enable pad cell pin,
highlighted by a green connection dot. This pad cell needs to have the pad_input_enable_high
pin attribute applied to this pin.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Pad Cell Library Attribute Considerations for Boundary Scan Testing
Figure 3-7. Bidirectional Pad Cell With Active High Input Enable
Tessent Shell automatically adds the appropriate logic, shown in red for this example, to
achieve the transparency needed on the input path during boundary scan testing. If core logic
drives the pad cell input enable, the added logic combines the boundary scan select with that
signal. If the pad cell input enable was tied to a logic level, the added logic utilizes the same tie
value. In the case of a pad cell configured with an auxiliary input, the auxiliary input enable
signal is also logically combined to properly activate the pad cell input enable.
If you use the “no insertion” flow (that is, the -no_insertion switch on the
process_dft_specification command), you need to add this circuitry manually.
For a full description of pin attributes, see the Tessent Cell Library Manual.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Multiple Bonding Configurations
Configuration Data Visualizer to specify the bonding configurations and then read it into the
main Tcl or dofile. This makes process repeatable and eliminates the need to invoke the
Configuration Data Visualizer. You can also edit the DftSpecification as described in
“Configure the DFT Specification in Memory” on page 41.
Prerequisites
• Load the Design steps have been completed and the design is loaded and elaborated.
• Specify and Verify DFT Requirements steps have been completed.
Procedure
1. Create a DFT specification and also direct the output to an environment variable. Report
out the DFT specification for verification:
##To create a dft specification
ANALYSIS>set spec [create_dft_specification]
2. Invoke the Configuration Data Visualizer to modify the dft specification so multiple
bonding configurations can be added. The Configuration Data Visualizer automatically
opens and displays the DftSpecification(<design_name>,<design_id>) wrapper
configuration when display_specification is run.
##Invoke the Configuration Data Visualizer and display the
DftSpecification
ANALYSIS>display_specification
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Multiple Bonding Configurations
4. Select a BondingConfiguration in the tree and fill in the options you want, as shown in
Figure 3-9.
a. You must provide the names for a BondingConfiguration. This example uses
“bonding1” and “bonding2.” Additionally, bonding1 has an enable signal EN2 and
two unused ports, identified as COORD0 and COORD3. Finally, only the left
logical group is bypassed during the bonding1 package option. If logical groups are
bypassed, they must be provided in the pinorder file.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Multiple Bonding Configurations
b. If needed, add additional unused ports and bypassed logical group by clicking the
icon in those option fields.
For this example, the BondingConfiguration bonding2 has unused ports of D1[0],
D1[1], D1[2] and D1[3].
5. Use report_config_data to list the current configuration:
ANALYSIS>report_config_data $spec
6. Once the configuration is reported, you can cut and paste this information into the dofile
and read the Configuration Data Visualizer edits using the read_config_data command
as shown in the following example. Then, for subsequent runs, the configuration edits
are already present in the dofile, making the process repeatable with scripting.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Custom Boundary Scan Cells
7. If you are running Tessent Shell in the dft context with -no_rtl and the library does not
have a clock_gating_and entry, the following operation needs to be completed to create
the RTL for the AND clock gater.
set_config_value /DftSpecification(car,gate)/use_rtl_cells On
8. Complete any other DftSpecification configurations that may be required and continue
the rest of the design flow.
The custom boundary scan cell is described using the same format as found in the *.tcd_bscan
file. This file is normally created by the process_dft_specification when inserting a boundary
scan chain into a sub or physical block, and the block contains a Core(<module_name>)/
BoundaryScan wrapper. For this application, the wrapper is manually created to specify the
custom boundary scan cell and interface. Tessent Shell automatically recognizes this
description when matching modules within higher level parent modules and uses it to stitch the
boundary scan chain in the parent module.
Examples
Example 1
This example shows a sample .tcd_bscan file for custom input cells, named
ipad_bscan_combo.tcd_bscan, and the process used for stitching them with pad cells that are
automatically inserted.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Custom Boundary Scan Cells
Core(ipad_bscan_combo){
BoundaryScan {
Interface {
select_jtag_input : SJI_in;
capture_shift_clock : bscan_clk;
update_clock : update_bscan;
shift_en : shift_bscan;
scan_in : bscanIn;
scan_out : bscanOut;
scan_out_launch_edge : negedge;
}
ExternalPort(PAD) {
}
Cell(cell0) {
function : input;
bsdl_cell_type : BC_2;
external_port : PAD;
}
}
}
The ipad_bscan_combo.tcd_bscan file is located in the netlist directory along with the
ipad_bscan_combo.v Verilog file in this example.
##Read the Tessent library for standard cells and pad cells.
SETUP>read_cell_library ../library/adk_complete.tcelllib
The remainder of the design flow steps are unchanged beyond this point, and would merge at
the Add Constraints step within “Specify and Verify DFT Requirements” on page 32.
Example 2
This example shows a sample .tcd_bscan file for custom output cells. In this case, the netlist
already has the output bscan cells inserted and connected, as well as a combinational cell for the
enable. The process used for stitching the custom boundary scan outputs with pad cells that are
automatically inserted is the same as that given in Example 1.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Debugging Failing JtagBscan Simulations
Core(opad_bscan_en_combo){
BoundaryScan {
Interface {
select_jtag_output : SJO_in;
force_disable : forcedis;
capture_shift_clock : bscan_clk;
update_clock : update_bscan;
shift_en : shift_bscan;
scan_in : bscanIn;
scan_out : bscanOut;
scan_out_launch_edge : negedge;
}
ExternalPort(PAD) {
buffer_type : three_state;
control_cell : cell1;
}
Cell(cell0) {
function : output;
bsdl_cell_type : BC_2;
external_port : PAD;
}
Cell(cell1) {
function : control;
bsdl_cell_type : BC_2;
control_enable_value : 1;
}
}
}
The command check_testbench_simulations is used to check the status of simulations that were
previously launched by run_testbench_simulations. Arguments can be passed to generate a
status report or a status Tcl dictionary. If no argument is provided, the command updates a
status line each second while running, and reports an error message for any failed simulations
when completed.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Debugging Failing JtagBscan Simulations
SETUP>run_testbench_simulation
SETUP>check_testbench_simulations
// Error: 1 out of 2 simulations failed:
// JtagBscanPatterns with 943 unexpected miscompares
SETUP>check_testbench_simulations -report_status
// Simulation status for ./simulation_outdir/
cpu_top_gate.simulation_signoff
// ===================================================================
// ----------------- ------ ----------- ----------- ------------
// Pattern Name Status Unexpected Missing Date
// Miscompares Miscompares
// ----------------- ------ ----------- ----------- ------------
// ICLNetwork pass 0 0 Thu May 07
// JtagBscanPatterns fail 943 0 Thu May 07
The -report_status argument creates a report listing the simulation status of each pattern found
inside the <design_name>_<design_id>.simulation_<pattern_id> directory as shown in
Figure 3-10. This report identifies any pattern id that failed test bench simulation and needs to
be re-run to capture and store waveform data for further debug in the waveform viewer.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Debugging Failing JtagBscan Simulations
Availability of the failing pattern and design environment should be confirmed, because a
different PatternsSpecification could have been processed after the patterns that failed were run.
The run_testbench_simulations command with the -report_list argument lists the patterns
available in the <design_name>_<design_id>.patterns_<pattern_id>/
simulation.data_dictionary file. This file is always updated upon successful validation and
processing of the PatternsSpecification.
SETUP>run_testbench_simulations -report_list
List of pattern(s) for directory './tsdb_outdir/patterns/
cpu_top_gate.patterns_signoff':
ICLNetwork JtagBscanPatterns
Once the pattern availability is confirmed, as seen in the sample above with the listing of
JtagBscanPatterns, the simulations can be re-run with waveform storage enabled.
In another Unix shell window, navigate to the folder where the vsim.wlf file was created and
open it using the viewer in Questa SIM as shown in the example below:
UNIX>cd \
simulation_outdir/cpu_top_gate.simulation_signoff/ \
JtagBscanPatterns.simulation
UNIX>vsim -view vsim.wlf
While analyzing the waveforms of the failing patterns, you have the option of rerunning the
simulation in the Tessent Shell window with new files or other options such as
delay_mode_zero, unit_delay or others. After any adjustments are made, you can reload the
new vsim.wlf file in the waveform window to view the results.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Boundary Scan Specific Topics
Debugging Failing JtagBscan Simulations
Tessent -shell session using the set_simulation_library_sources command. The session can be
restored by following the sequence shown:
In another unix shell window, navigate to the folder where the vsim.wlf file was created and
open it using the viewer in Questa SIM as shown in the example below:
UNIX>cd \
simulation_outdir/cpu_top_gate.simulation_signoff/ \
JtagBscanPatterns.simulation
UNIX>vsim -view vsim.wlf
Related Topics
run_testbench_simulations [Tessent Shell Reference Manual]
check_testbench_simulations [Tessent Shell Reference Manual]
set_simulation_library_sources [Tessent Shell Reference Manual]
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Chapter 4
MemoryBIST Insertion With BoundaryScan
This chapter describes the design flow that can be followed if TAP, BoundaryScan, and
MemoryBIST are to be inserted for a design.
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
TAP, BoundaryScan, and MemoryBIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
MemoryBIST Insertion Before Tap and BSCAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Overview
Two example design flows are described that show different methods of inserting MemoryBIST
with BoundaryScan and TAP into a design.
One design flow inserts MemoryBIST, BoundaryScan and TAP in a single pass at the chip
design level. The other flow inserts MemoryBIST in a first pass within a sub_block or
physical_block, then inserting BoundaryScan and TAP in a second pass at the chip level. When
MemoryBIST needs to be inserted inside a physical_block or a sub_block, then the design level
needs to also be set to physical_block or a sub_block. A physical_block describes a design
module where physical layout has been completed, whereas a sub_block describes a design
module that can be instantiated inside another layout region. The layout region can be another
design module or the entire chip
The design flow that is used to insert MemoryBIST with BoundaryScan and TAP is the same as
described in Getting Started With Tessent BoundaryScan and is shown in Figure 4-1 below.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
MemoryBIST Insertion With BoundaryScan
TAP, BoundaryScan, and MemoryBIST
Related Topics
Tessent MemoryBIST User’s Manual for use With Tessent Shell
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
MemoryBIST Insertion With BoundaryScan
TAP, BoundaryScan, and MemoryBIST
implementation pass where the TAP, BoundaryScan and MemoryBIST are all generated and
inserted at the same time. The generation and insertion could also be done for each in three
separate passes.
Load the Design steps. In this step, the design and libraries are loaded in:
set_design_level chip
set_dft_specification_requirements -memory_test on \
-boundary_scan on
process_dft_specification
extract_icl
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
MemoryBIST Insertion With BoundaryScan
MemoryBIST Insertion Before Tap and BSCAN
process_patterns_specification
set_simulation_library_sources -v ./library/adk_complete.v \
-v ./library/picdram.v
run_testbench_simulations
check_testbench_simulations
check_testbench_simulations -report_status
Related Topics
set_simulation_library_sources [Tessent Shell Reference Manual]
run_testbench_simulations [Tessent Shell Reference Manual]
check_testbench_simulations [Tessent Shell Reference Manual]
Procedure
1. MemoryBIST insertion: Load the Design steps:
set_context dft -rtl
read_cell_library ../library/adk.tcelllib
set_design_sources -format verilog \
-y {../data/design/mem ../data/design/rtl} -extension v
read_verilog ../data/design/rtl/blockA.v
set_current_design blockA
report_memory_instances
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
MemoryBIST Insertion With BoundaryScan
MemoryBIST Insertion Before Tap and BSCAN
8. The prior seven steps need to be repeated for any other sub_blocks or physical_blocks
with memories that need MemoryBIST insertion before the design level is changed to
chip level.
9. At the chip-level, if you have memories that need MemoryBIST insertion, you create a
DFT Specification as shown below. This inserts the MemoryBIST as well as the TAP
and BoundaryScan cells.
Note
If the default “tsdb_outdir” is not used for MemoryBIST insertion, then you must
use the open_tsdb command to point to the “tsdb outdir” for where the MemoryBIST
is inserted while inserting TAP and BoundaryScan cells.
set_current_design top
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
MemoryBIST Insertion With BoundaryScan
MemoryBIST Insertion Before Tap and BSCAN
11. BoundaryScan and Tap insertion: Specify and Verify DFT Requirements steps. The
TAP signals can be specified here, as shown in Step 2 of TAP, BoundaryScan, and
MemoryBIST, or the specified by the DefaultsSpecification as assumed in this example
procedure.
set_dft_specification_requirements -boundary_scan on
set_design_level chip
add_clocks clka -period 3ns
add_clocks clkb -period 12ns
set_attribute_value vddq -name function -value power
set_attribute_value vss -name function -value ground
check_design_rules
13. BoundaryScan and Tap insertion: Process DFT Specification and Extract ICL steps:
process_dft_specification
extract_icl
16. BoundaryScan and Tap insertion: Run and Check Test Bench Simulations steps:
set_simulation_library_sources -v \
../library/verilog/adk.v
run_testbench_simulations
exit
Related Topics
run_testbench_simulations [Tessent Shell Reference Manual]
set_simulation_library_sources [Tessent Shell Reference Manual]
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Chapter 5
Tap, BoundaryScan and LPCT Type 2
TestKompress
You can use the TAP to control TestKompress, where the TAP’s TDI and TDO pins are used as
the EDT channel in and channel out pins. The BoundaryScan chain is segmented into smaller
Reduced Pin Count Test (RPCT) segments so they can also be part of the logic testing.
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Design Flow for TAP Control of TestKompress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
TAP and Boundary Scan Insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Scan Chain Insertion and Stitching. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
EDT (Type 2 LPCT) IP Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Pattern Generation and Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Overview
The benefit of implementing TestKompress with a Tap and Type 2 Low Pin Count Test (LPCT)
controller and segmenting boundary scan cells into RPCT segments is that the combinational
logic that is present between the boundary scan cell and the first tier or level of functional flops
is tested during logic testing with TestKompress. An example design is provided that
implements this architecture.
The design flow shown in Figure 5-1 shows the high-level overview of the steps that are
implemented.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tap, BoundaryScan and LPCT Type 2 TestKompress
Overview
Figure 5-1. Tap, Boundary Scan, and LPCT Type 2 TK Design Flow
The TAP and boundary scan chains are inserted first, followed by scan insertion and stitching of
the functional design flops. The segmented RPCT boundary scan chains are declared as
preexisting scan chains for the scan insertion step.
In the IP creation step, the signals from the TAP controller that are needed to be connected to
the Type 2 LPCT controller are specified. The TAP controller’s TDI and TDO pins are used as
the EDT channel in and channel out pins respectively.
Finally, patterns are created with TDI and TDO as the single channel for TestKompress. The
TAP states are then cycled and validated via verilog simulation to ensure the design’s integrity.
Figure 5-2 shows how a single boundary scan chain that is connected between the TDI and
TDO of the TAP controller, gets divided into smaller RPCT (Reduced Pin Count Test)
segments and how it is connected between the decompressor and the compactor of the
TestKompress IP. For further information, refer to “Type 2 LPCT Controller” in the Tessent
TestKompress User’s Manual.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tap, BoundaryScan and LPCT Type 2 TestKompress
Overview
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tap, BoundaryScan and LPCT Type 2 TestKompress
Design Flow for TAP Control of TestKompress
Procedure
1. Estimate the scan chain length for the functional design cells and apply this length to
segment the boundary scan into smaller segments.
If the scan chain length for the functional design cells is not known, pick a number for
the boundary scan chain length to ensure it that it is not the longest chain and impact
compression.
2. Apply the estimated length to segment the boundary scan chain into smaller segments.
Use max_segment_length_for_logictest property in the BoundaryScan wrapper to
specify how many boundary scan cells are to be in each scan chain. The example script
sets the boundary scan chain length to 250 cells.
Examples
This example script inserts a TAP and boundary scan chain following the DFT Flow Using
Tessent Shell steps. A TDR is also connected to the TAP controller that provides control for the
boundary scan chain to be either a single chain, or segmented and used with logic testing. The
use of max_segment_length_for_logictest property is also shown and sets the boundary scan
chain length to 250 cells.
If you need to perform custom editing between the insertion of DFT components and the saving
of the design, you can define a Tcl procedure with the name
“process_dft_specification.post_insertion”. This procedure is called automatically be called
during process_dft_specification after all DFT components have been inserted and before the
write_design command is invoked.
The example script calls makes use of this technique to insert clock control logic that provides
the proper clocking for segmented boundary scan chains during logic testing. The contents of
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tap, BoundaryScan and LPCT Type 2 TestKompress
TAP and Boundary Scan Insertion
this file are provided in Figure 5-3 and can be customized to meet your design requirements. For
more information on this method, refer to the process_dft_specification command description.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tap, BoundaryScan and LPCT Type 2 TestKompress
TAP and Boundary Scan Insertion
##Design Loading
set_context dft -no_rtl
read_cell_library ../../libs/adk_complete.tcelllib
read_cell_library ../../libs/memory.lib
read_verilog ../netlist/cpu_top.v
set_current_design cpu_top
##Create DftSpecification
set spec [create_dft_specification]
set_config_value $spec/BoundaryScan/max_segment_length_for_logictest 250
read_config_data -in $spec/IjtagNetwork/HostScanInterface(tap)/ \
Tap(main)/HostIjtag(1) -from_string {
Tdr(logic_enable) {
DataOutPorts +{
count : 3;
port_naming : ltest_enable, bypass_enable, \
low_power_enable;
}
}
}
report_config_data $spec
set_config_value /DftSpecification(cpu_top,gate)/use_rtl_cells On
##Process DftSpecification
process_dft_specification
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tap, BoundaryScan and LPCT Type 2 TestKompress
TAP and Boundary Scan Insertion
##Extract ICL
extract_icl
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tap, BoundaryScan and LPCT Type 2 TestKompress
TAP and Boundary Scan Insertion
##Do not need muxes to choose between functional clock and tck when
##OCC is present.
##Adding muxes to all the functional clocks in the design
intercept_connection /inpad0/C -cell_function_name mux \
-input2 $tck_tap_point -select scan_en1 \
-leaf_instance_prefix clk1_p_
intercept_connection /inpad1/C -cell_function_name mux \
-input2 $tck_tap_point -select scan_en1 \
-leaf_instance_prefix clk2_p_
intercept_connection /inpad2/C -cell_function_name mux \
-input2 $tck_tap_point -select scan_en1 \
-leaf_instance_prefix clk3_p_
intercept_connection /inpad3/C -cell_function_name mux \
-input2 $tck_tap_point -select scan_en1 \
-leaf_instance_prefix clk4_p_
intercept_connection /inpad4/C -cell_function_name mux \
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tap, BoundaryScan and LPCT Type 2 TestKompress
Scan Chain Insertion and Stitching
Related Topics
TAP and Boundary Scan Insertion
add_scan_chains [Tessent Shell Reference Manual]
read_icl [Tessent Shell Reference Manual]
Scan Chain Insertion and Stitching
“Inserting EDT Logic During Synthesis” [Tessent TestKompress User's Manual]
“Low Pin Count Test Controller” [Tessent TestKompress User's Manual]
"Generating and Verifying Test Patterns" [Tessent TestKompress User's Manual]
EDT (Type 2 LPCT) IP Creation
set_lpct_pins [Tessent Shell Reference Manual]
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tap, BoundaryScan and LPCT Type 2 TestKompress
Scan Chain Insertion and Stitching
Examples
set_context dft -scan
read_cell_library ../library/adk_complete.tcelllib
read_verilog ../from_step1/cpu_top.v_full
read_verilog ../from_step1/synthesized/boundary_scan_cells.v
read_verilog ../from_step1/synthesized/tessent_tap_main.v
set_current_design cpu_top
set_system_mode analysis
insert_test_logic -max_length 250 -clock merge \
-edge merge -new_scan_po
report_test_logic
report_scan_chains
write_design -output generated/cpu_top_scan.v -replace
write_atpg_setup generated/cpu_scan -replace
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tap, BoundaryScan and LPCT Type 2 TestKompress
Scan Chain Insertion and Stitching
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tap, BoundaryScan and LPCT Type 2 TestKompress
EDT (Type 2 LPCT) IP Creation
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tap, BoundaryScan and LPCT Type 2 TestKompress
EDT (Type 2 LPCT) IP Creation
Prerequisites
• Complete TAP and Boundary Scan Insertion steps.
• Complete Scan Chain Insertion and Stitching steps.
Procedure
1. Follow the steps outlined in the example script provided below as a guide to complete
this stage of the design flow. The example shows the settings needed for LPCT Type 2
IP creation.
Caution
You must specify the test_logic_reset signal from the Tessent TAP as active low
because it is driven as active low. Failure to do this results in simulation failures and
a condition that is difficult to debug.
2. Synthesize the EDT IP logic RTL that was generated into core netlist Verilog gates
using the Synopsis Design Complier script generated during the IP creation. For more
information, see “Inserting EDT Logic During Synthesis” in the Tessent TestKompress
User’s Manual.
Examples
##Using a Type 2 LPCT Controller
set_lpct_controller On -TAp_controller_interface On \
-Generate_scan_enable On
set_lpct_controller -shift_control clock
##Use the TAP's TDI and TDO as the external channel to drive EDT
set_edt_options -location internal -channels 1
set_edt_pins input_channel 1 tdi_p tdi_i/C
set_edt_pins output_channel 1 tdo_p tdo_i/I
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tap, BoundaryScan and LPCT Type 2 TestKompress
Pattern Generation and Simulation
Related Topics
“Low Pin Count Test Controller” [Tessent TestKompress User's Manual]
“Inserting EDT Logic During Synthesis” [Tessent TestKompress User's Manual]
For the architecture implementation described in this chapter, make sure that during the EDT
(Type 2 LPCT) IP Creation phase, the set_lpct_pins TEST_clock_connection property is used
as described in the example for that section. If there are no On-Chip-Clock (OCC) generators in
the design, then insert TCK for all the functional clocks. The TCK clock needs to be controlled
from the output of the LPCT controller.
Note
The following needs to be understood if you plan on inserting OCC in your design.
The OCC generator is inserted only for functional clocks. The TCK clock has an added clock
gating function and does not receive an OCC generator.
There are two modes in which patterns can be generated during pattern generation - a SLOW
and FAST capture mode. During SLOW capture mode, the slow speed clock is used for both
shift and capture during “stuck-at” testing. In this mode (SelectJtagOutput = 0 and
SelectJtagInput =1), the logic states into and out of the core are being sourced and captured by
the boundary scan registers. However, during the FAST capture mode (SelectJtagOutput = 1
and SelectJtagInput = 1), the logic state from the core side is not captured in the output
boundary scan cells. If not set up correctly, what ATPG predicts happens does not match
simulation results, creating errors that are very difficult to diagnose.
In some designs, it may be that the “at-speed” coverage is very low due to the fact that any
interaction between the boundary scan cells and the core is not covered. If the boundary scan
cells can be synthesized to the same frequency as the fast capture clock, then during transition
testing the interaction can be tested “at-speed”. During boundary scan test the clock used is the
low-speed TCK, so this is not typically wanted.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Appendix A
Tessent Core Description
This section describes the configuration data syntax used to describe the following macro
module types: core and boundary scan segments.
This appendix uses the following syntax conventions when documenting wrappers and
properties used in the library descriptions.
Table A-1. Conventions for Command Line Syntax
Convention Example Usage
UPPercase -STatic Required argument letters are in uppercase; in
most cases, you may omit lowercase letters when
entering literal arguments, and you need not enter
in uppercase. Arguments are normally case
insensitive.
Boldface set_fault_mode A boldface font indicates a required argument.
Uncollapsed | Collapsed
[ ] exit [-force] Square brackets enclose optional arguments. Do
not enter the brackets.
Italic dofile filename An italic font indicates a user-supplied argument.
{ } add_fault_sites {-ALl | Braces enclose arguments to show grouping. Do
-UNDEFINED_Cells } not enter the braces.
[-VERBose]
| add_fault_sites {-ALl | The vertical bar indicates an either/or choice
-UNDEFINED_Cells } between items. Do not include the bar in the
command.
[-VERBose]
Underline set_dofile_abort ON | OFf An underlined item indicates either the default
argument or the default value of an argument.
… add_clocks off_state An ellipsis follows an argument that may appear
primary_input_pin… more than once. Do not include the ellipsis when
entering commands.
[-Internal]
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tessent Core Description
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tessent Core Description
Core
Core
In Tessent Shell, descriptions of core elements, such as the memory library, the boundary scan
information, or the fuse box interface, are presented to the tool in form of TCD files (Tessent
Core Description files). After loading, they are hierarchically organized under the “Core” root
entry. This is unique for a given module name.
Usage
Core(module_name) {
Memory {
}
BoundaryScan {
}
FuseBoxInterface {
}
}
Description
The Core wrapper collects all TCD data read into the tool. Such descriptions are automatically
read in during module matching. See the set_design_sources -format tcd_memory command
description for information about where they are looked for. See the read_core_descriptions
command description to learn how to read them in explicitly.
You can also report on the loaded TCD information. You do this using the report_config_data
command. An example is "report_config_data Core(ModuleName)/Memory -partition tcd".
This reports the contents of the Memory entries under Core. To see the supported syntax, use
the report_config_syntax command, for example "report_config_syntax Core/Memory".
Arguments
• module_name
The name of the module, equivalent of the current design module name. You don't need to
specify this when loading a memory TCD file. The tool with auto-generate and auto-
configure the Core-level wrapper for you.
Related Topics
set_design_sources [Tessent Shell Reference Manual]
read_core_descriptions [Tessent Shell Reference Manual]
report_config_data [Tessent Shell Reference Manual]
report_config_syntax [Tessent Shell Reference Manual]
set_module_matching_options [Tessent Shell Reference Manual]
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tessent Core Description
BoundaryScan
BoundaryScan
Specifies the embedded boundary scan chain already implemented into the design
module_name.
Usage
Core(module_name) {
BoundaryScan {
Interface {
}
CustomBsdlCellInfo {
cell_type_id : cell_info_description; // repeatable
}
ExternalPort(port_name) {
}
Cell(id) {
}
NonScannableInstances {
instance_name ; // repeatable
}
Segment(segment_name) {
first_cell_id : cell_id;
last_cell_id : cell_id;
}
SegmentSelection(selection_name) {
SegmentNames {
segment_name; //repeatable
}
EnableSignals {
pin_port_or_net_name : value; // repeatable
}
}
}
Description
Describes the pads and boundary-scan cells contents of a module module_name already
instantiated in the design. Such descriptions are automatically read in during module matching.
See the set_design_sources -format tcd_bscan command description for information about
where they are looked for. See the read_core_descriptions command description to learn how to
read them in explicitly. See the set_module_matching_options command description for
information about the name matching process. Note that the legacy LogicVision .lvbscan format
is supported natively and is automatically translated into this format when read.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tessent Core Description
BoundaryScan
Arguments
None.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tessent Core Description
Interface
Interface
This section describes the common ports of the boundary scan hardware of the module
module_name.
Usage
Core(module_name) {
BoundaryScan {
Interface {
select : port_name ;
reset : port_name ;
force_disable : port_name ;
select_jtag_input : port_name ;
select_jtag_output : port_name ;
select_jtag_enable : port_name ;
capture_shift_clock : port_name ;
capture_shift_clock_inv : port_name ;
bscan_clock : port_name ;
update_clock : port_name ;
capture_en : port_name ;
shift_en : port_name ;
update_en : port_name ;
scan_in : port_name ;
scan_out : port_name ;
scan_out_launch_edge : posedge | negedge ;
ac_init_clock0 : port_name ;
ac_init_clock1 : port_name ;
ac_signal : port_name ;
ac_mode_enable : port_name ;
}
}
}
Description
This section describes the common ports of the boundary scan hardware of the module
module_name. Theses ports usually connect to a higher level boundary scan interface block or
to a TAP.
Arguments
• select : port_name
This signal is used to enable the boundary-scan register logic in the module. If this signal is
active the capture, shift and update enable signals effect the boundary scan register. The
signal is furthermore used to gate the clocks bscan_clock, capture_shift_clock and
capture_shift_clock_inv. The signal is optional and it assumed to be active high.
• reset : port_name
This signal is used to reset the boundary scan register logic in the module. The signal is
active low.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tessent Core Description
Interface
• force_disable : port_name
This disables all pad cell drivers. The external ports show a Z signal. This is limited to those
pad cells that can be disabled. The signal overrides the settings from the enable boundary
scan cells. The signal is active high. The signal is needed to support the HIGHZ instruction.
• select_jtag_input : port_name
This is the select signal of the SJI multiplexer that switches between the pad cells from_pad
port and the output of the boundary scan cell. The output of the multiplexer is connected to
the core. When the signal is high it selects the boundary scan cell output. This signal is
mandatory, in case the module contains input boundary scan cells.
• select_jtag_output : port_name
This is the select signal of the SJO multiplexer that switches between the core signal and the
output of the boundary scan cell. The output of the mux is connected to the pad cells to_pad
port. When the signal is high it selects the boundary scan cell output. The signal is
mandatory, in case the module contains output or bidirectional boundary scan cells.
• select_jtag_enable : port_name
This is the select signal of the SJI multiplexer that switches between the functional pad
enable and the output of the enable boundary scan cell. The output of the multiplexer is
connected to the pad enable port. When this signal is high it selects the output of the
boundary scan cell. This entry is optional. The select of the SJE multiplexer can be
connected to select_jtag_output instead of this dedicated signal, when this signal is not
specified.
• capture_shift_clock: port_name
This is a gated version of the test clock. The clock should be active during shift and capture
cycles. The inactive state of the clock is the low state. You need to specify either
bscan_clock or capture_shift_clock or capture_shift_clock_inv.
• capture_shift_clock_inv : port_name
Inverted version of capture_shift_clock. This is the legacy clock timing that is used in
ETAssemble.You need to specify either bscan_clock or capture_shift_clock or
capture_shift_clock_inv.
• bscan_clock : port_name
Clock that needs to be continuously running during the boundary scan test. This is usually
the test clock or a gated version of the test clock that is disabled outside of the boundary
scan test. You need to specify either bscan_clock or capture_shift_clock or
capture_shift_clock_inv.
• update_clock : port_name
A gated clock that pulses the update register in the boundary scan cell. The disabled stated
of the clock is the low state. You need to specify this clock when using the
capture_shift_clock or the capture_shift_clock_inv clock. You need to specify either this
entry or update_en.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tessent Core Description
Interface
• capture_en : port_name
When this signal is high, the boundary scan cells capture the value from either pad, the core,
or the update register dependent on the type of the boundary scan cell. You need to specify
this signal when you use bscan_clock. The signal is active high.
• shift_en : port_name
This is the shift enable of the boundary scan register. It is the select of the scan multiplexer
inside the boundary scan cells, and a high value here connects the boundary scan cell to a
scan chain. This entry is mandatory.
• update_en : port_name
When this signal is high the update elements in the boundary scan cells take over the value
of the boundary scan register. This entry is needed when you use bscan_clock. You need to
specify either this entry or update_clock.
• scan_in : port_name
This is the scan input of the boundary scan segment inside the module. It is used to shift in
data from the TAP or a boundary scan interface block or from other parts of the boundary
scan register.
• scan_out : port_name
This is the scan output of the boundary scan segment inside the module. It is used to shift
out data to the TAP or a boundary scan interface block or to other parts of the boundary scan
register.
• scan_out_launch_edge : posedge | negedge
This entry is only valid if scan_out is defined. It specifies the edge where the data on the
scan output is valid.
• ac_init_clock0 : port_name
You can use this clock to trigger the initialization of the test receiver in AC input and AC bi-
directional pad cells. The tool initializes the test receiver’s hysteretic memory element on
the falling edge of the clock or by a logic 0 on this port.
• ac_init_clock1 : port_name
You can use this clock to trigger the initialization of the test receiver in AC input and AC
bidirectional pad cells. The tool initializes the test receiver’s hysteretic memory element on
the rising edge of the clock or by a logic 1 on this port.
• ac_signal : port_name
This signal gives the pulse(s) for the extest pulse or train according the the IEEE 1149.6
standard. This signal is mandatory when the module contains AC output or inout cells.
• ac_mode_enable: port_name
This enables the AC functionality in the described module. This signal enables the input AC
functionality and the output functionality for those ports that don’t have an AC select cell.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tessent Core Description
CustomBsdlCellInfo
CustomBsdlCellInfo
This wrapper defines custom boundary scan cell types and describes their capture behavior.
Usage
Core(module_name) {
BoundaryScan {
CustomBsdlCellInfo {
cell_type_id : cell_info_description ; // repeatable
}
}
}
Description
The CustomBsdlCellInfo wrapper is used to define custom boundary scan cell types and
describe their capture behavior. The CustomBsdlCellInfo descriptions are saved to the
TS_BSCAN_CELLS BSDL package file along side the BSDL file in the Tessent Shell Data
Base (TSDB) and be used when generating IO test patterns.
Standard 1149.1 built-in cell types, such as those prefixed with BC_ or AC_, as well as custom
cell types, are specified in the BoundaryScan/Cell wrapper to describe boundary scan cells in
the design. The custom boundary scan cell types specified in the BoundaryScan/Cell wrapper
must also be described in the CustomBsdlCellInfo wrapper.
Arguments
• cell_type_id : cell_info_description ;
A repeatable label string and complex string pair that defines and describes the custom cell
type.
The cell_type_id string value is user-defined, and is specified in the BoundaryScan/Cell/
bsdl_cell_type property to identify the custom cell type for a boundary scan cell.
The cell_info_description syntax must exactly match the CELL_INFO syntax as defined in
the IEEE 1149.1 standard, “Annex B.10 User-supplied BSDL packages” section. Note that
the cell_info_description must be enclosed in quotes because the description contains
spaces.
Examples
The following example shows how to define, and use, a custom boundary scan cell type that is a
variation of the standard BC_7 cell type.
The standard BC_7 cell type is described by the following CELL_INFO in the IEEE 1149.1
standard:
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tessent Core Description
CustomBsdlCellInfo
We want to create a custom cell type that differs in the highlighted INTEST behavior. For the
standard cell, this portion can be read as “for this cell used as a bidirectional cell acting as an
input (BIDIR_IN) while INTEST is in effect, the capture flip-flop loads the value of the Update
flip-flop (or latch) data (UPD) during Capture-DR controller state”.
The custom cell to be defined has the following behavior for the highlighted section:
(BIDIR_IN, INTEST, X)
This indicates an unknown value is loaded rather than the UPD value, as is done in the standard
cell type.
The example below shows the definition and use of the described custom cell type:
Core(core) {
BoundaryScan {
CustomBsdlCellInfo {
my_BC_7 : "((BIDIR_IN, EXTEST, PI), (BIDIR_OUT, EXTEST, PO),
(BIDIR_IN, SAMPLE, PI), (BIDIR_OUT, SAMPLE, PI),
(BIDIR_IN, INTEST, X), (BIDIR_OUT, INTEST, PI))";
}
Cell(my_bidir){
function : bidir ;
bsdl_cell_type : my_BC_7 ;
...
}
...
}
}
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tessent Core Description
ExternalPort
ExternalPort
This section describes the properties of a port that is to be connected directly to a top level port
and the connected pad cell.
Usage
Core(module_name) {
BoundaryScan(module_name) {
ExternalPort(port_name) {
differential_inverse_of : port_name;
differential_type : voltage | current;
control_cell : cell_id;
ac_hp_time : time;
ac_lp_time : time;
ac_hp_location : on_chip | off_chip;
auxiliary_output : port_name;
auxiliary_output_enable : port_name;
auxiliary_input : port_name;
auxiliary_input_enable : port_name;
}
}
}
Description
This section describes the properties of a port port_name on the tcd_bscan module that is to be
directly connected to a top level port. The pad cell is inside the tcd_bscan segment and this
wrapper describes the properties of the pad cell.
Arguments
• differential_inverse_of : port_name
This entry is used for the associated port of a differential pair. The port_name refers to the
ExternalPort(port_name) wrapper of the representative port. This entry is exclusive with all
other entries. The settings for the differential pair need to be done in the wrapper of the
representative port.
• differential_type : voltage | current
Specifies the nature of the differential pair. If this is set to voltage it means that the signals
are similar to the other logic signals. In case of current the differential pair is directly
accessible from the tester and the tester needs to determine how to deal with this differential
port. If this entry is specified there needs to be a ExternalPort() wrapper referring to this
wrapper with the differential_inverse_of property to this port.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tessent Core Description
ExternalPort
A three_state port can drive 0 and 1 values and is enables and disabled by an extra enable
cell. A two_state pot can drive a 0 and a 1, but cannot be disabled. Note that you cannot
implement a fully IEEE 1149.1 HIGHZ instruction if you use such a driver in your design,
because this buffer type lacks the needed ability to disable the pad driver. The types
low_only and high_only are asymmetric drivers like open emitter and open collector driver.
The enable signal of a driver can be overridden by the force disable signal that switches off
all driver except the two_state ones. This entry is only valid for output or inout ports.
• highz_during_force_disable : on | off | auto
Specifies if the pad driver can be disabled with the force disable signal. This entry is only
valid for output or inout ports. In case of auto it is assumed that driver of the buffer_type
three_state, low_only and high_only can be disabled.
• pull_resistor : high | low | none
Specifies if a pull resistor is present in the pad.
Table A-4. Valid Combinations of the pull_resistor and buffer_type
pull_resistor buffer_type bsdl disable result
none three_state Z
none two_state -
none low_only weak1
none high_only weak0
high low_only pull1
low high_only pull0
The preceding table shows the valid combinations. This entry is only valid for output and
inout ports.
• control_cell : cell_id
This refers to a Cell(cell_id) wrapper that contains the description of the control cell that
enables and disables the pad. This entry is only valid for output and inout ports.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tessent Core Description
ExternalPort
• ac_hp_time : time
This describes the AC high pass behavior of the pad according to the IEEE 1149.6 standard.
• ac_lp_time : time
This describes the AC low pass behavior of the pad according to the IEEE 1149.6 standard.
• ac_hp_location : on_chip | off_chip
This described if the AC high pass is on the chip or needs to be added on the outside.
• auxiliary_output : port_name
This specifies a port that can be multiplexed with the data from the core or the data bscan
cell. The output of the multiplexer is connected to the pad of the external port. The external
port needs to be an output or inout port. You need to specify also the
auxiliary_output_enable entry.
• auxiliary_output_enable : port_name
This is the multiplexer enable for the auxiliary_output above. You need to specify both
entries together.
• auxiliary_input : port_name
This specifies a port that gets the value from the pad of the external port, if enabled with the
auxiliary_input_enable. The external port needs to be an input or inout port. You need to
specify also the auxiliary_input_enable entry.
• auxiliary_input_enable : port_name
This is the enable for the auxiliary_input above. You need to specify both entries together.
Examples
Figure A-1. Bidirectional Pad With Data and Enable Cell
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tessent Core Description
ExternalPort
The core description of the bidirectional pad with boundary scan and enable cell :
Core(tcd1) {
BoundaryScan {
Interface { // not shown in the figure
force_disable : force_disable1;
select_jtag_input : select_jtag_input1;
select_jtag_output : select_jtag_output1;
bscan_clock : bscan_clock1;
capture_en : capture_enable1;
shift_en : shift_enable1;
update_en : update_enable1;
scan_in : scan_input1;
scan_out : scan_output1;
scan_out_launch_edge : negedge;
}
ExternalPort(io1) {
buffer_type : three_state;
control_cell : cc1;
}
Cell(cc1) {
function : control;
bsdl_cell_type : BC_2;
control_enable_value : 1;
safe_value : 0;
}
Cell(bc1) {
function : bidir;
bsdl_cell_type : BC_7;
external_port : io1;
safe_value : 0;
}
} }
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tessent Core Description
Cell
Cell
This section describes a boundary scan cell.
Usage
Core(module_name) {
BoundaryScan {
Cell(id) {
function : output | input | bidir |
control | control_reset | internal |
observe_only | clock | ac_select;
bsdl_cell_type : cell_type_id;
external_port : port_name;
control_enable_value : 0 | 1;
ac_select_cell : cell_id;
safe_value : 0 | 1 | x;
ac_type : on | off;
}
}
}
Description
This section describes a boundary scan cell.
Arguments
• function : output | input | bidir | control | control_reset | internal | observe_only | clock |
ac_select
The following table shows the function of each boundary scan cell.
Table A-5. Cell functions
function description BSDL function
output A data cell that drives an output OUTPUT2 or OUTPUT3
external port. The cell may also be
able to observe the value from the
core.
input A data cell that observes an input INPUT
external port. The cell may also be
able to drive the signal to the core.
bidir A data cell for an inout external port. BIDIR
control A control cell that enables and CONTROL
disables a group of output or inout
external ports.
control_reset Same as control, but forced to the CONTROLR
disabled state during the Test-
Logic_reset TAP state.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tessent Core Description
Cell
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tessent Core Description
NonScannableInstances
NonScannableInstances
This wrapper defines BoundaryScan instances that must have the is_non_scannable attribute set
to true.
Usage
Core(module_name) {
BoundaryScan {
NonScannableInstances {
instance_name ; // repeatable
}
}
}
Description
The NonScannableInstances wrapper specifies the BoundaryScan instances that must have the
is_non_scannable attribute set to true. If the NonScannableInstances wrapper is not present, all
instances in module_name are set as non-scannable. If the NonScannableInstances wrapper is
present, but empty, all instances in module_name are scannable. If the NonScannableInstances
wrapper is present and contains instances, those listed instances that are within the module
module_name are set as non-scannable.
Arguments
• instance_name ;
A repeatable string that specifies a BoundaryScan instance within the design module_name
that must have the is_non_scannable attribute set to true.
Examples
The non-scannable BoundaryScan instances can be queried by using two attributes:
• is_non_scannable = true
• is_non_scannable_reason = “imported_from_bscan”
Using these attributes, the following command shows the BoundaryScan instances that are non-
scannable:
get_instances -filter
{is_non_scannable&&is_non_scannable_reason=="imported_from_bscan"}
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tessent Core Description
Segment
Segment
Specifies boundary scan cells that define a segment of a scan chain.
Usage
Core(core_name) {
BoundaryScan {
Segment(segment_name) {
first_cell_id : cell_id;
last_cell_id : cell_id;
}
SegmentSelection(selection_name) {
SegmentNames {
segment_name ...; // repeatable
}
EnableSignals {
pin_port_or_net_name : value ...; // repeatable
}
}
}
}
Description
The Segment wrapper specifies two boundary scan cells that have a fixed sequence. These two
cells define, as the start and end points, a segment in the boundary scan chain. This segment is
either part of the scan path or is bypassed as a whole.
The corresponding SegmentSelection wrapper specifies the segments that are part of the
boundary scan chain and the enable signals that control them.
Arguments
• segment_name
A string that uniquely identifies the segment.
• first_cell_id : cell_id
A property that specifies the cell_id of the first boundary scan cell in the segment.
• last_cell_id : cell_id
A property that specifies the cell_id of the last boundary scan cell in the segment.
• selection_name
A string that uniquely identifies a segment selection wrapper.
• pin_port_or_net_name : value
A name and value pair that specifies an enable signal and the logic value that selects the
segment.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tessent Core Description
Segment
Examples
Embedded BoundaryScan Segment With Four Boundary Scan Cells
You can bypass the cell3, cell2, and cell0 cells with the bonding_enable1 port. The boundary
scan cell, cell1, is part of the boundary scan register.
Core(mycore) {
BoundaryScan {
Interface {
...
}
Cell(cell3) {
...
}
Cell(cell2) {
...
}
Cell(cell1) {
...
}
Cell(cell0) {
...
}
Segment(segment1) {
first_cell_id : cell3;
last_cell_id : cell2;
}
Segment(segment2) {
first_cell_id : cell1;
last_cell_id : cell1;
}
Segment(segment3) {
first_cell_id : cell0;
last_cell_id : cell0;
}
SegmentSelection(complete) {
SegmentNames {
segment1;
segment2;
segment3;
}
EnableSignals {
bonding_enable1 : 0;
}
}
SegmentSelection(bypass_cells) {
SegmentNames {
segment2;
}
EnableSignals {
bonding_enable1 : 1;
}
}
}
}
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Tessent Core Description
Segment
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Appendix B
Support For AC Pins (IEEE 1149.6)
This section describes the commands and templates Tessent uses to create device circuitry
compliant with the IEEE 1149.6 standard for differential or capacitively coupled pins.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Support For AC Pins (IEEE 1149.6)
AC Pins in Configuration Specifications
For a full description of how to configure test structures in your design using the configuration
data syntax, see the "Configuration-Based Specification" chapter in the Tessent Shell Reference
Manual.
The Interface wrapper inside the EmbeddedBoundaryScan wrapper includes the following
arguments:
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Support For AC Pins (IEEE 1149.6)
AC Pins in the PatternsSpecification Wrapper
The LoadBoardInfo wrapper includes the dot6_ttest argument. This argument (referred to as
TTest in the IEEE 1149.6 standard) specifies the minimum time required by the slowest
coupling capacitor, among all AC Loopbacks, to fully discharge. It is used mainly by DC
BoundaryScan tests such as dot6_dc_input and dot6_dc_output to ensure that DC levels are not
captured by the test receiver.
The default value of dot6_ttest is three times the slowest time constant among all AC pads that
have an on-chip high-pass or low-pass filter (as recommended by the IEEE 1149.6 standard). If
no on-chip filter is present or if no BSDL file can be found, the value defaults to three times the
TCK period.
The ACLoopbacks wrapper inside the LoadBoardInfo wrapper specifies connection loopbacks
from AC source ports to AC destination ports through a coupling capacitor. This wrapper takes
arguments in pairs (destination_port : source_port) with the following restrictions:
• source_port and destination_port must be output and input respectively. Inout ports are
not supported.
• 1149.1 ports are not supported.
• To loop back differential pairs, you can specify either of:
o The output positive leg and the input positive leg
o The output negative leg and the input positive leg
You can also specify only the positive leg’s port names. In this case, the negative leg is
inferred from the BSDL file or taken from the differential_inverse_of properties of the
specified ports.
• The destination_port must be the positive leg.
The connection between the other two legs; that is, between the positive leg of the
source and the negative leg of the destination, is inferred.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Support For AC Pins (IEEE 1149.6)
AC Pins in the PatternsSpecification Wrapper
Value Description
dot6_ac_00 This test measures the AC parameters Vhyst_edge and Thyst on
contacted 1149.6 input pins by applying a valid logic 0 to the input pins
and expecting to capture a logic 0. This test applies AC waveforms to
contacted inputs and uses the EXTEST_PULSE instruction.
dot6_ac_01 This test measures the AC parameters Vhyst_edge and Thyst on
contacted 1149.6 input pins by applying an invalid logic 0 to the input
pins and expecting to capture a logic 1. This test applies AC waveforms
to contacted inputs and uses the EXTEST_PULSE instruction.
This test is meant for manufacturing patterns and cannot pass simulation,
because it assumes that the test receiver reacts correctly to an invalid 0 or
1.
dot6_ac_10 This test measures the AC parameters Vhyst_edge and Thyst on
contacted 1149.6 input pins by applying an invalid logic 1 to the input
pins and expecting to capture a logic 0. This test applies AC waveforms
to contacted inputs and uses the EXTEST_PULSE instruction.
This test is meant for manufacturing patterns and cannot pass simulation,
because it assumes that the test receiver reacts correctly to an invalid 0 or
1.
dot6_ac_11 This test measures the AC parameters Vhyst_edge and Thyst on
contacted 1149.6 input pins by applying a valid logic 1 to the input pins
and expecting to capture a logic 1. This test applies AC waveforms to
contacted inputs and uses the EXTEST_PULSE instruction.
dot6_ac_input This test verifies the AC operation of the 1149.6 receivers. It performs
the following tasks:
• Applies a checkerboard pattern to contacted AC input/bidirectional
pins. Disables all output/bidirectional pads.
• Applies a valid AC waveform to contacted input and inout pins.
• Tests the “no transition” detection capability, if present, by applying
two consecutive test patterns while keeping the AC pin level
constant. If the pad contains either a Low-Pass filter or an embedded
High-Pass filter, the absence of transition in the second pattern makes
its corresponding boundary-scan cell capture its default value.
This test uses both the EXTEST_PULSE and EXTEST_TRAIN
instructions.
Note: inputs with loopbacks are not tested with this test, but rather
with the dot6_ac_output test.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Support For AC Pins (IEEE 1149.6)
AC Pins in the PatternsSpecification Wrapper
Value Description
dot6_ac_output This test verifies the AC operation of the 1149.6 transmitters and
loopbacks. It performs the following tasks:
• Enables all AC output pads. Ignores and turns off all non-AC pads, if
possible.
• Alternatively disables and enables ACSelect cells.
• Runs the test on one Enable Group at a time.
• Strobes AC waveforms on all AC contacted outputs.
This test uses both EXTEST_PULSE and EXTEST_TRAIN instructions,
and both AC and DC loopbacks (if present).
dot6_ac_select_cells This test verifies that the netlist properly implements the AC grouping
described in the BSDL. Only one ACSelect cell is enabled at a time, and
its action is verified by checking that all AC output pins in its fanout
properly toggle during the RunTestIdle state when the EXTEST_PULSE
instruction is loaded.
This test is necessary only during netlist verification in the design flow.
In manufacturing, the dot6_ac_output test ensures that all AC select cells
are properly operating by enabling or disabling them all at once.
dot6_dc_00 This test measures DC parameters Vthreshold and Vhyst_level on
contacted 1149.6 input pins by applying a valid logic 0 to the input pins
and expecting to capture a logic 0. All AC pad drivers are disabled for
this test.
dot6_dc_01 This test measures DC parameters Vthreshold and Vhyst_level on
contacted 1149.6 input pins by applying an invalid logic 0 to the input
pins and expecting to capture a logic 1. All AC pad drivers are disabled
for this test.
This test is meant for manufacturing patterns and cannot pass simulation,
because it assumes that the test receiver reacts correctly to an invalid 0 or
1.
dot6_dc_10 This test measures DC parameters Vthreshold and Vhyst_level on
contacted 1149.6 input pins by applying an invalid logic 1 to the input
pins and expecting to capture a logic 0. All AC pad drivers are disabled
for this test.
This test is meant for manufacturing patterns and cannot pass simulation,
because it assumes that the test receiver reacts correctly to an invalid 0 or
1.
dot6_dc_11 This test measures DC parameters Vthreshold and Vhyst_level on
contacted 1149.6 input pins by applying a valid logic 1 to the input pins
and expecting to capture a logic 1. All AC pad drivers are disabled for
this test.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Support For AC Pins (IEEE 1149.6)
AC Pins in the PatternsSpecification Wrapper
Value Description
dot6_dc_input This 1149.6 test verifies the behavior of all 1149.6 AC input pins when
operating in EXTEST mode. Just as the non-AC (in other words, DC)
pins “input” test, this pattern applies zero and one logic values at the AC
pins and checks that their 1149.6 test-receiver's associated bscan cells
capture the same value. In addition, whenever the target tester supports it,
the test also verifies that all AC pins can reliably detect invalid input
voltage levels sitting in between the “zero” and “one” threshold voltages.
dot6_dc_output This 1149.6 test is equivalent to the existing output IO test for normal DC
pads. Just as in the output test, the dot6_dc_output test applies
checkerboard values, activates output cells one enable group at a time,
and uses load board loopbacks as well as IO internal loopbacks. In
addition, this test also covers 1149.6-specific features such as coupling
capacitors discharge time, ACSelect cells, and output inversion during
the RunTestIdle state of the TAP.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Support For AC Pins (IEEE 1149.6)
IEEE 1149.6 Hardware
TAP Controller
When AC pads are present in your design, Tessent BoundaryScan generates a modified Tessent
TAP controller that provides the IEEE 1149.6 instructions and control circuit.
Two variants of the EXTEST instruction are defined in the InstructionCodes section of the
DftSpecification/IjtagNetwork/Tap/HostBScan wrapper: EXTEST_PULSE and
EXTEST_TRAIN. For example:
DftSpecification(mychip,rtl) {
IjtagNetwork {
HostScanInterface(tap) {
Tap(main) {
bypass_instruction_codes : 2'b00 ;
HostBscan {
InstructionCodes {
CLAMP : unused ;
EXTEST : 2'b01 ;
EXTEST_PULSE : 2'b10 ;
EXTEST_TRAIN : 2'b11 ;
INTEST : unused ;
SAMPLE_PRELOAD : unused ;
HIGHZ : unused ;
}
}
}
}
}
}
Note
EXTEST_PULSE is required. EXTEST_TRAIN is optional.
The modified TAP controller has outputs corresponding to these instructions. Names for these
output ports can be defined in the Interface section of the wrapper if the default names are not
wanted.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Support For AC Pins (IEEE 1149.6)
AC Control Signals
AC Control Signals
When Tessent BoundaryScan creates the modified TAP controller to support the IEEE 1149.6
standard, it creates several dedicated control signals as well.
The modified TAP controller includes an interface module with output ports for each of the
three mandatory IEEE 1149.6 control signals:
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Support For AC Pins (IEEE 1149.6)
Boundary Scan Cells
• Input or bidirectional boundary-scan cells can either ignore, sample, or intercept the
functional input signal going to the core.
• Group output AC pads so as to enable the AC test mode of only one group at a time.
This subsection describes only one example of differential input and one example of differential
output AC-pads, along with their corresponding boundary-scan cells. Bidirectional IEEE
1149.6 boundary-scan cells are built from a concatenation of one output and one input IEEE
1149.6 boundary-scan cell.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Support For AC Pins (IEEE 1149.6)
Boundary Scan Cells
Figure B-2. Output Boundary Scan Cell (One Per Differential Pair)
Typically, the multiplexer in the functional signal path is not in the boundary scan cell because
the multiplexer conveys GHz signals in functional mode. If the multiplexer conveys differential
core signals, a differential-to-single-ended converter is also required. The output of the update
latch is EXORed with the acSignal when this boundary scan cell is in AC mode (either one of
the two new instructions is active and the output group is enabled for AC mode).
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Support For AC Pins (IEEE 1149.6)
Boundary Scan Cells
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Support For AC Pins (IEEE 1149.6)
Boundary Scan Cells
Figure B-4. Input Boundary Scan Cell (One Sample-Only Cell Per Differential
Pin)
The input AC pad communicates with the sample-only boundary scan cells through the
initData(inv) and the testData(inv) signals. One sample-only cell captures the value of the
positive pin, and the other captures the value of the negative pin. For single-ended AC-coupled
inputs, only one sample cell is needed. The testData signals are processed by a special Test
Receiver circuit that is mandatory in the IEEE 1149.6 standard. Tessent BoundaryScan supports
only the IEEE 1149.6 pads where the hysteretic memory element is embedded within the test
receivers. Figure B-4 illustrates an example of a test receiver with an embedded hysteretic
memory element.
• acMode (optional) — This pin controls the behavior of the test receiver’s input
comparator. When the pin is 1, the input test receiver is set in AC mode. This pin can
either enable an internal low-pass filter or change the reference voltage for the hysteretic
comparator. Refer to Figure B-4 for an example of this test receiver.
• initClk — The hysteresis of the test receiver is initialized while this signal is logic 1 or
when the signal transitions from 0 to 1.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Support For AC Pins (IEEE 1149.6)
Boundary Scan Cells
• initData, initDataInv — The hysteresis of the test receiver is initialized as if this data
value were the most recent output of the hysteretic receiver. initData is associated with
the positive pin, and initDataInv belongs to the negative pin.
• testData, testDataInv — The pin value of positive and negative pins, after processing by
the test receivers, captured by the boundary-scan cells.
• fromPad — This is the functional mode signal in high-speed SerDes pads. The output is
normally connected to a deserializer circuit and typically not available for boundary
scan observation.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Support For AC Pins (IEEE 1149.6)
Boundary Scan Cells
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Appendix C
Getting Help
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 Siemens EDA
Support.
Tessent Documentation System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Global Customer Support and Success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
• 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 <software_release_tree>/doc/infohubs/index.html
PDF:
acroread <software_release_tree>/doc/pdfdocs/_tessent_pdf_qref.pdf
• Application Online Help — You can get contextual online help within most Tessent
tools by using the “help -manual” tool command. For example:
> help dofile -manual
This command opens the appropriate reference manual at the “dofile” command
description.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Help
Global Customer Support and Success
https://support.sw.siemens.com
If your site is under a current support contract, but you do not have a Support Center login,
register here:
https://support.sw.siemens.com/register
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Third-Party Information
Details on open source and third-party software that may be included with this product are available in the
<your_software_installation_location>/legal directory.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.