2.2.2 CADISimulationFactory

The CADISimulationFactory creates a new CADI simulation.

The simulation factory:

  • Provides basic information (name and a brief description) about the simulation associated to it.
  • Exposes information on the available instantiation time parameters.


    During the process of creating a CADI simulation, you can either configure:
    • All of the instantiation-time parameters for the entire platform.

    • Only the components in the simulation.

A typical platform is hierarchical in design and contains multiple components. The name of a parameter indicates its ownership of a dedicated subcomponent. A dedicated specifier represents each hierarchical level and its corresponding component:

  • The identifier is typically the name of the component at that level.
  • The levels are separated by dots.
  • The last element of a specification string is the parameter name itself.

For example, the size parameter for a memory component named mem in the processor component of a system named socsystem is socsystem.core.mem.size.


In this guide, the term target is typically used instead of component. Both terms describe a subsystem, or a single component, in a platform.

During instantiation of a CADI simulation, the corresponding interface method receives the parameters:

  • It is not mandatory to set all parameters.
  • If the caller does not provide a value for a parameter, the simulation factory uses the default value retrieved from the parameter information.
  • Parameters forwarded to the simulation during instantiation are not required to be in the same order as the received parameter list.
  • The forwarded parameter list is not required to be complete.
  • The caller must signal the end of a list by adding an additional terminating item with the parameter ID 0xFFFFFFFF.


    The terminating ID of 0xFFFFFFFF is the same as static_cast<uint32_t>(-1).

As with SelectSimulation(), the Instantiate() method can receive pointers to CADISimulationCallback and CADIErrorCallback objects. The pointers are registered to the CADI simulation returned to the caller. These callbacks are used, for example, to send messages from the factory to the caller during instantiation.


A CADI simulation factory is intended to exist only temporarily. As soon as the required CADI simulation is created, the Release() method must be called to release the factory.

Because of the temporary existence of the factory, CADIBroker becomes the owner of the simulation.

Non-ConfidentialPDF file icon PDF versionARM 100963_0200_00_en
Copyright © 2014–2017 ARM Limited or its affiliates. All rights reserved.