In-Circuit Emulation: Embedded Software Development, Faster

The rise of the Internet of Things (IoT) has made embedded software development an operational cornerstone for countless modern businesses. Embedded software is used in a broad range of non-computer hardware devices. The source code of this system software is written in register memory.

Owing to the nature of embedded software, debugging the source code in the target system can be quite challenging. Over the years, engineers have employed numerous chip debugging techniques. While some of these techniques have proven effective, others are unnecessarily time-consuming and labor-intensive.

Of the various available approaches, in-circuit emulation is one of the best solutions. In-circuit emulation provides insights into the state of the processor and helps engineers zero in on system software bugs. Below, we examine this essential debugging tool and explore its benefits.

What Is In-Circuit Emulation?

In-circuit emulation (ICE) is a specific debugging technique performed using instruments known as in-circuit emulators. These emulators can augment simulation capabilities. A logic simulator focuses on hardware verification and less about running with embedded software . In-circuit emulation models how a chip’s hardware and software will perform and then runs a series of tests to verify the accuracy of the (DUT) design under test. Simulators and emulators are also used for debugging purposes.

While simulators are undoubtedly integral to the chip development process, simulation is slow, in single digit Hz range, while the DUT is getting bigger (e.g., few billion-gate designs) every generation. Conversely, in-circuit emulators can verify the DUT (few billion gate designs) typically in the KHz to MHz range.

Modern in-circuit emulators look similar to a rack of servers. Engineering teams interface with in-circuit emulation equipment using their computers.

Whereas simulation software creates a digitized representation of a chip's attributes, the in-circuit emulator provides a physical manifestation of the design. As a result, the in-circuit emulator facilitates faster testing, performance verification, and hardware/software co-debugging. Furthermore, in-circuit emulators allow designers to go beyond this initial testing phase. Engineers can actually connect the chip in the emulator to the real-world environment they intend to use it.

For instance, engineers developing a server processor chip can use the in-circuit emulator to connect their design to the Ethernet, PCIe, USB, SATA, or other common interfaces.

Consider this technical example. Consider emulation data points where full-chip SoC would boot ƒsLinux (kernel boot) in about 30 – 45 minutes. An Android OS boot would take 2 – 4 hours depending on the OS setup, and Windows would take more than a day. Therefore, even with emulation, anything more than a day will become a challenge.

Still, compared to pure RTL simulation for a full-chip SoC (about 1BG to a few billion gates), emulation speed could be up to 100,000X faster than a typical full-chip simulation environment. Hence, users don't bother simulating their SoC in RTL simulation for OS boots or running software because that, in comparison, would be just too impractical and cumbersome.

In-Circuit Emulation vs. Chip Debugging

While in-circuit emulation solutions are used for debugging chip designs, that is far from their sole function. Conversely, a chip debugging program’s only purpose is to help software engineers identify and remedy bugs in their source code.

Put simply, in-circuit emulation devices actually "emulate" the hardware or software that the engineering team is developing before it is physically created. Conversely, debuggers are primarily used for troubleshooting software in the later stages of development.


In-Circuit Emulation (ICE) Environment Diagram

Benefits of In-Circuit Emulation

In-circuit emulation offers a multitude of benefits to software engineering teams. Specifically, in-circuit emulation:

Facilitates Streamlined Testing

Simulation testing is a tedious process that can significantly increase the time to market. If engineering teams cannot effectively get their products in the hands of end-users, they may miss out on the opportunity to capitalize on ever-shifting consumer trends.

In-circuit emulation increases performance testing by providing engineers with a physical, technical representation of their creation. As a result, testing an operating system or other lightweight software using in-circuit emulation can be completed in only a few hours. For comparison, this same process may take days, weeks or years if the engineering team uses software simulators.

Design teams can meet tight deadlines and consistently deliver quality products by leveraging in-circuit emulation. This ability is vital for designers who release products annually during the peak holiday sale season.

Provides Direct Debug Testing Capabilities

Companies must conduct post-silicon debug and test procedures when designing chips using traditional simulation. This phase of testing occurs after the chip has already been manufactured.

Post-silicon debug and test protocols will inevitably reveal several bugs. After these bugs are discovered, the testers will need to send the results to the manufacturer and request that a new set of chips be produced—another time and resource-consuming step.

In-circuit emulation eliminates the need for this inefficient process. Designers can create a physical representation of the chip using the in-circuit emulator. They can then perform live bug testing before the actual chip is manufactured, saving time and reducing development costs.

Improves Functionality and Performance

Modern in-circuit emulation leads to higher quality performance, increases customer satisfaction, enhances brand reputation, and bolsters profitability.

In-circuit emulation improves functionality and performance in several ways. First, it facilitates more efficient testing and product development. This facilitation frees up additional resources for software development and other processes.

Additionally, software engineers can begin writing software when in-circuit emulators are used earlier in the development process. They can leverage the model of the chip to guide their software development processes. By starting sooner, they will have the time to create more dynamic software and thoroughly test their creations.

Which Industries Can Leverage In-Circuit Emulation?

A wide range of industries can leverage in-circuit emulation for chip development processes. A few examples include:

Virtually any organization involved in developing semiconductor chips or control panels could benefit from investing in in-circuit emulation technologies. Some industries, such as those operating in the gaming sector, would find it virtually impossible to be competitive without in-circuit emulators.

By incorporating in-circuit emulation solutions into chip design protocols, businesses operating in these industries could reduce the time to market. They could also drive down the cost of creating, testing, and debugging their chips.

Cumulatively, these advantages would give them an edge in the increasingly competitive field of chip development.

In-Circuit Emulation with Cadence

Cadence Palladium emulation platforms enable high-performance hardware and software verification and debugging of complex SoCs and systems. It provides early software development, hardware/software verification and debugging, and in-circuit emulation. They provide the highest debug productivity early in the design cycle when the RTL is still changing.

The Palladium Z2 system unifies best-in-class simulation acceleration and emulation technologies into a platform that is 2X more densely integrated and optimized for multi-user emulation throughput and efficiency.

Emulators use physical or hard interfaces like SpeedBridge, EDK, Memory, I/O, JTAG board to enable physical connection, synchronization, and handshaking between the emulation and the real hardware, such as the motherboard and BIOS. Cadence SpeedBridge Adapters are protocol interface solutions that enable efficient driver- and application-level testing with Palladium emulation and Protium prototyping systems.

Learn More About In-Circuit Emulation