8/2/2019 Vsia Test Access
1/41
VSI AllianceTM
Test Access Architecture
Standard
Version 1.0(Test 2 1.0)
Manufacturing-Related TestDevelopment Working Group
September 2001
8/2/2019 Vsia Test Access
2/41
Copyright 2000-2001 by
VSI Alliance, Inc.401 Edgewater Place, Suite 600
Wakefield, Masschusetts 01880, USAPhone: (781) 876-8822, Fax: (781)-224-1239
http://www.vsi.org, [email protected]
All rights reserved. This document is protected by
copyright and distributed under licenses restricting
its use, copying, distribution, and decompilation. No
part of this document may be reproduced in any form
by any means without the prior written authorization
of VSI Alliance.
VSI Alliance is a trademark of the VSI Alliance, Inc.All other trademarks are the property of their
respective owners.
8/2/2019 Vsia Test Access
3/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. i
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
HOW TO OBTAIN LICENSE RIGHTS FOR THEVSI ALLIANCE DOCUMENT:
Test Access Architecture StandardVersion 1.0
(TST 2 1.0)
VSI ALLIANCE (VSIA) COPYRIGHT LICENSE
The VSI Alliance is the copyright owner of the document identifiedabove.
The VSI Alliance will make royalty-free copyright licenses for thisdocument available to VSI Alliance Members. Non-members mustpay a fee for the copyright license.
Use of the document by members and non-members of the VSI Alli-ance is subject to the terms of the license. You are not entitled to use
the document unless you agree to the terms of the license (and, if ap-plicable, pay the fee). The license terms are set forth on the Web siteof the VSI Alliance at http://www.vsi.org.
THE DOCUMENT IS PROVIDED BY VSIA ON AN AS-IS BASIS, AND VSIA HASNO OBLIGATION TO PROVIDE ANY LEGAL OR TECHNICAL ASSISTANCE INRESPECT THERETO, TO IMPROVE, ENHANCE, MAINTAIN OR MODIFY THEDOCUMENT, OR TO CORRECT ANY ERRORS THEREIN. VSIA SHALL HAVENO OBLIGATION FOR LOSS OF DATA OR FOR ANY OTHER DAMAGES,INCLUDING SPECIAL OR CONSEQUENTIAL DAMAGES, IN CONNECTIONWITH THE USE OF THE DOCUMENT BY SUBSCRIBER. VSIA MAKES NOREPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
WITHOUT LIMITATION, ANY WARRANTY AS TO INFRINGEMENT, OR THEIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR APARTICULAR PURPOSE. SUBSCRIBER SHOULD BE AWARE THATIMPLEMENTATION OF THE DOCUMENT MAY REQUIRE USE OF SUBJECTMATTER COVERED BY PATENT OR OTHER INTELLECTUAL PROPERTYRIGHTS OF THIRD PARTIES. NO LICENSE, IMMUNITY, OR OTHER RIGHT ISGRANTED BY THIS LICENSE IN ANY SUCH THIRD-PARTY RIGHTS. NEITHERVSIA NOR ITS MEMBERS TAKE ANY POSITION WITH RESPECT TO THEEXISTENCE OR VALIDITY OF ANY SUCH RIGHTS.
8/2/2019 Vsia Test Access
4/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. ii
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
8/2/2019 Vsia Test Access
5/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. iii
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
Manufacturing-Related TestDevelopment Working Group
Company Members of the Development Working Group:
Individual Member of the Development Working Group:
Prab Varma
Chairman:
Ramamurti Chandramouli
TechnicalEditors:
Samy Makar
Herbert Leeds
Advantest ARM
Cadence Design Systems ECSI
Fujitsu Limited Agilent Technologies
Hitachi Semiconductor America LogicVision
LSI Logic Mentor Graphics
National Semiconductor Oki Electric Industry Co.
Palmchip Philips Semiconductor
Schlumberger Technologies Sonics
STMicroelectronics Toshiba
Synopsys
8/2/2019 Vsia Test Access
6/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. iv
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
8/2/2019 Vsia Test Access
7/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. v
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
Revision History
06May99 Version 0.01 Samy Makar Wrote initial version
27May99 Version0 .02 Samy Makar Fixed TAM figures to reflect separate clock instead of clk/
4, added Figure 8, added numbers to sections, minor edits
02Jun99 Version 0.03 Samy Makar Renamed Section 2 to VC Requirements, changed Section
3 to VC Implementation, moved Section 3.1 to Section 3,
edited based on last meeting discussion, deleted Section3.2 and beyond to reflect only issues discussed
03Nov99 Version 0.04 Samy Makar Restarting using P2_12
17Nov99 Version 0.05 Samy Makar Added all sections from P2_12
18Nov99 Version 0.06 Samy Makar Made table format changes and fixed figures
10Dec99 Version 0.07 Pat Made most of the changes based on phone meeting of 08Dec99, and added an introduction
21Dec99 Version 0.08 Samy Added global tristate, made changes to figures, correctedminor errors.
27Jan00 Version 0.09 Samy Made corrections from feedback of task force e-mail
08Mar00 Version 0.10 Samy Made changes based on discussion from 29Mar00 meeting
11May00 Version 0.11 Samy Makar Made changes based on DWG feedback meeting of
26Apr00
04Oct00 Version 0.12 Samy Makar Made changes based on P1500 feedback
29Mar01 Version 0.13 Samy Makar Made changes based on participating company reviews
with task force discussion
11Apr01 Version 0.14 Samy Makar Made changes based on feedback from DWG feedback onVersion 0.13 (pages 7, 8, 15, 21)
22Apr01 Version 1.0 Editorial Staff Converted to FrameMaker, edited
26Apr01 Version 1.0 Editorial Staff Applied editors written input
30Apr01 Version 1.0 Editorial Staff Applied editors written input
04May01 Version 1.0 Editorial Staff Applied clarifications from review by Chandramouli
11July01 Version 1.0 Editorial Staff Edit/update graphics
12July01 Version 1.0 Editorial Staff Made formatting edits
8/2/2019 Vsia Test Access
8/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. vi
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
8/2/2019 Vsia Test Access
9/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. vii
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
Contents
1. VSI Alliance Test Access Architecture. . . . . . . . . . . . . . . . . . . . . . . . . .1
1.1 Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2. Introduction VC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32.1 Structure of This Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 VSIA Test Standards and IEEE P1500 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Requirements for VC Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
3.1 Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
4.1 Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2 Recommendations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.3 Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114.4 Wrapper Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.4.1 Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144.4.2 Wrapper Cells With Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.4.3 Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.5 Bypass Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.6 Test Control Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184.6.1 Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.6.2 Note. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.6.3 Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.6.4 Recommendations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215. Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
5.1 Normal Operation Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.2 Safe State (Isolation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.3 External Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.4 Internal Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.4.1 Scan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.4.2 Iddq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245.4.3 Functional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.4.4 BIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Appendix
A.1 Extest Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
A.1.1 Example Verilog model soc.v. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25A.1.2 Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
8/2/2019 Vsia Test Access
10/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. viii
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
List of Tables
Table 1: VSIA VC Ports for VCs with TCB . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Table 2: VSIA VC Ports for VCs with Normal VC Ports . . . . . . . . . . . . . . . . . 9
Table 3: VSIA VC Ports for VCs With No TCB . . . . . . . . . . . . . . . . . . . . . . . 10Table 4: Normal VC Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Table 5: Example of Internal Control Signals . . . . . . . . . . . . . . . . . . . . . . . . . 12Table 6: Input Wrapper Cell Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Table 7: Output Wrapper Cell Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Table 8: Input Wrapper Cell With 0-Output During Shift . . . . . . . . . . . . . . . . 15
Table 9: Input Wrapper Cell Definition With 0-Protection . . . . . . . . . . . . . . . 15Table 10: Input Wrapper Cell Definition With 1-Protection . . . . . . . . . . . . . . 16
Table 11: Input Wrapper Cell Definition With External Source . . . . . . . . . . . 17
Table 12: TCB Cell Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Table 13: TCB Cell Definition With Capture . . . . . . . . . . . . . . . . . . . . . . . . . 20
Table 14: Example of TCB Cell Assignments for Instructions . . . . . . . . . . . . 23
List of FiguresFigure 1: Wrapper Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Figure 2: An Architecture for Test Access Between VCs . . . . . . . . . . . . . . . . . 8Figure 3: Example of Input Wrapper Cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Figure 4: Example of Output Wrapper Cell . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Figure 5: Wrapper Cells in Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Figure 6: Examples of Input Wrapper Cell With Protection . . . . . . . . . . . . . . 16
Figure 7: Example of Wrapper With External Source . . . . . . . . . . . . . . . . . . . 17
Figure 8: Global Control of VC Tristate Outputs . . . . . . . . . . . . . . . . . . . . . . 17Figure 9: Example Bypass Register with Anti-Skew Latch . . . . . . . . . . . . . . . 18
Figure 10: TCB Register Sample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Figure 11: TCB Cell Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Figure 12: TCB Cell With Capture Option . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Figure 13: TCB Register With Capture Option . . . . . . . . . . . . . . . . . . . . . . . . 20
Figure 14: Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
8/2/2019 Vsia Test Access
11/41
8/2/2019 Vsia Test Access
12/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 2
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
8/2/2019 Vsia Test Access
13/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 3
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
2. Introduction VC
Increasing complexity as well as time-to-market pressures are forcing shorter ASIC design cycles. Million-gate
ASIC designs are not feasible in such time frames using traditional gate-based designs. More and more larger
designs are shifting to the use of pre-designed virtual components (VC). VCs are developed to be either soft VCsor hard VCs. Soft VCs are usually HDL (Hardware Description Language) models of complex functions that are
reconfigurable and that can be targeted towards any technology. Hard VCs are models that are technology-specific
implementations of various complex functions and cannot be modified.
VC-based design methodology is well suited for higher levels of integration, as well as a system-on-silicon
concept.The designer can build the system-on-a-chip using various VCs (similar to the lower-level cells in a
library), that are connected using glue logic. The resulting densely packed SoC presents a formidable testchallenge.
Test is one of the significant barriers faced in the SoC design environment. The test strategy should address the
access and test of the VC after it is embedded in the chip, and the integration of such VCs with user logic andembedded memories at the chip level. The main issues include testing individual VCs, interaction between VCs,
isolation of the VCs, and the glue logic.
As designers move into the high-level, structured design environment, the VCs are delivered as RTL (RegisterTransfer Level) models. These models, also called soft VCs, enable end users to optimize the VCs for targeted
applications or as hard VCs with built-in testability. Many of the soft VCs are delivered to the end user without
any testability, since most of the current design-for-test (DFT) techniques (such as scan) are not suitable forimplementation at the RT level. In case of the hard VCs, the preferred DFT (design-for-test) approach is some
form of scan testing that has proven effective for manufacturing test.
For soft VCs, the VC vendors provide only functional vectors that verify VC functionality. In general, thesevectors are not targeted toward manufacturing test. Typically, the functional vectors do not satisfy the very high
fault coverage (>95%) requirement for manufacturing test. The system integrator then creates the manufacturing
test for the VC. These vectors, which are valid only at the VC I/O level, must be mapped to the chip I/O to ensuremanufacturability of the system chip. This is true for hard VCs too, where scan DFT is implemented. It becomes
difficult to access (control and observe) the VC I/O when it is embedded within a larger design, especially when
the VC I/Os are not directly accessible from the chip I/O. The lack of common VC test interface is another issuein accessing embedded VCs from chip I/O, especially when the designer has to use VCs with scan DFT from
multiple sources that may not conform to a common scan-test standard. Hence, a standard VC test access approach
becomes important both for reuse and for VC interoperability. At present, there are no standards that define theinterface for VC test access. Existing approaches are ad hoc and vary from design to design.
As the VC-based design environment grows, the lack of VC test access standards will definitely create a
bottleneck for manufacturing high-quality products. Recognizing this need, the VSIA Test DWG has created thisstandard that can be easily adopted by both VC developers and VC integrators.
2.1 Structure of This Document
This standard defines the architecture and a set of rules and recommendations for accessing the test structures of
embedded VCs.
Section 3 introduces a set of rules that specify various test modes required for testing embedded VCs. Section 4
describes the basic architecture for VC test access and the associated set of interface signals for test access.Sections 4.1, 4.2, and 4.3 specify the architecture requirement in terms of rules, recommendations andpermissions. Every VC must be wrapped using a wrapper register, which is needed to access the VC I/O from an
external source. Section 4.4 describes various types of input and output wrapper registers and the associated rules,
recommendations, and permissions. Section 4.5 describes the bypass register required to bypass the surroundingVCs when accessing a single VC. Section 4.6 describes a Test Control Block (TCB), which manages all the test
control signals that interface with the wrapped VC. This section also specifies all the rules , recommendations, and
permissions associated with the TCB and the interface signals.
Section 5 summarizes the control signals associated with various test modes that are described in Section 3.
Appendix A explains the implementation details for Extest operation.
8/2/2019 Vsia Test Access
14/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 4
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
This standard does not specify any DFT solution for use by the VC internal structure.
2.2 VSIA Test Standards and IEEE P1500
With increasing demand for multiple functionalities in next generation SoC products, including wireless telecomand consumer electronic products, designers are rapidly adopting VC-based design methodology. However, the
lack of industry-wide standards for many aspects of Virtual Component/VC-based design, especially in test, poses
a challenge to designers who integrate Virtual Components from multiple sources without a standard interface.The need for a set of standards becomes critical especially when these emerging design methodologies are driven
by Virtual Component reuse.
Both VSIA and the IEEE P1500 Working group realized the need for test interoperability standard for embeddedVirtual Components to ensure test reuse and to enable plug-and-play at the chip level. There was general
agreement between the IEEE P1500 working group and the VSIA Manufacturing Test DWG on having a single
standard for test interoperability. Industry demand for a timely standard has prompted VSIA to provide a simplestandard that fills the need until the complete IEEE standard (wrapper and information model) is available. The
VSIA test DWG worked closely with the IEEE P1500 working group to ensure that the VSIA Test AccessStandard is compatible with IEEE P1500. It is the intent of the VSIA that the users of the VSIA Test AccessStandard are compliant with the IEEE P1500 wrappers when this becomes a standard. VSIA will specify the 1500
standard at that point.
8/2/2019 Vsia Test Access
15/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 5
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
3. Requirements for VC Testing
3.1 Rule
A VC must have a minimum of four modes of operation: Normal Mode, Safe State (Isolation), External Test, andInternal Test.
3.2 Discussion
In order to completely test an SoC, each VC requires four modes of operation. The active mode of operation of aVC depends on the state of the control signals to the VC. In the case where an SoC contains multiple VCs, there
must be a sufficient number of control signals to control the mode of operation of each VC in the SoC. The four
modes of operation of a VC are as follows:
Normal Mode In this mode, the VC operates in its intended functional or operational mode. The Design
For Testability (DFT) structures in the VC are not activated.
Safe State (Isolation) Mode In this mode, the VC is in a safe state because it is isolated from thesurrounding logic or other VCs. Techniques for isolation are described in the isolation section of this
Specification External Test Mode In this mode, the VC is set up to allow testing of the interconnect wiring between
it and other VCs or the User-Defined Logic (UDL) in the SoC. This implies access to the outputs of the
VC (for driving the interconnects), as well as access of the inputs to the VC (to observe what travels on
the interconnects to the inputs of the VC).
Internal Test Mode In this mode, the VC itself is being tested. Of course, there could be multiple tests
that need to be applied to the VC, and therefore multiple modes that need to be assigned to internal test.
8/2/2019 Vsia Test Access
16/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 6
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
8/2/2019 Vsia Test Access
17/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 7
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
4. Architecture
Achieving the VC requirements described in Section 3 implies a need to break the normal functional paths on the
SoC during testing time. This can be achieved by using the test wrapper register shown in Figure 1. As shown in
this figure, the wrapper register is made of wrapper cells. Each of the wrapper cells is connected to one of the portsof the VC, allowing a wrapper cell to drive an input of the VC or to capture the signal on an output of the VC.
In addition to the wrapper register, we also need a Test Control Block (TCB) for controlling the wrapper based on
the type of test being applied. A bypass register is also included to speed up the transfer of the vectors goingthrough the VCs. The full architecture is shown in Figure 2. Here, for simplicity, only two VCs are shown to
illustrate the communication between them. Table 1 gives l ist of all of the ports that are required, or are optional
for the wrapper. The first group of signals is required for all wrappers. The remaining signals may be required,depending on the type of test methods that are built into the VC itself. For example, VC_SI and VC_SO are
required only if scan is used as a test method for the VC.
Figure 1: Wrapper Register
VC
SI SO
Wrapper Cel l
8/2/2019 Vsia Test Access
18/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 8
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
Figure 2: An Architecture for Test Access Between VCs
Wrappe
dVC
WP
_PI
WP
_SI
VC_
SI
Clocks
Asyncs
TC
_SI
VC
_SI_BYPASS
VC
_TDI_BYPASS
TC
_SO
VC_
SO
F
unc
_ou
t
Func
_in
VC
Tes
tCon
tro
lBloc
k
Wrapper
Reg
Wrappe
dVC
WP
_PI
WP
_SI
VC_
SI
Clocks
Asyncs
TC
_SI
VC
_SI_BYPASS
VC
_TDI_BYPASS
TC
_SO
VC_
SO
WP
_SO
VC
Tes
tCon
tro
lBloc
k
Wrapper
Reg
TCLK
TC
_RESET
TC
_SHIFT
TC
_UPDATE
VC
_SHIFT
B y p a s s
B y p a s s
UDL
Scan
Chain
Scan
Chain
BIST
Control
TC_
CAPTURE
WP
_SO
MAS
MAS
MAS
MAS
Scan
Chain
Scan
Chain
BIST
Control
8/2/2019 Vsia Test Access
19/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 9
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
The wrapper register can be split into multiple parallel registers. Each register has one of the WP_SI bits as aninput, and one of the WP_SO bits as an output. (Figure 5 shows an example with three parallel registers.) The
number of parallel registers is left as a choice for the VC provider (or whoever is actually building the wrapper).
Regardless of the number of parallel registers, there should also be a mode that combines all the parallel wrapperchains into a single chain. Some VCs may require direct functional tests. Such VCs will have WP_PI port that will
have inputs coming directly from primary inputs of the chip. The response can still be captured in the wrapper
registers.
Table 1: VSIA VC Ports for VCs with TCB
Signal Name Required Description
WP_SI Yes Serial data input to wrapper register (n bits wide)
WP_SO Yes Serial data output from wrapper re gister (n bits wide)
TC_SI Yes Input to TCB
TC_SO Yes Output from TCB
TCLK Yes Clock controlling all memory elements in TCB
TC_RESET Yes Resets the TCB
TC_SHIFT Yes Sets the TCB in shift mode
TC_UPDATE Yes Updates the TCB
VC_SHIFT Yes Used to shift wrapper registers or scan chains
WP_CLK Clock-controlling memory elements of wrapper register (may
be TCLK or system clock)
WP_PI Functional Parallel load values for functional test
VC_SI Scan Scan inputs
VC_SO Scan Scan outputs
TC_CAPTURE Optional Only needed if capturing status in TCB
Yes required for all VCs
Scan required for VCs with scan
Optional Use of signal determined by VC provider
Table 2: VSIA VC Ports for VCs with Normal VC Ports
Signal Name Description
Clocks Clocks used to operate the VC
Asyncs Asynchronous signals such as resets
Func_in Functional inputs to VC that are not async
Yes required for all VCs
Scan required for VCs with scan
Optional Use of signal determined by VC provider
8/2/2019 Vsia Test Access
20/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 10
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
As mentioned earlier, VC_SI and VC_SO are the inputs and outputs of the scan chains if they are used. TCLK,
TC_RESET, TC_SHIFT, TC_UPDATE, and TC_CAPTURE all control the Test Control Block. Details about theTest Control Block are given later. VC_SHIFT is a special input that is used to enable shift the scan chains or the
wrappers (or both) depending on the test mode.
Table 2 also lists ports that are used for normal VC operation. Most of the normal pins fall into the Func_in orFunc_out categories. These are normal functional inputs and outputs of the VC that will be accessed through the
wrapper cells. There are also some special inputs, clocks and asyncs which will not be accessed through thewrapper because of their nature of operation. Clocks are signals that drive control inputs of memory elements.Asyncs drive asynchronous sets and resets of memory elements, or any other special controls that require accurate
timing. The provider may, of course, synchronize such signals, and thus make it possible to add them to the
wrapper. Control of the clocks and asyncs will be the responsibility of the integrator, and thus should be welldocumented by the provider. Under certain conditions (described later), a wrapper may not require a TCB. In such
cases, the ports in Table 3 are needed.
Table 3: VSIA VC Ports for VCs With No TCB
Signal Name Required Description
WP_SI Yes Serial data input to wrapper register (n bits wide)
WP_SO Yes Serial data output from wrapper register (n bits wide)
WP_SHIFTMODE Yes Sets the wrapper cells into shift mode
WP_HOLD_IN Yes Sets the input wrapper cells in hold mode
WP_HOLD_OUT Yes Sets the output wrapper cells in hold mode
WP_BP Yes Bypasses the wrapper chains (required for a s ingle chain; can
be used if bypassing all wrapper chains)
WP_SINGLEWPMODE Yes Indicates that wrapper is hooked into a single chain
VC_SI Scan Scans inputs
VC_SO Scan Scans outputs
VC_BP Scan optional Bypasses the scan chains
Table 4: Normal VC Ports
Signal Name Description
Clocks Clocks used to operate the VC
Asyncs Asynchronous signals such as resets
Func_in Functional inputs to the VC that are not asynchronous
Func_out Functional outputs of the VC
Yes required for all VCs
Scan required for VCs with scan
8/2/2019 Vsia Test Access
21/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 11
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
4.1 Rules WP_SI and WP_SO of the same VC shall be the same width.
VC_SI and VC_SO of the same VC shall be the same width.
A special mode shall be provided to make all wrappers appear as a single chain. WP_SI[0] will be theinput of such a chain, and WP_SO[0] will be the output.
The special single chain wrapper shall be bypassed.
Scan chain inputs and outputs need not be wrapped.
The Test Control Block (TCB) shall not be bypassed.
VC_SHIFT shall be used to shift scan chains and wrapper registers.
TCLK shall control all memory elements of TCB.
The VC provider shall specify which clock will be used for the wrapper cells. If more than one clock is
used, the VC provider shall specify the sequence of the clocks. (TCLK is preferred.)
If the VC has async signals, sufficient information shall be provided on how and when to control them.
This shall be done for all required test modes, and not just for the VC internal test modes.
4.2 Recommendations Scan chains and wrapper chains should end with anti-skew memory elements (output on the negative
edge). The anti-skew memory element should be before the output pin of the wrapper (after the mux). This is
shown in Figure 9 as MAS.
TCLK should be separate from the system clock.
TCLK should be used for the wrapper register cells and bypass registers.
VCs should have no async signals (or at least keep them to a minimum) in the functional design.
All wrapper chains should be bypassed. Only the single chain mode has to be bypassed. The regular
wrapper chains should be bypassed as well.
Scan chains should be of reasonable lengths. If scan chains are used, chains should be less than 500 scan elements,to avoid having very long chains that could become difficult or impossible for the integrator to have reasonably
sized chains at the top level. The number of scan chains should not be more than 32, as a very large number of
scan chains out of a VC complicates matters for the integrator and introduces unnecessary anti-skew elements. If
there are more than 16K scan elements, the 32-chain limit should be maintained, and longer (but balanced) chainsshould be maintained. Note that this recommendation is intended for current designs, and although the multi-chainphilosophy is expected to hold for future designs, the numbers used here may not scale.
4.3 Permissions WP_SI (and thus WP_SO) of different VCs do not have to be the same width.
VC_SI (and thus VC_SO) of different VCs do not have to be the same width.
Although wrapper cells are not required for scan chains, they may be added to the design. However,proper operation should be maintained.
The integrator may mix wrapper registers and scan chains to optimize overall test times. (See the dotted
lines in Figure 9.)
Scan chains may have different lengths.
The VC provider may share functional memory elements for wrapper cells.
8/2/2019 Vsia Test Access
22/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 12
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
There are several control signals that are used to control the wrapper register and bypass register. These signals
shall be generated by the TCB. Since these signals are internal to the wrapped VC, names and structures forgenerating them will not be mandated. An example of these signals are summarized in Table 5. Two important
signals that will be derived from these signals are: SCAN_SHIFT = VC_SCANMODE & VC_SHIFT
WP_SHIFT = WP_SHIFTMODE & VC_SHIFT
4.4 Wrapper Register
As explained earlier, the wrapper register is used to gain access to the boundaries of the VC. Even though Figur e 1illustrates the wrapper as a single chain, this would generally not be practical because of the large bandwidth ofdata that is required to apply the tests to all the VCs. The bandwidth problem is addressed in Figure 2 b y using an
input bus called WP_SI and an output bus called WP_SO. The actual number of bits is left as a choice to the
designer of the wrapper.
The wrapper register consists of wrapper cells. There are two types of wrapper cells: input wrapper cells and
output wrapper cells.
The definition of the input wrapper cell is given in Table 6. An example implementation is shown in Figure 3.Note that while the example shows an edge-triggered memory element, using LSSD or any other clocking scheme
is permitted.
Table 5: Example of Internal Control Signals
Signal Name Required Description
WP_SHIFTMODE Yes Sets the wrapper cells into shift mode
WP_HOLD_IN Yes Sets the input wrapper cells in hold modeSignal Name Required Description
WP_HOLD_OUT Yes Sets the output wrapper cells in hold mode
WP_BP Yes Bypasses the wrapper chains
WP_SAFE SafeWp Activates safety in wrapper cells
WP_PI_ACTIVE Func Hooks up external sources to VC wrapper cells
VC_ BP Scan Bypasses scan chains; required for scan designs only
VC_SCANMODE Scan Scan_mode signal, used to fix any scan violations in the VC.Optional
VC_BISTMODE BIST Sets the VC into BIST mode and fixes any BIST violation
problems
Yes required for all VCs
Scan required for VCs with scan
BIST required for VCs with BIST
SafeWP required if any safety wrapper cells are used
8/2/2019 Vsia Test Access
23/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 13
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
Figure 3: Example of Input Wrapper Cell
Table 6 defines three basic operations:
Shifting: During this operation the wrapper cell is loaded with values to be applied in a VC internal test.This operation is also used for shifting out results captured from an interconnect test.
Applying: After values have been shifted in to the wrapper, they need to be applied to test the VC. During
the application, the shift operation is stopped, so the SO remains unchanged regardless of the number of
clock pulses applied. This allows holding values for multiple cycles when applying an internal test,circumventing any multiple clocking problems within VCs.
Capturing: In this mode, the input wrapper cell captures values at the input of the VC (such as theinterconnect). This mode is also used for normal mode.
The definition of the output wrapper cell is very similar to that of the input wrapper cell. The two kinds of cells
are identical except for the naming of the inputs and outputs . An example implementation is shown in Figure 4.Note that while the example shows an edge-triggered memory element, using LSSD or any other clocking scheme
is permitted.
*VCO = VC Output
Table 6: Input Wrapper Cell Definition
Control
InputsOutputs Comment
Control
InputsOutputs
WP_SHIFT WP_HOLD_IN SO VCI
1 d SI - Shifts wrappers
0 1 SO- SO Applies wrapper values
0 0 Func_In Func_In Normal Op / Capture input to VC
Table 7: Output Wrapper Cell Definition
Control
InputsOutputs Comment
Control
InputsOutputs
WP_SHIFT WP_HOLD_OUT SO Func_Out
1 d SI - Shifts wrappers
0 1 SO- SO Applies wrapper values
0 0 VCO VCO Normal Op / Capture VCO
F u n c _ i n
V C I n p u t
W P _ H O L D _ I NW P _ S H I F TS I
W P C L K S O
11
8/2/2019 Vsia Test Access
24/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 14
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
Figure 4: Example of Output Wrapper Cell
Table 7 defines three basic operations:
Shifting: During this operation the wrapper cell is loaded with values to be applied in an interconnecttest. This operation is also used for shifting out results captured from a VC internal test.
Applying: After values have been shifted in to the wrapper, they need to be applied to test the
interconnect. During the application, the shift operation is stopped, so that SO remains unchanged
regardless of the number of clock pulses applied. This allows holding values for multiple cycles whenapplying an interconnect test, circumventing any skew problems between VCs. Func_out has the value
of the wrapper cells.
Capturing: In this mode, the output wrapper cell captures values at the output of the VC. This mode is
also used for normal operation.
4.4.1 Rules
The input wrapper cell shall be defined as in Table 6.
The output wrapper cell shall be defined as in Table 7.
Figure 5 shows wrapper cells connected. In this figure, the wrapper cells on the left of the VC are input wrapper
cells and those on the right of the VC are output wrapper cells. While the figure shows the input wrappers
preceding the output wrappers, this is not an actual requirement. It is shown only for illustration.
Figure 5: Wrapper Cells in Action
V C O u t p u t
F u n c _ o u t
W P _ H O L D _ O U TW P _ S H I F TS I
W P _ C L K S O
11
Func_
out
Func_
in
VC
Output(VCO)
VCInput(VCI)
T C L K
W P _ S H I F T
W P _ H O L D _ I N W P _ H O L D _ O U T
W P _ S I W P _ S O
S I
S O
S O
S I
S I
S O
S O
8/2/2019 Vsia Test Access
25/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 15
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
4.4.2 Wrapper Cells With Protection
As the wrapper registers shift, random values are applied to VCI and Func_out. This could be a problem if the VCdoes not expect certain combinations of inputs, and such combinations could cause damage to the VC and the chip
overall. Another problem can occur while capturing interconnect tests in the input wrapper cells. If the VC is notprepared to handle arbitrary inputs, an interconnect test can cause damage to the VC and chip.
The first problem can be alleviated by filling in fixed values to the dont care outputs of the tables. The value
chosen will depend on the value that is safe for the VC. For example, the table below shows a wrapper cell whoseoutput is 0 when the wrapper register is shifting.
The second problem can be fixed with protection cells. Protection cells have a mode that prevents the output from
changing values. Table 8 and Table 9 s how input wrapper cells with 0-protection and 1-protection respectively.During an interconnect test, for example, WP_SAFE would be set to 1, so capturing the values in input wrappercells can cause no damage to the VC. Figure 6 shows example implementations. Note that, although the example
shows an edge-triggered memory element, using LSSD or any other clocking scheme is permitted
Table 8: Input Wrapper Cell With 0-Output During Shift
Control
InputsOutputs Comment
Control
InputsOutputs
WP_SHIFT WP_HOLD_IN SO VCI
1 d SI 0 Shifts wrappers
0 1 SO- SO Applies wrapper values
0 0 Func_In Func_In Normal Op / Capture input to VC
Table 9: Input Wrapper Cell Definition With 0-Protection
Control
InputsOutputs Comment
Control
InputsOutputs Comment
WP_SAFE WP_SHIFT WP_HOLD_IN SO VCI
1 1 d SI 0 Shifts wrappers
1 0 1 SO- 0
1 0 0 VCO 0 Captures input to VC
0 1 d SI - Shifts wrappers
0 0 1 SO- SO Applies wrapper values
0 0 0 Func_In Func_In Normal Op
8/2/2019 Vsia Test Access
26/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 16
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
Figure 6: Examples of Input Wrapper Cell With Protection
4.4.3 Permissions
To avoid undesired inputs to the VC, the wrapper may contain protection cells as defined in Tables 9 and 10.
Some VC s may not have any DFT structures and can only be tested using functional tests. Even VCs with DFT
structures may also require functional tests if the DFT structures do not provide adequate coverage. For such VCs,
a special wrapper may be used to allow direct access to the inputs of the wrappers. In essence, these cells have anadditional data input, which can be connected to the primary input of the chip (or whatever source is used to drive
the functional vectors). This input is referred to as a parallel input, because no shifting in the wrapper registerswill be performed during the application of such a test. Table 11 shows the definition of such a wrapper cell. Anexample of a circuit is shown in Figure 7.
Table 10: Input Wrapper Cell Definition With 1-Protection
Control
InputsOutputs Comment
Control
InputsOutputs Comment
WP_SAFE WP_SHIFT WP_HOLD_IN SO VCI
1 1 d SI 1 Shifts wrappers
1 0 1 SO- 1
1 0 0 Func_In 1 Captures input to VC
0 1 d SI - Shifts wrappers
0 0 1 SO- SO Applies wrapper
values
0 0 0 Func_In Func_In Normal Op
Func_
in
VCInput
WP_HOLD_IN
W P_ SH I FTSI
W P C L K SO
11
W P _ S A F E
& Func_
in
VCInput
WP_HOLD_IN
W P_ SH I FTSI
W P C L K SO
11
W P _ S A F E
+
0 - s a f e C e l l 1 - s a f e C e l l
8/2/2019 Vsia Test Access
27/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 17
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
Figure 7: Example of Wrapper With External Source
If a wrapper cell has external source as well as protection, the external source operation will have
precedence over protection. For protection to be active, a VC user must turn off external source operation
(WP_PI_ACTIVE = 0).
If a VC has bidirectional ports or tristated ports, a signal called GLOBAL_TRI_OFF will be made
available by the VC provider. When this signal is active, all tristate drivers out of the VC will be turnedoff. (See Figure 8.) The integrator will make sure that this signal is activated at the appropriate times.
It is recommended not to use any tristates or bidirectionals at the outputs of a VC.
Figure 8: Global Control of VC Tristate Outputs
Table 11: Input Wrapper Cell Definition With External Source
Inputs Outputs Comment Inputs Outputs Comment
WP_PI_ACTIVE WP_SHIFT WP_HOLD_I
N
SO
(TCLK^)
VCI
1 d d - WP_PI Applying externalinput
0 1 d SI - Shifts wrapper
0 0 1 SO- SO Applies wrappervalues
0 0 0 VCO VCO Normal Op
Fun
c_
in
VCInput
WP_HOLD_IN
W P_ SHI FTSI
W P C L K SO
11
W P_ PI _ ACT I VE
1-safe Cel l
1
Out Wrapper
Out Wrapper
In Wrapper
&V C
GLOBAL_TRI_OFF
8/2/2019 Vsia Test Access
28/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 18
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
4.5 Bypass Register
The bypass register is used to improve test time by reducing the number of clock cycles needed to get test vectors
through the wrapper registers and scan chains. Data is captured on the rising edge of TCLK, and made availableon the negative edge of TCLK of the next cycle to avoid clock-skew problems. This requirement can be achieved
using the circuit Figure 9. Since the scan chains and wrapper registers also require anti-skew elements, they can
share the anti-skew element with the bypass registers. This is shown in Figure 9.
Figure 9: Example Bypass Register with Anti-Skew Latch
4.6 Test Control Block
The test control block manages all the control signals used by the wrapper register cells and the bypass register.
It also manages control signals used for internal DFT structures such as scan or BIST. The TCB can be viewed as
an instruction register, as the values shifted into the TCB determine the test performed. Under certain conditions(discussed later in this section) the TCB may be not be needed. Even though we are not mandating a particularimplementation, an example implementation will be used in the following discussion, to help describe the
functionality of the TCB. All rules, recommendations, and permissions apply to all implementations and not justto the one discussed here.
In our example implementation, the TCB consists of a number of TCB cells. Each cell corresponds to one of the
control signals of the VC. Since the contents of the TCB are control signals, the TCB needs to have a shadow
register to prevent random perturbations on control signals. The number of cells in the TCB depend on the testneeds for the individual VC. The definition of the TCB cell is shown in Table 12. The table shows two control
signals, TC_SHIFT and TC_UPDATE. When TC_SHIFT is 1, the TCB shifts, and when TC_UPDATE is 1, TCBupdates the values that were shifted in, applying them to the internals of the VC. If both TC_UPDATE and
TC_SHIFT are 0, then the TCB goes in to a pause mode (as in the JTAG pause states). TC_SHIFT and
TC_UPDATE should not both be 1 at the same time.
Table 12: TCB Cell Definition
Control
InputsOutputs Comments
Control
InputsOutputs Comments
TC_RESET TC_SHIFT TC_UPDATE SO
(TCLK^)
DO
(TCLKv)
1 - - 0 0 Resets to functional mode
0 1 0 SI DO- TCB shifts new instructions
0 0 1 SO- SO- TCB updates instructions
0 0 0 SO- DO- TCB pauses
- 1 1 - - Not allowed
F F
V C _ S O
W P _ S OV C _ S I
W P _ S I
W P_C LK
W P _ T D I _ B Y P A S S
W P _ S I _ B Y P A S S
Wrapper Regs
Scan Cha ins
8/2/2019 Vsia Test Access
29/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 19
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
An implementation example of the TCB cell is shown in Figure 10. Here, two flip-flops are used to implement the
TCB cell definition. The upper flip-flip is used to shift in the values, and the lower one is used for the update. TheTCB cells are combined together as in Figure 11 to form the TCB. The general structure of the TCB is similar to
that of any shift register with an update signal. To load instructions (such as control signals), TC_SHIFT is set to1, and TC_UPDATE is set to 0. TCLK is pulsed as many times as needed to shift in the instruction. Once that iscompleted, TC_SHIFT is set to 0, and TC_UPDATE is set to 1. A single cycle of TCLK is applied. The VC is
now in the appropriate test mode. The AND gates in Figure 12 are included to control shift operations of the
wrapper register or the scan chains. As pointed out in the beginning of the document, VC_SHIFT is a dynamicinput signal. The TCB cell corresponding the AND gate will determine if that dynamic signal is activated or not.
In other words, the TCB controls the dynamic signals operation. Waveforms for extest instruction are shown in
Appendix A.
Figure 10: TCB Register Sample
Figure 11: TCB Cell Implementation
The circuit in Figure 11 shows the minimum requirements for the TCB. The TCB may also be used to capture
status values to be shifted out. If this feature is used, the status bits should be clearly defined. Also, the status bitshould not be expected until the test is completed. An example of where capture may be used is in BIST. A bit
may be captured to indicate the status of the BIST test. The result of the test is not needed until it is completed.The definition of the TCB cell with capture is shown in Table 13, the example circuit in Figure 12. The complete
circuit is shown in Figure 13. In addition to the operations described for the circuit in Figure 11, the circuit inFigure 13 has the capture feature. To capture status values, set TC_CAPTURE to 1 for one TCLK cycle, then setTC_CAPTURE to 0, and TC_SHIFT to 1. Apply as many TCLK cycles as needed.
V C _ S H I F T
T C _ S H I F T
T C _ S I
T C _ U P D A T E
T C _ R E S E T
T C _ S H I F T
S I
T C _ U P D A T E
D O
S O
T C L K
T C _ S H I F T
S I
T C _ U P D A T E
D O
S O
T C L K
T C _ S H I F T
S I
T C _ U P D A T E
D O
S O
T C L K
T C _ S H I F T
S I
T C _ U P D A T E
D O
S O
T C L K
T C _ C L K
T C _ S O
&&
F F1
F F
1
SO
D O
TC_SHIFT
T C _ U P D A T E T C_ R ES E T
TCLK
SI
8/2/2019 Vsia Test Access
30/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 20
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
Note : For TC_SHIFT, TC_UPDATE, and TC_CAPTURE, only one of these can be set to 1 at any one time.
Figure 12: TCB Cell With Capture Option
Figure 13: TCB Register With Capture Option
Table 13: TCB Cell Definition With Capture
Inputs Outputs Comment Inputs Outputs Comment Inputs
TC_RESET TC_SHIFT TC_UPDATE TC_CAPTURE SO
(TCLK^)
DO
(TCLKv)
1 - - - 0 0 Resets to functional mode
0 1 0 0 SI DO- TCB shifts new instruction
0 0 1 0 SO- SO- TCB updates instruction
0 0 0 1 DI DO- TCB captures statussignals
0 0 0 0 SO- DO- TCB pauses
F F1
F F
1
SO
D O
T C _ C A P T U R E
T C _ U P D A T E T C _ R E S E T
T C L K
D I
1
T C _ S H I F T
S I
T C _ C A P T U R E
T C _ S H I F T
T C _ S I
U P D A T E
T C _ R E S E T
S I
U P D A T E
DO
S O
T C L K
S I
U P D A T E
DO
S O
T C L K
S I
U P D A T E
DO
S O
T C L K
S I
U P D A T E
DO
S O
T C L K
T C _ C L K
T C _ S OS S SS C C C C
8/2/2019 Vsia Test Access
31/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 21
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
4.6.1 Rules TC_SHIFT and TC_UPDATE shall be treated as separate signals to allow for pausing.
An anti-skew memory element is required at the end of the TCB.
The anti-skew memory element should not be counted as part of the size of the TCB.
Reset should put the VC in normal operation (all TCB cells = 0).
Not more than one of TC_SHIFT, TC_UPDATE, and TC_CAPTURE should be active in the same cycle. TCLK will be used to operate the TCB.
A TCB is required if more than the minimum number of control bits are needed for the VC.
If a TCB is not used, the names given in Table 12 will be used. If a TCB is used, control signals in
Table 13 are internal to the VC, and thus names are not mandated (although it is recommended to use thesame names).
If a TCB is not used, the timing information of each of the control signals needs to be completely
specified. It will be left to the integrator to connect these control signals.
4.6.2 Note
The integrator for the TCB is optional in the very simple cases. However, if any complex structure is included(such as BIST and protection wrappers), then a TCB is required. Scan is an interesting special case. Even though
VC_SCANMODE will not be available for a TCB-free VC, scan can still operate using VC_SHIFT signal(required in any case, to control wrapper cells). The only catch is that the scan chains and wrapper cells will alwaysshift together.
4.6.3 Permissions The VC integrator may hook up TC_UPDATE to the inverse of TC_SHIFT if it is determined that no
pausing is necessary.
The capture of status bits in the TCB above is an optional feature.
Additional instructions and control bits may be added to implement additional test functions notdescribed in this document.
4.6.4 Recommendations
A VC should have a TCB. Avoid the use of TCB-free VCs.
The TCB cells should implement individual control bits. Decoding of control bits is allowed as long asthe result is deglitched.
TCLK should be separate from the system clock.
Avoid async signals (or keep them to a minimum) in the functional design.
8/2/2019 Vsia Test Access
32/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 22
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
8/2/2019 Vsia Test Access
33/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 23
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
5. Instructions
Section 4 describes the architecture for test access. Table 5 shows a summary of the control signals. There are
many ways to generate these control signals. The recommended approach is to assign each control bit to one of
the TCB cells. Even though this may result in more than a minimum number of TCB cells, it allows for maximumflexibility in control of the VC. In such an architecture, the values shifted into the TCB define an instruction that
sets the VC into the appropriate test mode. Several instructions are required, which correspond directly to the VC
requirements described in Section 3. Table 14 shows the TCB cell settings required for the different instructions.The rest of this section describes the different instructions in some detail.
5.1 Normal Operation InstructionIn normal operation, the VC operates in its functional mode. The instruction for normal operation is an all-0
instruction. This instruction can be activated by either shifting in all 0s into the TCB, or by setting TC_RESET to1. During normal operation, it is recommended that the wrappers and bypass registers hold their values, and that
TCLK is turned off.
5.2 Safe State (Isolation)
When this instruction is loaded, the VC should be in a safe state as it is not being tested. All flip-flops should haveknown states, and all busses should be conflict-free and not floating. Requirements for VC Testing (Section 3)describes safe state in more detail.
When in safe state, all bypass registers should be activated (WP_BP = 1 and VC_SO_BP = 1). This saves test time
for data that is flowing through the VC wrappers and chains. If protection wrapper cells are used, they should bein protection mode (WP_SAFE = 1).
5.3 External Test
External test is used to test the interconnect between VCs. This could be simple wires or UDL. We are reallytesting Func_in and Func_out in this test. For this test the following is required:
VC internals should be in a safe state.
VC_SO should be bypassed.
Table 14: Example of TCB Cell Assignments for Instructions
WP_SHIFT
MODE*
WP_HOLD_
IN*
WP_HOLD_
OUT*
WP_BP*
WP_SINGLE
WP
MODE*
WP_SAFE
WP_PI_ACTIVE
VC _BP VC_BIST_
MODE
VC_SCAN_
MODE
Normal 0 0 0 0 0 0 0 0 0 0
VC_EXT 1 0 1 0 0 1 0 1 0 0
EXTSinglewp
1 0 1 0 1 1 0 1 0 0
SCAN 1 1 0 0 0 1 0 0 0 1
Func X 0 0 0 0 X 1 0 0 0
BIST 1 1 1 0 0 1 0 0 1 1
Safe 0 0 X 1 0 1 0 1 0 0
*indicates required signals
8/2/2019 Vsia Test Access
34/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 24
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
WP_SO should not be bypassed.
VCs not involved in external test should be in safe state, and should be loaded with safe state instruction.
5.4 Internal Tests
Internal tests are tests for the VC itself. Multiple tests are permitted. During any internal test, all bypasses should
be disabled. Input wrapper cells are configured to drive the VC input. WP_SHIFTMODE should be set to 1.
VC_SHIFT determines whether the wrapper is shifting or holding.
5.4.1 Scan
For scan, VC_SCAN_MODE is set to 1, so that VC_SHIFT can be used to control the scan chains.
5.4.2 Iddq
VCs not under test should be in a low-power state. The pattern application depends on the type of patterns used
for Iddq testing. Thus, there is no specific instruction for Iddq in the specification.
5.4.3 Functional
Functional test is very important for legacy VCs that have no DFT structures. In functional test mode,
WP_PI_ACTIVE is set to 1 to allow direct access to all the VC inputs.
5.4.4 BIST
For BIST operation, VC_BIST_MODE should be set to 1. If multiple BIST modes are designed in the VC,
multiple bits may be used.
8/2/2019 Vsia Test Access
35/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 25
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
A. Appendix
A.1 Extest Example
In this appendix, a small example of application of extest operation is shown. The circuit contains two VCs, VC1and VC2. (Refer to Section A.1, Example Verilog Model soc.v, below.) The VCs have two inputs and twooutputs, so they have four wrapper cells each. The wrapper registers are hooked up as a single register betweenboth VCs. This is not necessarily the best way of doing it. The most effective application depends on the actual
design. The TCBs are hooked up in series to each other. The TCB consists of four bits in the order shown in Table
15. According to Table 14, the values in Table 15 are needed for extest.
The TCBs of both wrappers are also connected serially, so 0011 is shifted in serially (twice in a scan chain, thelast bit is shifted in first). In the waveform, this happens between times 25s and 175s. During that time, TC_SHIFT
is set high and VC_SHIFT is set low, making the TCB shift while the wrappers hold their values. After the TCB
shifting is complete, TC_UPDATE updates the TCB, and the scanning of the data begins. Here we only shift forfour cycles, to load up the first VC. VC_SHIFT is then turned off for one cycle, causing the second VC to capturethe functional input coming from the wrapper outputs of the first VC. The output is then shifted out. All the verilog
code is shown on the following pages, and the waveform is shown after that.
A.1.1 Example Verilog model soc.v
module soc (TC_RESET,VC_SHIFT,TC_SHIFT,TC_SI,TC_UPDATE,TCLK,TC_SO,
a,b,x,y,z,
WP_SI, WP_SO);
input TC_RESET,VC_SHIFT,TC_SHIFT,TC_SI,TC_UPDATE,TCLK; // inputs to TCB
output TC_SO; // outputs from TCB
// wrapper stuff
input WP_SI;
output WP_SO;
// SOC functional inputs
input a,b;
// SOC functional outputs
output x,y,z;
wrapped_vc VC1
(.TC_RESET(TC_RESET),.VC_SHIFT(VC_SHIFT),.TC_SHIFT(TC_SHIFT),
.TC_SI(TC_SI),.TC_UPDATE(TC_UPDATE),.TCLK(TCLK),.TC_SO(tc_so1),
.Func_in({a,b}), .Func_out({p,q}),
.WP_SI(WP_SI), .WP_SO(wp_so1));
Table 15:
Index in TCB Name Value
1 WP_SHIFTMODE 1
2 WP_HOLDOUT 1
3 WP_HOLDIN 0
4 WP_BP 0
8/2/2019 Vsia Test Access
36/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 26
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
wrapped_vc VC2
(.TC_RESET(TC_RESET),.VC_SHIFT(VC_SHIFT),.TC_SHIFT(TC_SHIFT),
.TC_SI(tc_so1),.TC_UPDATE(TC_UPDATE),.TCLK(TCLK),.TC_SO(TC_SO),
.Func_in({p,q}), .Func_out({y,z}),
.WP_SI(wp_so1), .WP_SO(WP_SO));
endmodule
module antiskew (SI, clk, SO);
input SI, clk;
output SO;
reg SO;
always @(negedge clk) begin
SO = SI;
end
endmodule
module bypass_reg (WP_SI,WP_CLK, VC_WP_BYPASS);
input WP_SI,WP_CLK;
output VC_WP_BYPASS;
reg VC_WP_BYPASS;
always @(posedge WP_CLK) begin
VC_WP_BYPASS = WP_SI;
end
endmodule
module mas (WP_BP, VC_WP_BYPASS, WP_SO, WP_SO_beforeskew, WP_CLK);
input WP_BP, VC_WP_BYPASS, WP_SO_beforeskew, WP_CLK;
output WP_SO;
wire choice;
reg WP_SO;
assign choice = (WP_BP) ? VC_WP_BYPASS : WP_SO_beforeskew ;
always @(negedge WP_CLK) begin
WP_SO = choice;
end
endmodule
module oscillator (CLK);
output CLK;
reg CLK;
initial begin
$monitor ("%f %d\n",$time, CLK);
8/2/2019 Vsia Test Access
37/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 27
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
CLK = 0;
end
always begin
#10 CLK = ~CLK;
end
endmodule
module tcb(TC_RESET,VC_SHIFT,TC_SHIFT,TC_SI,TC_UPDATE,TCLK,TC_SO,
WP_BP, WP_HOLD_IN, WP_HOLD_OUT, WP_SHIFT);
input TC_RESET,VC_SHIFT,TC_SHIFT,TC_SI,TC_UPDATE,TCLK;
output TC_SO, WP_BP, WP_HOLD_IN, WP_HOLD_OUT, WP_SHIFT;
tcb_cell wp_shiftmode
(.TC_RESET(TC_RESET),.TC_SHIFT(TC_SHIFT),.TC_UPDATE(TC_UPDATE),.TCLK(TCLK),
.SI(TC_SI), .SO(so1), .DO(WP_SHIFTMODE));
tcb_cell wp_hold_out
(.TC_RESET(TC_RESET),.TC_SHIFT(TC_SHIFT),.TC_UPDATE(TC_UPDATE),.TCLK(TCLK),
.SI(so1), .SO(so2), .DO(WP_HOLD_OUT));
tcb_cell wp_hold_in
(.TC_RESET(TC_RESET),.TC_SHIFT(TC_SHIFT),.TC_UPDATE(TC_UPDATE),.TCLK(TCLK),
.SI(so2), .SO(so3), .DO(WP_HOLD_IN));
tcb_cell wp_bp
(.TC_RESET(TC_RESET),.TC_SHIFT(TC_SHIFT),.TC_UPDATE(TC_UPDATE),.TCLK(TCLK),
.SI(so3), .SO(so4), .DO(WP_BP));
and wp_shift(WP_SHIFT, WP_SHIFTMODE, VC_SHIFT);
antiskew tc_so (.SI(so4), .clk(TCLK), .SO(TC_SO));
endmodule
module wrapped_vc (TC_RESET,VC_SHIFT,TC_SHIFT,TC_SI,TC_UPDATE,TCLK,TC_SO,
Func_in, Func_out, WP_SI, WP_SO);
input TC_RESET,VC_SHIFT,TC_SHIFT,TC_SI,TC_UPDATE,TCLK; // inputs to TCB
output TC_SO; // outputs from TCB
// wrapper stuff
input WP_SI;
output WP_SO;
// input wrappers
input [1:0] Func_in;
// output wrappers
output [1:0] Func_out;
wire [1:0] VCI;
wire [1:0] VCO;
wrapper WRAPPER
(.TC_RESET(TC_RESET),.VC_SHIFT(VC_SHIFT),.TC_SHIFT(TC_SHIFT),
.TC_SI(TC_SI),.TC_UPDATE(TC_UPDATE),.TCLK(TCLK),.TC_SO(TC_SO),
8/2/2019 Vsia Test Access
38/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 28
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
.Func_in(Func_in), .Func_out(Func_out),
.WP_SI(WP_SI), .WP_SO(WP_SO), .VCI(VCI), .VCO(VCO));
// Instantiation of VC should go here
endmodule
module wrapper (TC_RESET,VC_SHIFT,TC_SHIFT,TC_SI,TC_UPDATE,TCLK,TC_SO,
Func_in, Func_out,VCI, VCO, WP_SI, WP_SO);
input TC_RESET,VC_SHIFT,TC_SHIFT,TC_SI,TC_UPDATE,TCLK; // inputs to TCB
output TC_SO; // outputs from TCB
// wrapper stuff
input WP_SI;
output WP_SO;
// input wrappers
input [1:0] Func_in;
output [1:0] VCI;
// output wrappers
input [1:0] VCO;output [1:0] Func_out;
tcb TCB (.TC_RESET(TC_RESET),.VC_SHIFT(VC_SHIFT),.TC_SHIFT(TC_SHIFT),
.TC_SI(TC_SI),.TC_UPDATE(TC_UPDATE),.TCLK(TCLK),.TC_SO(TC_SO),
.WP_BP(WP_BP), .WP_HOLD_IN(WP_HOLD_IN), .WP_HOLD_OUT(WP_HOLD_OUT),
.WP_SHIFT(WP_SHIFT));
wrapper_reg WRAPPER_REG
(.WP_CLK(TCLK),.WP_SHIFT(WP_SHIFT),.WP_HOLD_IN(WP_HOLD_IN),.WP_HOLD_OUT(WP_
HOLD_OUT),.Func_in(Func_in), .Func_out(Func_out), .VCI(VCI),
.VCO(VCO),
.WP_SI(WP_SI), .WP_SO_beforeskew(WP_SO_beforeskew));
bypass_reg bypass (.WP_SI(WP_SI), .WP_CLK(TCLK),
.VC_WP_BYPASS(VC_WP_BYPASS));
mas MAS (.WP_BP(WP_BP), .VC_WP_BYPASS(VC_WP_BYPASS), .WP_SO(WP_SO),
.WP_SO_beforeskew(WP_SO_beforeskew),.WP_CLK(TCLK));
endmodule
module wrapper_reg (WP_CLK,WP_SHIFT,WP_HOLD_IN,WP_HOLD_OUT,
Func_in, Func_out, VCI, VCO, WP_SI, WP_SO_beforeskew);
input WP_CLK,WP_SHIFT,WP_HOLD_IN,WP_HOLD_OUT, WP_SI;
output WP_SO_beforeskew;
// input wrappers
input [1:0] Func_in;
output [1:0] VCI;
// output wrappers
8/2/2019 Vsia Test Access
39/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 29
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
input [1:0] VCO;
output [1:0] Func_out;
wp_cell_in i1 (.Func_in(Func_in[0]), .WP_SHIFT(WP_SHIFT), .WP_CLK(WP_CLK),
.WP_HOLD_IN(WP_HOLD_IN), .VCI(VCI[0]),
.SI(WP_SI), .SO(so1));
wp_cell_in i2 (.Func_in(Func_in[1]), .WP_SHIFT(WP_SHIFT), .WP_CLK(WP_CLK),
.WP_HOLD_IN(WP_HOLD_IN), .VCI(VCI[1]),
.SI(so1), .SO(so2));
wp_cell_out o1 (.Func_out(Func_out[0]), .WP_SHIFT(WP_SHIFT),
.WP_CLK(WP_CLK), .WP_HOLD_OUT(WP_HOLD_OUT), .VCO(VCO[0]),
.SI(so2), .SO(so3));
wp_cell_out o2 (.Func_out(Func_out[1]), .WP_SHIFT(WP_SHIFT),
.WP_CLK(WP_CLK), .WP_HOLD_OUT(WP_HOLD_OUT), .VCO(VCO[1]),
.SI(so3), .SO(WP_SO_beforeskew));
endmodule
module tcb_cell(TC_RESET, TC_SHIFT, TC_UPDATE, TCLK, SI, SO, DO);
input TC_RESET, TC_SHIFT, TC_UPDATE, TCLK, SI;
output SO, DO;
reg SO;
reg DO;
always @(TCLK) begin
if (TC_RESET)
SO = 0;
else begin
if (TCLK === 1'b1) begin
if (TC_SHIFT)SO = SI;
else
SO = SO;
end else begin
if (TC_UPDATE)
DO = SO;
else
DO = DO;
end
end
end
endmodulemodule wp_cell_in (Func_in,WP_SHIFT,SI, WP_HOLD_IN, WP_CLK, SO,VCI);
input Func_in,WP_SHIFT,SI, WP_HOLD_IN, WP_CLK;
output SO,VCI;
reg SO;
assign VCI = (WP_HOLD_IN) ? SO : Func_in ;
8/2/2019 Vsia Test Access
40/41
VSI Alliance (TST 2 1.0)
Copyright 2000 - 2001 by the VSI Alliance, Inc. 30
All Rights Reserved. VSIA CONFIDENTIAL LICENSED DOCUMENT
always @(posedge WP_CLK) begin
if(WP_SHIFT)
SO = SI;
else
if (WP_HOLD_IN == 1'b1)
SO = SO;
else
SO = Func_in;
end
endmodule
module wp_cell_out (Func_out,WP_SHIFT,SI, WP_HOLD_OUT, WP_CLK, SO,VCO);
input VCO,WP_SHIFT,SI, WP_HOLD_OUT, WP_CLK;
output SO,Func_out;
reg SO;
assign Func_out = (WP_HOLD_OUT) ? SO : VCO;
always @(posedge WP_CLK) beginif(WP_SHIFT)
SO = SI;
else
if (WP_HOLD_OUT == 1'b1)
SO = SO;
else
SO = VCO;
end
endmodule
8/2/2019 Vsia Test Access
41/41
VSI Alliance (TST 2 1.0)
A.1.2 Waveforms