The Best Time to Find a Testability Problem Is Before the PCB Exists

Image of CEO of XJTAG Simon Payne Simon Payne, CEO, XJTAG |  Subscribe to LinkedIn newsletter
XJTAG Testing Times - Find the fault save the board

Last week, we looked at some of the design decisions that can significantly increase Boundary Scan test coverage.

Accessible resets.

Controllable enables.

Flexible mode pins.

A well-considered JTAG architecture.

Individually, these can seem like relatively small details.

But there is an important question that comes before all of them:

When should you actually check whether your board is testable?

The answer is simple.

Before the design is finished.

Because once the PCB has been laid out, manufactured and assembled, many of the decisions that determine testability have already been made.

Testability Should Be Reviewed Like Any Other Design Requirement

Engineering teams routinely review a design for things such as:

  • Signal integrity
  • Power integrity
  • Component availability
  • Thermal performance
  • EMC
  • Manufacturability

Testability deserves the same consideration.

Yet it is still common for the question:

“How are we going to test this?”

to be asked only after the design is complete.

At that point, the answer may be constrained by decisions made months earlier.

A much better approach is to make testability part of the design review itself.

Start with the JTAG Chain

The obvious place to begin is the JTAG architecture.

Are all the intended devices present in the chain?

Are TDI, TDO, TMS and TCK connected correctly?

How will the test system connect to the JTAG signals? Are there sufficient ground connections nearby?

Are appropriate pull-up,pull-down and signal termination options available where required?

Can every device in the chain be powered when JTAG access is needed?

Could one unpowered or optional device prevent access to everything else?

And on a more complex PCB, would separating devices into several chains provide greater flexibility?

These are much easier questions to answer while looking at a schematic than while diagnosing a board that will not respond to JTAG.

Then Look Beyond JTAG

The JTAG chain is only the beginning.

The greater opportunity is to look at what the Boundary Scan-enabled devices can reach.

Take an FPGA, processor or SoC and examine the circuitry around it.

What memories are connected?

What peripherals?

What control signals?

What analogue interfaces?

What external connectors?

Each accessible pin potentially provides another route into the hardware.

The objective is not simply to confirm that Boundary Scan is present.

It is to understand how far that access can extend into the rest of the design.

Ask What Can Be Controlled

For every important area of the PCB, ask whether the signals required to operate it can be controlled.

That might include:

  • Chip selects
  • Resets
  • Enables
  • Multiplexer controls
  • Mode-selection pins
  • Power-enable signals

Consider a peripheral that is connected perfectly to a Boundary Scan-enabled FPGA.

If the peripheral’s reset signal is controlled elsewhere and cannot be released without application software, much of that potential test access may be lost.

The connection is there.

The opportunity to test it is there.

But one control signal has effectively closed the door.

Ask What Can Be Observed

Control is only half of the story.

You also need to consider what can be observed.

If you drive a signal, how will you know whether the expected result occurred?

Sometimes another Boundary Scan device provides the observation point.

Sometimes it may be a non-JTAG component whose behaviour can be read back.

An ADC may allow a voltage to be measured.

An Ethernet PHY may provide status information.

A memory can return data that has previously been written.

The more opportunities you have to both control and observe the hardware, the more confidence your tests can provide.

Think About the Board in Its Test State

One useful exercise is to stop thinking about the PCB in normal operation for a moment.

Instead, imagine the board while it is being tested.

Which power rails are active?

Which devices are in reset?

What state are the buffers in?

Are level translators enabled?

Is the watchdog running?

Which boot mode has been selected?

Can the processor or FPGA inadvertently interfere with the test?

The board may need to occupy a very different state during structural testing from the state it uses in normal operation.

Designing so that this state can be achieved deliberately can make testing much simpler.

Look for the Small Changes with the Biggest Impact

One of the reasons to perform this review early is that improvements are often surprisingly inexpensive.

You may discover that adding:

  • A resistor option
  • A zero-ohm link
  • An accessible enable
  • An alternative mode selection
  • A way of disabling a watchdog
  • A different JTAG chain arrangement

could unlock test access to an entire section of the board.

During schematic design, that change might take minutes.

After manufacture, it might require soldering modifications, a PCB re-spin or simply accepting that the area cannot easily be tested.

Bring the Test Engineer into the Conversation

There is another benefit to doing this review early.

It gives the people who will eventually test the product an opportunity to influence the design while changes are still possible.

A test engineer looking at a schematic may ask very different questions from a hardware designer.

How will I isolate this section?

Can I force that device into the state I need?

How will I determine whether this interface is working?

What happens if this device is not fitted?

Can I access this signal without application software?

Those questions can reveal opportunities that are easy to miss when the design is considered purely from a functional perspective.

The Question You Don’t Want to Hear Too Late

There is a familiar moment in many product developments.

After months of design, layout, prototype manufacture and board bring-up, the first working system is finally ready.

The design works.

The software runs.

Everyone is pleased with the result.

Then the design is handed to the contract manufacturer and someone asks:

“How are we going to test these boards?”

It sounds like a simple question, but by this stage many of the answers have already been designed into or out of the PCB.

The test engineer can only work with the access, control and observation that the finished design provides.

A coverage review earlier in the project changes that conversation completely.

Instead of asking how to test a finished product, the team can ask while the schematic is still being developed:

  • Which areas can we test already?
  • Where are the gaps?
  • What additional access would make the test engineer’s job easier?
  • And what small changes could make those areas accessible?

Those are much easier questions to answer before the first PCB exists.

And the benefits aren’t limited to production testing.

The same additional access can help the development team during initial board bring-up, give manufacturing engineers better diagnostics when individual boards fail and provide service teams with more options later in the product’s life.

Don’t Wait Until the Test Development Phase

If the first time a test engineer sees the board is after the design has been released, their options are already limited.

They can develop tests around the access that exists.

They cannot easily create access that was never designed in.

This is why Design for Test isn’t simply about making the test engineer’s job easier.

It is about giving the organisation more options.

More options during bring-up.

More options during manufacturing.

More options when diagnosing failures.

And more options when products eventually return from the field.


Closing Thought

There will always be parts of a complex PCB that require different test techniques.

The objective isn’t necessarily to achieve 100% Boundary Scan coverage.

The objective is to understand the testability you have, identify opportunities to improve it and make those decisions while the design can still be changed.

A board shouldn’t simply be designed to work.

It should also be designed so that engineers can establish why it works or why it doesn’t.

Because the difference between discovering a testability problem on the schematic and discovering it on an assembled PCB can be enormous.

The cheapest testability problem you’ll ever fix is the one you find before the board is built.


Board Design Tip of the Week

Before your next schematic is released for layout, invite someone responsible for bring-up or production test to review it.

Don’t simply ask:

“Does the JTAG chain look right?”

Ask:

“If this board doesn’t work, what will you need access to in order to find out why?”

And:

“When we hand this design to manufacturing, have we given the test engineer enough control and visibility to build an effective test?”

Those questions can uncover small design changes that make life considerably easier for everyone who has to bring up, test, manufacture or support the product later.


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


XJTAG Testing Times cartoon - Complete fabrication

Testing Times - PCB engineers in workshop, asking what JTAG is
Your Device Has JTAG. But Can You Actually Use It? Many engineers select an FPGA, processor or SoC and see JTAG support listed in the device specification. That sounds reassuring. The capability is there. But there is an important catch: If the PCB design doesn't provide practical access to that JTAG interface, much of the value has already been lost before the first board is built. And that can mean giving up access to one of the most useful diagnostic capabilities already built into the silicon. JTAG Is Easy to Overlook During Design When a new PCB is being developed, there is a lot competing for attention. DDR, PCIe, Ethernet, Clocks, Power, High-speed interfaces and Peripherals. Compared with those, JTAG can look relatively unimportant. It may be seen simply as something required to program an FPGA or connect a processor debugger. And if programming is going to happen through another mechanism, it can be tempting to think: “We don't really need JTAG on the finished board.” That decision may remove considerably more capability than expected. JTAG Is More Than a Programming Interface Programming and processor debug are probably the most familiar uses of JTAG. But, as we've explored throughout Testing Times, many modern semiconductor devices also contain Boundary Scan logic. That can give engineers access to the signals around the device independently of the application software. With the right board design, that access may help verify PCB connectivity, investigate memories and peripherals, exercise control signals and establish confidence in hardware before the application is even running. The semiconductor manufacturer has already provided much of this capability inside the device. The PCB designer decides whether it remains accessible. The Capability Is Already There This is an important point. Adding JTAG access doesn't mean adding an entirely new test technology to the design. For many devices, the hardware is already in the silicon. The design task is largely about making sensible provision for using it. That might mean routing the JTAG signals to a connector, test pads or another accessible interface. On a more complex board, it may mean considering how several devices should be arranged into one or more JTAG chains. The incremental design effort can be small. The potential value later can be considerable. Think Beyond the First Prototype The obvious time to value JTAG access is during bring-up. If the processor doesn't boot or the FPGA application isn't ready, JTAG and Boundary Scan may provide another route into the hardware. But its usefulness doesn't necessarily stop once the prototype works. The same access can potentially support: Programming and configuration Development and debug Structural testing Manufacturing test Failure analysis Repair and rework Long-term product support A connector that seems unnecessary during schematic capture may become extremely useful several years later when someone has to diagnose a board that no longer behaves as expected. Don't Just Put the JTAG Pins on the Schematic Providing JTAG access requires a little more thought than simply connecting TCK, TMS, TDI and TDO. During design, it is worth asking: Where will the interface actually be accessed? Are all the devices you may want to reach included in a usable chain? What happens if one device is unpowered or not fitted? Are suitable pull resistors and termination options provided? Can relevant mode or configuration pins be placed into the required state? Would several JTAG chains provide better flexibility on a complex system? Will JTAG still be accessible on the production board? These are relatively easy questions to answer before layout. They become much harder to solve once assembled PCBs are sitting on the bench. What Happens If You Don't Route It Out? Perhaps nothing. The board may work perfectly. The firmware may work first time. Production may run smoothly. But if something does go wrong, one useful source of visibility is no longer available. A processor that won't boot becomes harder to investigate. An FPGA board with incomplete firmware may provide fewer diagnostic options. A production failure may need to be approached entirely through functional testing or physical probing. The problem isn't that the product suddenly cannot be tested. It is that an existing diagnostic option has been designed away. Closing Thought Seeing “JTAG supported” in the device datasheet isn't enough. The semiconductor manufacturer has provided the capability. The PCB designer decides whether anyone will actually be able to use it. Routing JTAG access may occupy only a very small part of the schematic. But it can provide useful visibility throughout the life of the product. And the easiest time to preserve that capability is before the PCB exists. Board Design Tip of the Week If you're providing JTAG access, build in a little flexibility rather than designing only for the configuration you expect to use today. Consider providing footprints for appropriate JTAG pull resistors and termination components, even if some are initially left unpopulated. Where device configuration or mode pins can affect JTAG operation, consider providing resistor options that allow those states to be changed if necessary. And if a permanent JTAG connector isn't desirable on the production PCB, consider retaining accessible test pads or another practical connection method. Those small provisions cost very little at the design stage, but they can give engineers considerably more options during bring-up, test and fault diagnosis later. Could JTAG boundary scan help you test your next design? Discover how boundary scan can help you improve test coverage, diagnose faults faster and simplify board testing: Find out more about JTAG boundary scan and how it can help you. Discover more about your board design with the XJTAG Layout Viewer. To get started find out how the XJTAG Layout Viewer can help you see on your board: Download your free XJTAG Layout Viewer today
Testing Times - PCB engineers in workshop, testing before firmware
Can You Test a Board Before the Firmware Exists? We were recently asked a very practical question: “Can you test our board using Boundary Scan? The firmware isn’t available yet.” The answer is yes, and this is exactly the kind of situation where Boundary Scan can provide real value. When the first assembled PCBs arrive, hardware engineers want to start establishing confidence in them immediately. Waiting for firmware before meaningful hardware testing can begin creates an unnecessary dependency between two development activities that are often progressing in parallel. The Hardware Often Arrives Before the Firmware This is a familiar situation on many development projects. The first assembled PCBs arrive. The hardware team wants to begin bring-up. But perhaps: The processor firmware is still under development The FPGA image is not yet available Device drivers have not been written The operating system is not running None of this necessarily indicates a problem with the project. Hardware and software development simply progress at different rates. The important question is whether hardware testing has to wait. Boundary Scan Doesn't Depend on Your Application One of the key advantages of Boundary Scan is that the test capability is built into the semiconductor devices themselves. It operates independently of the application software or FPGA design. So the processor does not need to have booted and the FPGA does not need to be configured with the product design before useful structural testing can begin. Boundary Scan can instead be used to gain access to PCB signals through the dedicated test logic already present in suitable devices. That access can help engineers verify things such as: PCB interconnections Address, data and control buses Connections to memories Connections to peripherals Resets, enables and other control signals Accessible interfaces and discrete circuitry The emphasis is primarily on establishing confidence in the connections between the devices and the PCB. Those connections can also be used to exercise part of a non-JTAG device's functionality, providing additional evidence that the surrounding circuitry is behaving correctly. Why That Matters During Bring-Up Suppose the firmware eventually arrives and a memory interface doesn't work. There are now several possibilities. Is there a firmware problem? Is the memory being initialised incorrectly? Is the FPGA or processor configuration wrong? Or is there a physical problem with one of the PCB connections? If structural tests have already established confidence in the relevant hardware, one major area of uncertainty has already been reduced. Instead of the hardware and firmware teams having to work out whose area contains the problem, they have independent evidence to help narrow the investigation. That can make bring-up considerably more systematic. Hardware and Firmware Can Progress in Parallel This is perhaps the broader benefit. Boundary Scan can help decouple initial hardware validation from firmware availability. While the software team continues developing the application, the hardware team can begin verifying accessible areas of the PCB. Then, when the firmware is ready, it starts from a stronger position. Some of the underlying hardware has already been independently checked. That does not remove the need for functional testing. It means functional testing begins with greater confidence in the hardware underneath it. It Helps the Firmware Team Too Firmware engineers are often among the first people to expose hardware problems because their software begins exercising interfaces that may never previously have been used. If a peripheral fails to respond, they can spend considerable time investigating code before discovering that the cause is actually a PCB connectivity problem, an incorrectly fitted component or another hardware issue. Providing the firmware team with boards that have already passed useful structural tests gives them a much better starting point. They can concentrate on developing and debugging the software without automatically becoming the first stage of hardware diagnosis. Start Building Confidence Earlier Functional testing usually needs enough of the system to be operational for the application to run. Boundary Scan works differently. It uses dedicated test logic within the semiconductor devices to provide access to the PCB independently of the application. That means useful hardware testing can begin much earlier in the development process. And when hardware and software teams are both working towards the same deadline, removing unnecessary dependencies between them can be extremely valuable. Closing Thought The question we were asked was: “Can you test the board even though the firmware isn't ready?” Yes. But perhaps the more useful question is: “Why wait for firmware before starting to build confidence in the hardware?” Hardware and firmware development often happen in parallel. The test strategy can too. Boundary Scan provides a way to start checking the PCB earlier, establish confidence in accessible areas of the hardware and reduce uncertainty before the application ever runs. Board Design Tip of the Week When planning a new design, ask what you could verify if no application software were available at all. Can important resets and enables be controlled? Can key interfaces and memory connections be accessed? Can critical signals be driven and observed? Is the JTAG chain readily accessible? Thinking about those questions during the design stage can give the hardware team useful diagnostic capability from the moment the first assembled PCB arrives — rather than from the moment the firmware does. Could boundary scan help you test your next design? Discover how boundary scan can help you improve test coverage, diagnose faults faster and simplify board testing: Find out how XJTAG can help you. 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
XJTAG Testing Times - PCB engineers in workshop
“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