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

ID 784383
Date 4/01/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.2.1. Intel® Simics® Simulator for Intel FPGAs Capabilities

Use Cases

Intel® Simics® simulator is used for a variety of virtual platform related tasks as follows:
  • Pre-silicon embedded software (bootloaders, drivers, and user application) development
  • Verification
  • Debugging and continuous integration
  • Customer enablement.
Note: Co-simulation is currently not supported.

CPU Architectures

Intel® Simics® simulator has model support for almost all popular processor architectures. For Intel FPGA devices, Arm* processor architectures are supported.

Modeling and Languages

Intel® Simics® simulator provides support for SystemC. The domain-specific DML language provides unparalleled TLM-level modeling productivity and maintenance efficiency. You can also write models and extensions to Intel® Simics® simulator in C, C++, and Python languages. Intel® Simics® simulator comes with a rich API set that enables user-written modules and extensions to do anything with the platform.

Performance

Intel® Simics® simulator is fast. It can boot to Linux prompt quickly, allowing interactive use of the virtual platform. The simulation engine in the Intel® Simics® simulator is multi-threaded, allowing processor models and other parts of the simulated system to run in parallel for best performance.

Scalability

The Intel® Simics® simulator is built to simulate large systems. With optimizations to how memory and disks are managed, very large disks and memory sizes many times that of the host can be easily simulated. With multi-threaded execution, fast performance, and distribution, even large networks of hundreds of target systems can be simulated. Intel® Simics® models range from a single core with a few peripherals to a full system integrated by several Intel FPGA devices.

Integration

Intel® Simics® simulator can integrate all kinds of models. If you can link the model to C language, the model can run in the Intel® Simics® simulator. In addition to hardware models like processors and devices from third-party vendors, Intel® Simics® simulator can integrate detailed processor architecture models, memory system and cache models, physics models for embedded hardware, networking models, and so on.

Features

Intel® Simics® simulator supports:

  • Scripting of all functionality
  • Real world (Ethernet, serial, USB) connections supporting SCP, SSH, TFTP services
  • Distributed simulation
  • Scaling to large systems with hundreds of processors
  • A rich API
  • Several modeling languages
  • Interaction through command-line interface (CLI) and a simple graphical user interface (GUI).

Automation

Intel® Simics® simulator supports automation of target systems and target system software using scripting. It is easy to integrate into workflows, like continuous integration and automated regression testing and can be run like any other command-line tool.

Debug Support

Intel® Simics® simulator supports the debug of software using symbols files, C/C++ debugger, full hardware inspection with all devices and register names, step by step execution, trace generation, advanced breakpoints, and connection to remote debuggers such as GDB and the RiscFree* debugger in Ashling* RiscFree* IDE for Intel® FPGAs.