Intel® Simics® Simulator for Intel® FPGAs: User Guide

ID 784383
Date 7/08/2024
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

2.3. Intel® Simics® Simulator Architecture

The Intel® Simics® simulator runs on a host PC and simulates target hardware that is represented by a virtual platform. The target software runs on this virtual hardware.

The Intel® Simics® simulator handles modular Intel® Simics® component models that are made up of independent functional components. An Intel® Simics® module is a dynamically linked object that is offered as part of the Intel® Simics® simulator installation as a binary. These binaries make it possible to start using Intel® Simics® simulator without having to build anything.

This modular approach has the following advantages:

  • Modules can be built independently which reduce rebuild time when you need to change only one module.
  • The simulation system can be updated at run time, which makes it possible to update the virtual hardware configuration, add additional functionality, or enable/disable features at run time.

The Intel® Simics® simulator architecture consists of the following modules:

Figure 2.  Intel® Simics® Simulator Architecture
Table 3.   Intel® Simics® Simulator Architecture Components
Module Name Description
Intel® Simics® Simulator Core Provides simulation services through the Intel® Simics® API. The Intel® Simics® API offers a large set of functions that are used to interact with the simulator this includes configuration management, simulation control (running, pause, breakpoints, haps, checkpoints), scheduling, time and event handling, logging, memory operations, module loading, multithread and scaling, file access, processor operations and cache operations.
Target System Model of the virtual platform that simulates the real hardware specification over which the real target software can be executed. From the target software perspective, the model must accurately reproduce the behavior of the real hardware.
Target Software Software that wants to be exercised during the simulation. This software normally is integrated by several layers of software that includes drivers for making use of the hardware components in the target system, bootloaders, operating system and applications.
User Interface Includes components that allow the you to interact with the simulator. This interaction can be done using a graphical user interface (GUI) from which you can control the execution of the simulation and also perform any debug activity.

You can also interact with the simulator with the Intel® Simics® simulator CLI from which you can do most of the actions that can be done from the GUI, but also can enable and disable features or modify the default configuration of the target. The CLI is implemented in Python to provide you an easy way to interact with the simulator.

Simulator infrastructure Consists of a large set of features that Intel® Simics® simulator makes available to you for providing an aggregated value to the tool. Among the list of features, it can be mentioned the network capability to connect with the real world outside of the host PC, the integrated debugger, the scripting control capability, the python interpreter which can be used to extend the functionality of the target system or to automate a process, among many others.