How to Increase Boundary Scan Test Coverage

Image of CEO of XJTAG Simon Payne Simon Payne, CEO, XJTAG |  Subscribe to LinkedIn newsletter

Last week, we looked at how much of a PCB Boundary Scan can potentially test.

The answer can be surprisingly large.

A single processor, FPGA or SoC may provide access to memories, peripherals, interfaces and other circuitry far beyond the JTAG chain itself.

But the amount of useful test coverage you achieve isn’t determined by the semiconductor devices alone.

Many of the decisions made during schematic design can significantly increase how much of the finished board can ultimately be tested.

And in many cases, relatively small design choices can make a surprisingly large difference.

Start with the Boundary Scan Capability You Already Have

The first step is to understand the Boundary Scan capability provided by the major semiconductor devices in the design.

Processors, FPGAs, SoCs, CPLDs and many other devices may already provide control and observation of a large number of their digital pins.

Those pins effectively become potential test access points into the PCB.

Rather than simply asking:

“Which devices support JTAG?”

it is more useful to ask:

“What parts of the board can I reach through those devices?”

That shift in thinking is important because the useful reach of Boundary Scan can extend considerably beyond the devices in the JTAG chain.

Maximise Control and Observation

At the heart of structural testing are two simple capabilities:

Control can a signal be driven into a known state?

Observation can the resulting state be measured somewhere else?

The more opportunities a design provides for both, the greater the potential test coverage.

A connection between two Boundary Scan devices is an obvious example. One device may drive the signal while another observes it.

But the same principle can also extend into non-JTAG circuitry.

A Boundary Scan-enabled FPGA, for example, may provide the control signals needed to interact with a memory or peripheral, allowing a much larger section of the design to be tested.

Thinking about where signals can be controlled and observed during schematic design can therefore have a significant impact later.

Make Mode Pins Work for You

Configuration, boot and mode-selection pins are often treated as something that only needs to be correct for normal operation.

But providing some flexibility around these signals can considerably improve testability.

A device may need to be placed into a particular operating mode before an interface can be exercised.

If the required mode is permanently hard-wired, the options available during bring-up and test may be limited.

Providing resistor options or other suitable configuration choices, such as switches or off-board access to such signals, can allow engineers to select alternative modes when required.

These are often very inexpensive additions during design.

Once the PCB has been manufactured, however, the same flexibility can be difficult

to add.

Keep Resets and Enables Accessible

Resets and enables can have a disproportionate effect on test coverage.

Imagine an FPGA provides excellent Boundary Scan access to a peripheral.

If that peripheral is permanently held in reset until application software releases it, much of that potential test capability may be unavailable before the application runs.

Where appropriate, providing a means of controlling important resets and enable signals through accessible circuitry can make more of the board testable independently of the application.

The same applies to:

  • Buffers
  • Multiplexers
  • Level translators
  • Peripheral enables

Making these signals controllable can open test paths into much larger sections of the PCB.

When a watchdog circuit is present also make sure that it can be completely disabled to avoid problems with unexpected resets whilst running tests.

Think About Power Domains

Designs frequently contain multiple voltage rails and independently controlled power domains.

With a little planning, these don’t need to become barriers to testing.

Consider which devices need to be powered for a particular test and how those power domains are enabled.

Where level translators or isolation devices sit between domains, consider what state they will occupy during Boundary Scan testing and whether the relevant signals can still propagate.

The objective isn’t necessarily to power the entire product for every test.

In some cases, being able to deliberately bring up individual sections of the board can actually make testing more controlled and informative.

Design the JTAG Chain for the Product

The structure of the JTAG chain itself deserves consideration.

On a simple board, placing all Boundary Scan devices in a single chain may be entirely appropriate.

On a more complex system, several chains may offer advantages.

Separating devices can provide greater flexibility when different parts of the board are powered independently, when devices are optional, or when different areas of the product need to be accessed separately.

There is no universal JTAG architecture that suits every design.

The important thing is to make the decision deliberately, based on how the board will be developed, programmed, tested, manufactured and supported.

Use Boundary Scan Devices as Gateways

One of the most effective ways of increasing coverage is to stop thinking of Boundary Scan devices as the only things being tested.

Instead, think of them as gateways into the surrounding circuitry.

If an FPGA is connected to a memory, Boundary Scan access through the FPGA may allow that memory to be exercised.

If it connects to an ADC, it may be possible to read analogue measurements.

If it controls a DAC, known output values may be generated.

If it connects to an Ethernet PHY, the device may potentially be configured and its behaviour checked.

The Boundary Scan device provides the access.

The surrounding circuitry provides additional opportunities for testing.

This is how a relatively small number of JTAG-enabled devices can potentially provide visibility across a much larger proportion of the PCB.

Combine Boundary Scan with Other Test Methods

Increasing test coverage doesn’t mean trying to make Boundary Scan test absolutely everything.

Some parts of a design are naturally better suited to functional testing, measurement equipment or other test techniques.

The stronger approach is to understand what Boundary Scan can prove and use complementary methods for the remaining areas.

Boundary Scan might establish confidence in the underlying PCB connectivity.

Functional software can then prove that the completed system behaves correctly.

Oscilloscopes and other instrumentation can investigate areas where electrical measurements are required.

Each method contributes different information.

Together, they provide much greater confidence in the finished hardware.

Analyse Coverage Before the PCB Is Built

Perhaps the greatest opportunity to improve Boundary Scan coverage exists before layout is complete.

If testability is considered while the schematic is still being developed, engineers can identify areas where small changes could provide considerably greater access.

That might mean:

  • Making a reset controllable
  • Providing access to a mode pin or an important control signal
  • Changing the way a buffer is enabled
  • Reconsidering the JTAG chain architecture
  • Selecting a device with better Boundary Scan support

At this stage, these changes may be trivial.

After manufacture, they may require modifications or another PCB revision.

Designing for Greater Confidence

Throughout this series, we’ve repeatedly returned to the idea of building confidence in the hardware.

Increasing Boundary Scan coverage helps engineers establish that confidence across a greater proportion of the board.

More accessible signals mean more connections can be verified.

More controllable devices mean more circuitry can be exercised.

And greater coverage means fewer areas of uncertainty when the first prototype arrives.

Good testability doesn’t necessarily require major changes to the design.

Often, it simply requires asking the right questions early enough.

Closing Thought

The Boundary Scan capability inside your semiconductor devices is the starting point.

The PCB design determines how far that capability can reach.

By considering control, observation, mode selection, resets, power domains and JTAG architecture during design, engineers can significantly increase the amount of hardware that can be tested.

And the best time to create that additional visibility isn’t when a board has failed.

It’s while the schematic is still open in front of you.

Don’t Hand the Test Team a Finished Problem

It is easy to think of testing as something that happens after the hardware design is complete.

But by then, many of the decisions that determine what can and cannot be tested have already been made.

If test engineers are brought into the conversation earlier, relatively small design changes can provide significantly greater control, observation and diagnostic access.

That helps during the first board bring-up and gives the test team far more freedom when developing manufacturing tests later.

Rather than handing test engineers a finished board and asking them to find a way to test it, give them the access they need while there is still time to design it in.

That means thinking about testability as part o f the design process rather than something that is added one the design is completed.


Board Design Tip of the Week

During your next schematic review, pick one important non-JTAG device, perhaps a memory, peripheral or interface and work backwards from it.

Ask:

Can I control the signals it needs?

Can I observe enough of its behaviour to know whether it is working?

Can I put the surrounding circuitry into the state required to test it?

If the answer to any of those questions is no, look at whether a small design change could turn that part of the PCB into something you can test. It may be worthwhile making that change even if the additional access is not needed during normal operation, because it could provide valuable visibility during development, manufacturing test or fault diagnosis.

Sometimes a single resistor option, enable signal or accessible control pin can unlock considerably more Boundary Scan coverage.ould boundary scan make your next board easier to test?


Could boundary scan save time on your next design?

Discover how boundary scan can help you improve test coverage, diagnose faults faster and simplify board testing:

See what you can test with XJTAG.


Discover more about your board design with the Free XJTAG Layout Viewer.

To get started find out how the Free XJTAG Layout Viewer can help you see your board connections:

Download your Free XJTAG Layout Viewer today

“It’s Only a Small Board Change…” What Could Possibly Go Wrong? We recently spoke to an engineer about a new revision of an existing PCB. The message was: “It’s only an iterative change.” The implication was understandable: the design changes are small, so the additional test work should also be small. And they may be absolutely right. But it raises an important question: How do you know? A small PCB revision does not automatically mean a small test impact. How Much Test Work Does a Small PCB Revision Really Create? The answer depends less on how many things changed and more on what those changes affect. A reset signal may have moved. A buffer may have been added. A memory device may have been replaced. A previously unused FPGA pin may now be connected. A power rail or enable sequence may have changed. Each change may be small on the schematic, but if an existing test depends on it, the impact can be much greater. Every test makes assumptions about the hardware: which devices are fitted, how signals are connected, what can be controlled and observed, and how devices behave during test. Change one of those assumptions and the existing test may need to change too. What If the Change Is at the Centre of the Board? Now consider replacing the FPGA or processor at the heart of the design. Perhaps the new device performs essentially the same function and most of the surrounding circuitry is unchanged. It may look like a straightforward substitution. But that device may interact with a significant proportion of the board and therefore affect many existing tests. For teams using Boundary Scan, there is another important consideration: Is the BSDL file correct for the exact device and package now fitted? Boundary Scan software relies on the BSDL file to describe the device's pins, Boundary Scan cells, instructions and test capability. So a change that appears on the design change list as: “FPGA changed from A to B” could potentially affect considerably more of the existing test strategy than the change list initially suggests. This is why test effort isn't proportional to the number of changes. It depends on how central those changes are to the tests already developed. Regression Testing Isn't Just for Software Software engineers are familiar with regression testing. A small code change doesn't mean rewriting the entire application, but it does mean understanding what else could have been affected. PCB test deserves the same approach. For every revision, ask: What changed? Which existing tests depend on it? Which assumptions are still valid? Which tests can remain unchanged? Which tests need modifying? Is any additional test coverage required? The objective isn't to assume everything has changed. It's to avoid assuming nothing has. Reuse Should Still Be the Goal Last week, we looked at the value of reusing tests developed during bring-up through production, repair and support. A new board revision shouldn't change that principle. Good reusable tests should make iterative development easier. The aim is to preserve everything that remains valid and concentrate engineering effort only on the tests affected by the new design. Reuse the test — but validate the assumptions behind it. That is far more efficient than designing a complete test strategy again for every PCB revision. Closing Thought “It’s only an iterative change” may be completely true. And the additional test-development work may genuinely be trivial. But that should be the conclusion of an impact review, not the assumption at the start of one. When the next PCB revision is released, ask: What changed? Which of our existing tests depend on those changes? Are the assumptions behind those tests still valid? Then preserve everything that still works. The objective isn't to design a complete test from scratch. It's to know which tests need changing — and why. Board Design Tip of the Week When documenting your next PCB revision, add one more item to the change list: Test impact. For each design change, consider whether it affects: Component functionality or pinout Signal routing or connectivity Resets, enables or mode settings Power rails or sequencing Interfaces and control signals Physical test access Programming or configuration Existing test assumptions And if Boundary Scan forms part of your test strategy, also check whether the change affects the BSDL/device model or JTAG architecture. A short review at this stage can prevent a “small change” from becoming an unexpected test-development problem when the revised boards arrive. Discover more about your board design with the Free XJTAG Layout Viewer. To get started find out how the Free XJTAG Layout Viewer can help you see on your board: Download your Free XJTAG Layout Viewer today
Don’t Throw Away the Tests That Got Your Prototype Working The first prototype arrives and the engineering team begins the process of proving the hardware. Connections are checked. Memories are exercised. Peripherals are tested. Problems are found, understood and fixed. Eventually, the board works. And then something slightly strange can happen. Much of the test capability that helped get it working is never used again. Bring-Up Creates More Than a Working Board During bring-up, engineers build up a significant amount of knowledge about the hardware. They learn how to initialise devices. They discover which signals need to be controlled. They find ways of checking memories and peripherals. They work out how to distinguish between a software problem and a hardware problem. Sometimes this knowledge becomes a formal test. Sometimes it is a small utility written by one engineer. Sometimes it is little more than a sequence of commands, measurements or notes that helped prove a particular part of the board. But whatever form it takes, it has value. The question is: What happens to it once the prototype works? A Test Shouldn't Necessarily Be Used Only Once Some bring-up tests are naturally temporary. But many aren't. If a test helped prove that an interface was correctly connected on the first prototype, there may be no reason why the same test cannot help verify that interface again later. The purpose simply changes. During bring-up, the question might be: “Did we design this correctly?” During production: “Has this particular board been assembled correctly?” During repair: “Which part of this board is no longer behaving correctly?” Different stages of the product lifecycle. But often the same underlying hardware evidence is useful. Turn Engineering Knowledge into Something Repeatable There is an important difference between knowing how to test something and having a test that someone else can run. If an engineer manually performs a sequence of checks during bring-up, that knowledge may disappear when the project moves on. If the same procedure is documented and automated where practical, it becomes reusable. That means the effort invested during development can continue providing value. Instead of every new team starting again, the product carries some of its diagnostic knowledge with it. Boundary Scan Is Particularly Well Suited to Reuse Boundary Scan can be especially useful here because structural tests are based on the hardware and its connectivity rather than depending entirely on the final application software. A test created to verify connections between devices during bring-up can potentially verify those same connections during manufacturing. A test used to exercise a memory, peripheral or other accessible device may remain useful during fault diagnosis. The reason for running the test changes. The physical hardware being checked does not. That gives structural tests the potential to move with the product from development into production and later support. Don't Lose the Tests at Handover When a product moves from development into manufacturing, the handover typically includes things such as: Schematics PCB data BOMs Manufacturing information Firmware Programming files Test specifications It is worth asking whether the diagnostic capability developed during bring-up should be treated in exactly the same way. Which tests proved particularly useful? Which interfaces can be independently verified? Which procedures helped isolate previous faults? Which tools or scripts should be retained? If that knowledge stays with one engineer rather than moving with the product, its value can easily be lost. One Investment, Several Uses The same test capability can potentially support: Prototype bring-up — establishing confidence in the first hardware. Design verification — proving that important areas of the PCB behave as intended. Production — checking whether individual assemblies have been manufactured correctly. Repair and rework — confirming whether a fault has been successfully corrected. Failure analysis — narrowing down where to investigate a returned board. Long-term support — providing engineers with diagnostic capability years after the original development team has moved on. That starts to change the way we think about the cost of developing a test. It isn't necessarily an investment for one stage of the project. It can be an investment in the product's entire lifecycle. Where XJTAG Fits This is one reason an XJTAG project can become more than something used to bring up the first prototype. Once the design information, device models and tests have been developed, that work can potentially be reused as the product moves into manufacturing, repair and support. Rather than rebuilding the test strategy at every stage, the same underlying project can evolve with the hardware. The value isn't simply in running another test. It is in preserving and reusing what the engineering team has already learned. Closing Thought Getting the first prototype working shouldn't necessarily be the point at which your test investment ends. It can be the point at which that investment starts becoming reusable. The tests that help an engineer understand board number one may also help manufacturing verify board number 1,000—or help a service engineer understand a failure years later. A good test isn't just something you run. It's engineering knowledge you can reuse. Board Design Tip of the Week When your next prototype reaches the point where everyone agrees it is working, don't immediately move on. Ask: “Which of the tests and diagnostic procedures we've developed should follow this product into production and support?” Capture them. Document them. Automate them where practical. And consider keeping them under the same configuration control as the rest of the product. The knowledge required to prove the first board works may be just as valuable when a board much later in the product's lifecycle doesn't. Discover more about your board design with the Free XJTAG Layout Viewer. To get started find out how the Free XJTAG Layout Viewer can help you see on your board: Download your Free XJTAG Layout Viewer today
Your Board Already Has a Powerful PCB Test Capability The design has been verified, production starts, the first boards come through test successfully. Then one fails. That is the moment you discover how good your test strategy really is. Finding a fault on a prototype is one thing. The development team knows the design intimately, has access to schematics, debug software and bench equipment, and may be prepared to spend hours investigating an unusual problem. Production is different. When a manufactured board fails, the question isn't simply: “Does it work?” It becomes: “What's wrong with this particular board, and how quickly can we find the fault?” Prototype Debugging and Production Diagnosis Are Different During development, engineers are often investigating the design itself. Is the interface configured correctly? Does the circuit behave as expected? Are the component values right? Does the software initialise the hardware correctly? By the time a product reaches production, the design should already have been proven. The production test is answering a different question: Has this particular assembly been manufactured correctly? That changes the nature of the investigation. A Failure Needs to Narrow the Search Imagine a board fails because an interface is not responding. A basic production test may tell you exactly that: Interface failed. But the engineer still has to work out why. Is there an open connection? A short? A missing component? A badly soldered pin beneath a BGA? An incorrectly fitted device? Or is the problem somewhere else entirely? A useful test strategy should progressively reduce that search area. The closer the test can get from: “Something is wrong.” to: “Start looking here.” the more useful it becomes. This Is Where Structural Information Helps Functional testing is extremely valuable in production because it proves that the completed product behaves as expected. But when a functional test fails, the symptom can sometimes cover a large area of hardware. Structural testing provides a different layer of evidence. Boundary Scan can often verify inaccessible PCB connections independently of the application software and relate unexpected results back to the nets and devices involved. That can help answer an important question: Is this an assembly problem, and if so, where should we investigate first? Boundary Scan does not replace functional production testing. It complements it by providing another way to understand the hardware beneath the symptom. One Failed Board May Be Manageable If one board fails, spending an hour investigating it may not seem significant. But what happens when ten fail? Or fifty? Or when the same type of fault appears repeatedly? At that point, diagnostic time starts affecting manufacturing throughput. That is why the economics of production test aren't determined only by how quickly passing boards can be tested. They are also influenced by how efficiently failed boards can be diagnosed. A fast PASS/FAIL test followed by hours of fault finding may not be as efficient as it first appears. Don't Wait for the First Failure to Think About Diagnosis There is an important Design for Test lesson here. When the first failed production board arrives, the PCB design is already complete. If a reset cannot be controlled, an enable is inaccessible or an important interface cannot be exercised independently, the test engineer has to work within those constraints. The opportunity to make a simple schematic change may have disappeared months earlier. This is why testability shouldn't only ask: “Can we detect a failure?” It should also ask: “If it fails, what information will we have?” That question is much easier to answer while the schematic is still open. Carry What You Learned During Bring-Up into Production There is another opportunity that is often overlooked. Structural tests developed during prototype bring-up don't necessarily need to be discarded once the design is working. Tests that proved connectivity, memories, peripherals or interfaces during development may also provide useful coverage in production. That means the effort invested in understanding the first prototypes can potentially become part of the manufacturing test strategy. Instead of starting again, knowledge moves forward with the product. Closing Thought A string of passing boards doesn't really test your diagnostic strategy. The first failure does. That is when you discover whether your test simply detects a problem or actually helps the engineer understand it. And the difference between knowing: “This board failed.” and: “This is where you should start looking.” can determine whether the problem is diagnosed in minutes, investigated for hours or placed on a growing bone pile marked: Investigate later. The best production tests don't just catch faults. They help engineers understand them. Board Design Tip of the Week Before releasing your next design, choose three realistic manufacturing faults. For example: An open connection beneath a BGA A short between two adjacent signals An incorrectly fitted peripheral Then ask: “If this happened on the production line, what would our test actually tell us?” If the answer is simply: FAIL there may still be work to do. Discover more about your board design with the Free XJTAG Layout Viewer. To get started find out how the Free XJTAG Layout Viewer can help you see on your board: Download your Free XJTAG Layout Viewer today