EDN logo


Design Feature: June 8, 1995

To use BSDL successfully, validate device descriptions carefully

Jeff Sherman,
Texas Instruments

IEEE-1149.1 boundary scan can greatly help test developers, but the consequences of inaccurate device descriptions are serious. Although BSDL provides a standard way of describing devices, you can't escape the need to thoroughly validate your BSDL files.

Boundary scan is gaining acceptance as designers better understand its benefits and implementation. Tools for automatic test-pattern generation (ATPG) and design simulation require descriptions of devices' boundary-scan implementations. Now, the IEEE-1149.1 boundary-scan standard not only defines a protocol and a device architecture, but also defines a boundary-scan description language (BSDL). Through BSDL, you can tell simulators and ATPG tools how a device implements boundary scan. But, to use BSDL, you may find it useful to learn how to develop BSDL files and how to validate their accuracy. You should also understand why validation is important.

Because a BSDL file forms the basis for testing an IC, a board, or a system, the file must accurately describe the design. Even a slight error, such as an incorrect disable value for an output cell, can give inaccurate results or even damage the device. By verifying a BSDL file, you help to prevent device damage, increase your testing confidence, ensure device compliance with IEEE 1149.1, deliver quality products, and meet customer expectations.

Generating a BSDL file

Familiarity with BSDL is a prerequisite for creating BSDL files. (A list of BSDL books appears at the end of the article.) To create a BSDL file, you can use one of four methods:

Each method offers advantages and disadvantages. For example, a BSDL editor can construct a syntactically correct BSDL description that does not match the device. A synthesis tool can construct a correct BSDL description that matches the device, but the device may not conform to the IEEE 1149.1 standard. Automatic analysis can create a correct BSDL description that matches the device but fails to describe extended features or complex cell designs.

Before creating a BSDL file using either of the first two methods, you must gather all relevant design information, including the test-access port (TAP) design, boundary-register cell ordering, cell-to-pin mapping, lengths of internal scan chains, and cell designs. Because of difficulties in obtaining or interpreting the cell's design, determining the boundary cell's type is the most difficult part of creating a BSDL file. BSDL offers eight predefined cell types, BC_0 through BC_7. Usually a cell fits into one of these categories. If it doesn't, the standard lets you define a unique cell type. For example, the bidirectional cells of a recent ASIC always capture data from their functional pins. The ASIC designers created a custom cell type because none of the predefined cell types fits this design.


Validation flow

thumbnail After you create the BSDL file, you need to generate validation vectors for the device. The process begins with generating test vectors (Fig 1). Our evaluation of the available tools shows that no single tool generates a comprehensive set of vectors. For example, Tapdance from AT&T is good at testing compliance issues, and HP's Boundary-SCAN (Bscan) generates patterns that are good for testing cell types. You obtain a higher level of boundary-scan fault coverage if you use several vector sets for validation, rather than just one.

After you've generated the vector sets, you can use them in device simulation or directly apply them to a device. Test early and often. Develop the BSDL description concurrently with the IC design, and run the test vectors on the device model. After fabricating a device, rerun the vectors to detect timing or synthesis errors. Run the tests for each type of package in which you mount the device and for any later revisions.

thumbnailFig 2 shows the flow of vectors during a device test. Step 1 involves translating the original ATPG vector formats into a common format. TI supports the Serial Vector Format (SVF) as a common exchange format between test tools and testers. In step 2, you use the Asset tool to compile and apply the SVF file. The tool saves the tester's response data in a binary format that is tens of thousands of vectors long and is difficult to analyze. Step 3 breaks down the response data and reduces it to a series of scan chains to create a "scan-view" file. The scan-view file contains the functional pin values generated during the capture and update states, a record of all responses that failed to agree with the predicted values, and other relevant data. The scan-view file lets you relate the condensed results to the device pins and scan-register values.

comparesTable 1 parallel vector sets and shows the reduction resulting from converting the tester response data into the scan-view format. The example in Table 1 shows vectors for the TMS320C50 DSP device. Compared with Tapdance, Bscan generates about four times as many vectors because it tests each I/O pin independently. Tapdance tests inputs and outputs as groups. Because the scan-view files are small compared with the original ATPG files, they simplify interpreting the response data.

ATPG tools generate go/no-go vectors that can't isolate faults. Such vectors make identifying single faults easy but make analyzing multiple faults difficult. You can usually isolate a fault by analyzing the device's scan-view file (Fig 2) or by extracting the failing vectors and running them as a smaller test. During analysis, don't assume that all possible errors lie in the BSDL file and the device. The vectors, fixture, and tester can also contain errors. You need to use your detective skills for the final analysis. If you conclude that a fault lies in the BSDL file, you must determine how to modify the file so it correctly describes the device. Then, the validation cycle starts over and repeats until the vectors pass.


Parallel vs serial vectors

To validate a BSDL file, you can use vectors in two formats, serial and parallel. The serial format defines a device as a scannable part with input and output pins. Serial vectors are compact and check pin functions, but they assume that the scan ring is working. The vectors can't detect IEEE-1149.1 violations.

The parallel format defines a device as having only input and output pins. A scan applies a series of vectors to the scan pins and manipulates the I/O pins when necessary. Parallel vectors do not assume the scan ring is working, and they can detect IEEE-1149.1 violations. Tapdance and Bscan generate parallel vectors that detect all types of boundary-scan errors. Both packages also generate large stimulus files. For example, performing a single data-register scan of a device with 86 cells (starting and stopping in the idle-TAP state) takes 182 parallel vectors, not counting overscanning or pause states.

Because you perform BSDL validation to detect all boundary-scan design errors, you need parallel vectors for testing. This requirement creates a data-management issue: The vector sets for large processors can contain between 30,000 and 200,000 vectors and can generate stimulus files of several hundred megabytes.

BSDL anatomy

Entity description. The entity statement names an entity, such as the device (for example, SN74BCTXXX).

Generic parameter. A generic parameter can come from outside the entity, or it can assume a default value, such as a package type (for example, NT).

Logical-port description. The port description gives logical names to the I/O pins (system and TAP pins) and denotes their nature: input, output, bidirectional, and so on.

Use statement. The use statement refers to external definitions found in packages and package bodies.

Pin mapping. The pin mapping provides a mapping of logical signals to the physical pins of a particular device package.

Scan-port identification. The scan-port identification statements define the device's test-access port (TAP).

Instruction-register description. The instruction-register description identifies the device-dependent characteristics of the instruction register.

Register-access description. The register access defines which register a test places between test-data input and test-data output.

Boundary-register description. The boundary-register description contains a list of boundary-scan cells, along with information regarding the cell type and associated control.


Possible errors

The vectors that ATPG tools generate check only for BSDL-file and IEEE-1149.1-compliance errors. Because BSDL describes only the length of internal scan paths, testing such paths requires manual pattern generation.

BSDL errors fall into three categories: BSDL-syntax errors, mismatches between the BSDL description and the device, and IEEE-1149.1-compliance errors. Table 2 lists some of the tests you must perform for each category.

BSDL-generation packages usually detect BSDL syntax errors. Only text editors fail to catch syntax errors. If you use a text editor, you can use a BSDL-syntax checker to detect the syntax errors you accidentally introduce.

You cause mismatches between the BSDL description and the device by supplying inaccurate information about the device. Synthesis and automatic-analysis methods generate correct BSDL by construction. BSDL that you generate using text or BSDL editors requires validation to detect mismatches.

None of the generation methods detects IEEE-1149.1-compliance errors. Therefore, you must perform validation using parallel vectors. Only parallel vectors individually control the signals that allow detection of edge changes and pin values in all TAP states. Because of the subtleties of designing IEEE-1149.1-compliant devices, you should use simulation validation for early detection of IEEE-1149.1-compliance errors.

The BSDL-validation flow described here works well, but you can improve it by having a single ATPG tool that generates go/no-go vectors and provides diagnostic capabilities. An interactive or batch diagnostic tool that uses a simple macro script is ideal because it allows custom test scenarios. However, because of the multitude of possible faults, the best diagnostic tool is an intelligent human. Finally, remember that BSDL validation is much more than a means of satisfying a device's end user; it is a valuable design-verification tool.


jeff sherman

Jeff Sherman is a member of the Group Technical Staff of the Test Technology Center at Texas Instruments' Semiconductor Division in Plano, TX. He has worked at TI for 15 years. His job entails defining and implementing software and hardware tools that other TI groups use for BSDL validation. Sherman holds a BSET degree from Northern Michigan University in Marquette, MI. He is a member of the IEEE and the American Society of Test Engineers.


References

1. "Boundary-Scan Description Language" (Supplement (B)), IEEE Standard 1149.1-1990, IEEE, New York, NY, 1993.

2. Parker, Kenneth P, The Boundary-Scan Handbook, Kluwer Academic Publishers, Norwell, MA, 1993.

3. HP Boundary-Scan Tutorial and BSDL Reference Guide, Hewlett-Packard Co, Palo Alto, CA, 1992.

4. Bleeker, Harry, P van den Eijnden, and F de Jong, Boundary-Scan Test: A Practical Approach, Kluwer Academic Publishers, Norwell, MA, 1993.

5. IEEE-1149.1 Testability Primer, Texas Instruments Inc, Dallas, TX, 1994.


Table 1 -- TMS320C50 DSP-validation pattern sizes
TapdanceBscan
Number of vectors10,21042,163
ATPG-file size1393 kbytes3836 kbytes
Scan-view-file size51 kbytes121 kbytes


Table 2 -- Some validation tests
BSDL-syntax testsBSDL-matches-device tests1149.1-compliance tests
  • Validate that syntax is correct
  • Validate existence of required statements
  • Validate pin mapping; check for duplicate or missing signals
  • Validate that control cells exist and are correct
  • Validate IDCODE capture value
  • Validate instgrunction-register capture value
  • Validate all data-register lengths
  • Validate instruction-to-register mapping
  • Validate that disable value places three-state devices in Hi-Z state
  • Validate control-cell mapping
  • Validate signal direction
  • Validate that TDI samples on the rising edge of TCK
  • Validate that TDO changes on the falling edge of TCK
  • Validate that holding TMS high for five clocks resets the device
  • Validate all TAP states
  • Validate that the TRST signal works
  • Validate that capture occurs on the rising edge of TCK
  • Validate that update occurs on the falling edge of TCK
  • Validate that TMS and TDI float to logic one in the Hi-Z state


History of BSDL

thumbnailThe IEEE approved the IEEE-1149.1 "Test Access Port and Boundary-Scan Architecture" standard in 1990. As more people became aware of and used the standard, they recognized the need for a standardized method of describing IEEE-1149.1-compatible devices. The IEEE-1149.1 working group established a subcommittee to develop a device-description language to address this need.

The subcommittee has since developed Supplement B, "Boundary-Scan Description Language"(BSDL), to the IEEE-1149.1 standard. BSDL, a subset of VHDL, describes how a device implements IEEE-1149.1 and how the device operates. A BSDL file captures the essential features of any IEEE-1149.1 implementation. fig A


| EDN Access | feedback | subscribe to EDN! |
| design features | design ideas | columnist |


Copyright © 1995 EDN Magazine. EDN is a registered trademark of Reed Properties Inc, used under license.