If you have been doing hardware design for a few years, you probably have experienced the hardware problem that set your hair on fire. The new prototype hardware works “most” of the time, but every now and then, it glitches. And the failure is so infrequent that capturing the event is nearly impossible. The software team starts finger pointing and you are hoping it is a software problem. You know you can’t ship a board exhibiting this behavior. The project is waiting for you to find and fix the problem and you don’t have the tools to be successful. Many of you have been there or will be in the future.
Hardware design creation tools are plentiful. The arrival of the new prototype is one of the most stressful times in the hardware design process. But the tools are available to test the new prototype are limited or nonexistent. The new prototype is the culmination of a new schematic, a new PCB layout, new components and a first time fabrication and assembly process. What could possibly go wrong? The failure spectrum is vast and can go from a hard failure, such as an open/short, to something more difficult to find like a simultaneous switching problem on the DDR3 memory. Adding to the stress is the software team who is anxiously waiting for hardware so they can meet their deadlines.
At the design creation phase, the hardware engineer has a plethora of tools at his/her disposal. This includes the required tools, like schematic entry and PCB layout, to the more specialized tools like RF simulation, DFM, and power integrity analysis. But when you pull that prototype board out of the box and are ready to verify that your new design is correct, the software tool box is empty.
Today’s complex SOC processor based embedded designs are running faster and at lower power supply voltages, making board based design verification and test much more difficult. The logic analyzer and scope are great for looking at a specific problem, but today’s complex designs require functional testing at speed. Accenture recently reported that US consumers returned $17B in electronic products in 2011, which is an increase of 21% since 2007. This report begs the question – do we have a hardware verification problem?
Hardware Functional Test Benefits
When you consider the embedded hardware lifecycle from a test perspective, it has three primary phases. Phase one – the first prototype boards arrive and the hardware testing focus is on design correctness and production readiness. Phase two – production testing and the focus shifts to time versus coverage. At this point, the “design” is proven correct based on phase one testing and now the test is for implementation not design. And finally phase three –the product is in the customer’s hands and hardware failures need to be identified. Unlike current methods, a functional test approach can address the entire hardware lifecycle.
Functional test coverage, to date, has been underutilized in lieu of boundary scan, In-Circuit-Testers (ICT), and internally developed test programs. The move to smaller and smaller board geometries, faster clocks, and lower power supply voltages are creating smaller power and timing margins, which are more effectively detected by functional testing. Functional tests run very close to the hardware without the software stack that the application OS introduces. The application OS software stack virtualizes the hardware, making fault detection and isolation very difficult. The functional test exercises the hardware to verify basic operation of the device or sub-system independent of the application software. “Basic operation” means the device can be initialized and operate as designed without all the variables introduced by the application OS. Essentially the hardware is tested in isolation.
The need to functionally test the hardware is an emerging requirement. Structural testers are losing design access points and the need to test some of these new devices, such as DDR2/DDR3 RAM at speed, is creating a need for a functional test approach. Another benefit of the functional test approach is the ability to quickly qualify second source parts or design changes against a functional baseline. Just like software regression testing, hardware functional testing can identify deltas in the hardware functional operation. Hardware change testing based on functional test can be used for board spins all the way to counterfeit part detection.
Empowering the Hardware Engineer
Providing the hardware engineer with a functional test toolkit, which can be used at the prototype phase for design verification and test, as well as production test, is empowering. The toolkit should contain a Verification and Test OS (VTOS) that is lite weight and can be easily configured for a new prototype board by the hardware engineer and be up and running in minutes. The VTOS should provide a test platform that includes scripting, command line peeking and poking registers/memory, file transfer, and a robust functional test library.
VTOS will empower the hardware engineer to improve hardware design quality. The benefits are numerous from faster time to market to fewer field returns. The company can keep firmware and software engineers focused on product development and not hardware test program development. Let’s put out those flames.