Simulation Overview

Simulation Overview

Learning Objectives

After this section you will be able to:

  • Identify the different simulator options for VxWorks

There are many challenges when developing a real-time embedded project, but the hardware does not have to be one of them. Hardware simulation can be used to simulate all of the individual components of a board.

VxWorks and Simulators

When working on a project, you might want to be able to test something without the target board present. This might occur because multiple developers are sharing one board, or the board is still in development and you want to start coding. Simulators allow for the target board to be recreated in software, giving real results to what the board would give.

VxWorks provides you with options for simulators to be used with your project. Choosing one that works best at each phase of the development is key. Expand each section below to learn more about the different simulators available with VxWorks.

VxWorks Simulator (VxSim)

VxSim is an OS simulator with no deterministic behaviors. It does not act like a processor or target board, so its main use is for early application development.

VxSim is lightweight and easy to implement in workbench. It allows for work to get started early in a project but will need to be phased out once you start to add processor-specific code or start to qualify the code behavior.

The QEMU Simulator

QEMU is an open-source process simulator that supports a variety of target boards. It will simulate the board support package for the host OS, which allows it to become a target based on the underlying host's architecture. QEMU creates the same development environment as a hardware target, allowing a user to write processor-specific code.

Using QEMU allows for prototyping and development before the hardware is available.

Simics Simulator

Simics© is a true hardware simulator. This means that it can simulate the CPU, an entire board, or a system of multiple boards. This allows for Simics to interact with Workbench the same way that a hardware target would.

Simics allows you to write instruction-accurate code, meaning software development before the hardware is fully available. Simics also offers powerful analysis tools such as trace, reverse execution, fault injection, and simulation checkpoints.