VII Extending Simics 40 Instrumentation
Model Builder User's Guide  /  VII Extending Simics  / 

39 Introduction

The Simulator API in Simics Model Builder provides a rich API that enables users to extend the functionality of Simics. This API was introduced in Simics 4.4 to more clearly separate between hardware modeling activities and the development of simulator add-on features, simplifying both kinds of activities.

Typical Simics extensions include tracers, connections to external applications and hardware, statistics collectors, integrations with other simulators, memory timing models and foreign processor models. This document describes some such extensions and how they may be developed, but many other kind of extensions can be built using the Simulator API included in the product. It is only the development of extension modules that require Simics Model Builder product, any Simics user may run the resulting module.

39.1 Processor API

The Processor API is used to add processor models to Simics. The most common use case is importing and adapting foreign processor simulators. The API is described in the separate Processor Model Integration Guide.

39.2 Simulator API

The Simulator API contains the complete Simics API, including parts that are not available to models.

39.3 Building Modules

Extension modules are built in the same way as device model modules and are typically written in C/C++ or Python. The device modeling tool DML simplifies device modeling a lot but does not provide many benefits when writing simulator extensions. The build environment for Simics modules is documented in chapter 3.

VII Extending Simics 40 Instrumentation