Simics Release Notes

1 Changes Since Simics 6.0.0

The following is a list of changes since the initial Simics 6 release.

2 New Features of Simics 6

This section provides a high-level summary of all new features of Simics 6, presented per product.

Simics

Asynchronous Transactions
Support for non-blocking asynchronous memory transactions has been added. With asynchronous transactions, a target no longer has to respond to a memory access at once, i.e. in zero virtual time. Instead, the transaction can be completed later when data is available. This simplifies integrations with more detailed simulation models. Outstanding memory transactions can be inspected by the user and checkpointing of them is supported.
Instrumentation Framework
A new instrumentation infrastructure has been added, allowing flexible extraction of various run-time information from the system in a more efficient way than earlier. The instrumentation infrastructure supports CPU, DML and SystemC instrumentation. It provides generic commands for adding and controlling instrumentation in the simulation. Several example tools and filters are provided with source code as examples.
Device Register Coverage
Simics can generate information about register coverage, i.e. which registers in a system have been read/written during a session. This can for example be used to verify that expected parts of a system has been covered by tests.
Enhanced Target Consoles
There are new target consoles for both graphical and text (serial) output. The consoles clearly separate their backend (scripting, commands, breakpoints) from the presentation frontend. For graphics, a new VNC frontend as been added and there is improved support for rotating or scaling the display. The feature set of the new consoles is consistent over all supported host platforms.
3rd Generation Multi-Threaded Scheduler
The simulation thread scheduler has been greatly improved. A new thread domain concept has been introduced, improving performance of multi-threaded simulations through efficient cross-cell calls and simplifying the interaction with the Simics scheduler from user threads. The Multi-Core Accelerator functionality will be updated to take advantage of the new scheduler in an update to Simics 6, further improving performance of multi-threaded simulation workloads.
Hierarchical Objects
The configuration system has been extended with support for object hierarchies. Previously the component system had to be used to impose an hierarchical structure for objects. The hierarchical objects support is used to implement the new port objects and to simplify configuration of systems. Several CLI commands have been generalized to handle the object namespaces.
Notification System
A new light-weight notification system has been introduced that will eventually replace the current hap infrastructure.
Updated Host Requirements
The Windows version of Simics now requires Windows 8.1.
Deprecations and End-of-life
API and script compatibility with Simics 4.6 and older has been dropped. Refer to the Simics 6 Migration Guide for a complete list.

Simics Analyzer

Debugger API
An API for the source level debugger has been introduced, providing access to symbol and source information. The debugger API can for example be used with the new instrumentation framework to correlate events in the system with the target source code.

Simics Model Builder

DML 1.4
A new revision of Device Modeling Language (DML) is planned as a later addition to the Simics Model Builder product in Simics 6.
SystemC
The scheduler driving simulated time forward in SystemC has been updated, simplifying configuration as no external clock is needed. It also improves the interaction with standard commands in Simics related to simulated time.

Gaskets for standard protocols with default template parameters are provided as Simics classes, to support dynamic instantiation of gaskets based on meta data. There is also an interface for external tools to provide this meta data based on the name of the object. Both these techniques can be leveraged to support a GUI-based drag-n-drop configuration of generated SystemC modules and have them automatically wrapped by Simics.

Improved isolation between SystemC modules, so that SystemC models can be built using different compiler/tool chains and still be loaded into the same Simics session. This affects SystemC tools, which are now built and connected on a per module basis to avoid mistakes with the configuration.

The SystemC tools have been re-worked for improved consistency with other Simics tools.

Refer to the SystemC Library Programming Guide for information.

Global Time Queue
A new global time queue has been added to each cell in a simulation. This queue should be used instead of an arbitrary clock in the system when a global time queue is needed.
Port Objects
A new port object concept has been introduced that will eventually replace the existing port interfaces. Using the new hierarchical object support, one sub object, called port object, is created for each interface that an object implements. This removes the previous inconsistency in the configuration system where some implemented interfaces were named (i.e. port interfaces) and some were anonymous.

3 Detailed List of Changes Since 5

This section provides a list of minor changes since the Simics 5 version that was current at the time of the initial Simics 6 release.

Minor Changes