1.1. About the Cycle Accurate Debug Interface

The Cycle Accurate Debug Interface (CADI) is a C++ API that enables convenient and accurate debugging of complex System-on-Chip (SoC) simulation platforms. It enables a caller, typically a debugger, to:


CADI can be used with simulation targets at any level of abstraction such as, for example, instruction-accurate simulation or cycle-accurate simulation platforms.

Because CADI is widely used within ARM solutions, developers can:

CADI enables interaction with a third-party debugger to:

A CADI implementation provides many technical benefits such as:


The interface exposes sufficient information on a target to enable describing its behavior and hardware resources. The caller does not require additional description files to analyze or visualize hardware components.


Semi-hosting calls establish a channel for input to and output from an application running on the target. This enables callers to:

  • interact with the target

  • redirect target input and output to the host system the simulation platform is running on.


Callback methods enable the use of asynchronous method calls to the target that minimize the impact on the behavior of the target. The target is blocked by a single caller for only a short period.

Synchronous calls through the interface lock out other callers until the call has ended. This is often undesirable behavior, If, for example, one debugger is executing a command on the target, another debugger is blocked from stopping the target.

Compiler support

The design of CADI v2.0 classes and data types avoids method calls that pass the ownership of heap memory objects between the caller and the target. This enables interaction between tools and models compiled with different compilers such as, for example, MSVC 2003 and MSVC 2005.

Optional implementation

Functionally separated parts of CADI can be optionally implemented. This applies to both single method calls of the common CADI interface and to those in independent classes of the CADI class hierarchy.

Copyright © 2008-2010 ARM Limited. All rights reserved.ARM DUI 0444F