CONNECT NEWSLETTER

Issue Home

 

asset-intertech.com

ScanWorks™

Services

Customer Support

ASSET University

Success Stories

Global Contacts

 

TECH TIP

Sophisticated device modeling is key to optimizing automatic test generation
By Adam Ley
Chief Technologist

How a boundary-scan test-generation engine handles the non-boundary-scan devices in a design is critical to the time it takes to develop a test (time-to-test), the amount of coverage the test will achieve, and the safety of the board. Over the years, ScanWorks’ test-generation engine has been improved repeatedly with an eye toward reducing time-to-test with optimal coverage and impeccable board safety. The way ScanWorks handles cluster or non-boundary-scan device models plays a major role in this.

A critical goal of ScanWorks is to require as little manual involvement as possible while generating tests with an acceptable level of coverage. After a test has been generated, the user can decide how much effort should be expended to improve the test coverage or modify other aspects of the test’s operation.

ScanWorks addresses this goal from the outset – the building of the design description. During this preliminary step, many of the cluster model and BSDL (Boundary Scan Description Language) files can be accessed and automatically downloaded from the device libraries on ScanWorks’ maintenance benefit web pages. In addition, in-house model libraries can be automatically incorporated into the test. It is always a good practice for the test engineer or technician to make sure that all of the passive devices, such as inductors, capacitors, resistors and others have been identified and their models included in the design. As the test developer is reviewing the design, he or she should note other types of cluster devices but need not go to the trouble of modeling them during the initial design description. Should additional coverage be needed later, the developer will already know which device types to consider modeling in order to achieve greater coverage.

ScanWorks’ First Pass

Once the test engineer or technician is ready for ScanWorks to take its first pass at generating a test, the test-generation engine will begin its analysis of the design. ScanWorks examines the cluster models for all non-boundary-scan devices to determine each one’s operating modes. For example, a typical “245” eight-bit transceiver would have three modes, isolation where no data is being transferred because all outputs have been turned off, A-to-B mode where A pins are enabled as inputs and B pins are enabled as outputs, and B-to-A mode where B pins are enabled as inputs and A pins are enabled as outputs.

Subsequently, the ScanWorks test generator begins to build a test by selecting each device’s operating mode so that, first, the safety of the printed circuit board will be ensured and, second, test coverage for shorts will be maximized. To do this, ScanWorks must examine each device within the context of the design.

For example, if ScanWorks has access to a non-boundary-scan cluster device from one direction but does not have enough information about the device and the design to know what is beyond the device, then it cannot safely drive test patterns beyond the device. To do so would be to jeopardize the safety of the board by setting up a situation where bus contention might arise. In this case, boundary-scan test coverage would extend to the cluster device that is accessible from a boundary-scan device but not beyond it. Test coverage can be extended later, at the discretion of the test engineer or technician who is developing the test.

This is a complex process because the operating mode selected for each device has a ripple effect on other devices in the design. The algorithms used by ScanWorks’ test-generation engine are continually fine-tuned to optimize this process. Once operating modes are selected for all devices, the test vectors for shorts are generated.

Seeking Opens

Following this first pass, the test generator automatically performs additional passes which seek to identify the operating modes that devices can be placed in so opens can be tested where this test coverage was not gained during the first pass. Once this information has been processed, additional test vectors for opens are generated and included in the test set.

Of course, during any test-generation pass, the test generator identifies any cluster device operating mode that simply must be taken into account. These types of modes are often hard-wired into the design. When the test generator encounters these conditions, it will constrain the test so that the hard-wired operating modes are maintained.

Iterative Passes

After the initial test generation, the test developer may continue to invoke the ScanWorks test generator to make additional passes to further maximize test coverage. At this point, the engineer or technician who is developing the test can decide to provide additional information to ScanWorks, such as cluster models for those devices that have not been modeled. This added information is used by the test generator in these successive passes to obtain higher and higher levels of test coverage.

This type of iterative process gives the test developer the option to invest his or her development time where it will have the biggest payoff in terms of test coverage or other test performance criteria. Quite often, ScanWorks will generate a test with the level of coverage required by the developer. Later, when the developer has time to devote to it, the test can be passed through the ScanWorks test-generation engine again with additional modeling information and the test coverage can be increased.

Throughout this process, ScanWorks continues to evaluate the operating modes selected for cluster devices in light of any possible bus conflicts which may ensue. Should the developer manually dictate an operating mode that might establish a hazardous bus contention, ScanWorks would notify the user of the possibility for board damage. At that point, the developer has the option of continuing with the operating mode originally selected or revising the mode to avoid the possibility of bus contention.

Optimizing Automatic Test Generation

There are many facets to automatic test generation, including time-to-test, test coverage, board safety and the requirements for manual developer involvement. Of course, the most effective test-generation engine simultaneously optimizes all of these factors to provide the best balance for the inevitable tradeoffs that arise. For example, a test with high coverage might endanger the safety of the board. The algorithms of ScanWorks’ test-generation engine provide an efficient way to quickly generate high-coverage and safe tests while giving test developers the information they need to further refine the tests generated and decide how best to invest their time.