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

ID 784383
Date 4/01/2024
Public
Document Table of Contents

2.1. Device Model and Virtual Platforms

An electronic device is developed to carry out a specific purpose for which it is created.

In the case of the Intel FPGA devices, these are electronic devices that incorporate one or more CPUs capable of executing the embedded software binaries created to achieve a specific purpose like interacting with other hardware components either inside of the same silicon or part of the physical board where the device is soldered. The software the Intel FPGA device executes is referred to as target software, and hence the behavior of the device model is expected to match the real hardware. It is also expected that the target software used in the real hardware is the same as the one used by the device model.

In general, a device model acts as a piece of software that pretends to mimic the device functionality. When referring to the Intel FPGA devices and their Intel® Simics® model, the simulation is expected to be accurate from the perspective of the software that is run on it. This means that it is not too important to be accurate at a low level of the hardware simulated if the result of the instructions executed are accurate. To achieve this, the device modeling is done at transaction level (TLM) reducing in this way the complexity of the model and in this way allowing to have a simulation performance comparable to the one observed in the real hardware1.

Additionally to the CPUs in the Intel FPGA devices, there are many other internal components that also can be seen as independent devices, and these are also modeled using the same principles. Based on this, all the device models can be integrated into a single device model relatively easy.

The following components are also modeled:

  • CPU instruction set
  • Device registers
  • Memory maps
  • Memory devices
  • Interrupts
  • Peripherals
  • Interfaces with other devices (PCIe, Serial interfaces, ethernet, and so on)

The modeling approach followed to model a device model can be extended to the board or platform where the Intel FPGA device is mounted. This means that the complete platform can also be modeled including additional components mounted on the board which are also modeled as devices. These board components can be flash memories, Ethernet ports, LEDs, USB connectors, switches, and so on. The final modeling of the platform is referred to as a Virtual Platform and similarly to the real platforms it is possible to have a different configuration on the board (different components) for the same Intel FPGA device model.

In the Intel® Simics® simulator, the virtual platform is simulated in a computer, referred as the host computer or host PC and the virtual platform is also referred to the target system.

Figure 1. Modeling Hardware with a Virtual Platform
1 Software and System Development using Virtual Platforms: Daniel Aarno, Jakob Engblom, Morgan Kaufman, 2015