Virtual prototypes are often created for software developers before hardware is available. It helps make software available when the hardware arrives. Virtual simulations can also provide better insight into the operation of the software because it is possible to probe any aspect of the system. Hardware limits the debugging capabilities especially when it comes to real time debugging.

Creating virtual prototypes is not always an easy task and getting an accurate simulation is critical to developing software that will work on the target hardware. Virtual prototype generation tools make this task easier.

Synopsys has been delivering tools to create virtual prototypes for years. The new Virtualizer Development Kit (VDK) is designed to make that process easier. In particular, it has a number of reference virtual prototypes available now concentrating initially on Arm architectures. It can handle everything from a quad Cortex-A15 to the latest big.LITTLE architecture (see Little Core Shares Big Core Architecture).

The system generates full reference designs that include typical peripherals such as touchscreens plus DesignWare USB3.0 and Ethernet. A number are available and evaluation versions are available online. Chip vendors can use the kit to develop custom configurations that include the hardware they have. This means processor specifications as well as peripherals.

The resultant executable programs provide a simulation environment that can be linked to conventional, 3rd party debuggers. There is out-of-box support for Android, Linux and multicore task migration. The virtual platforms also provide more advanced multicore, Eclipse-based debugging support. This includes fully scriptable peripheral scenarios.

73751 _fig1sm
Figure 1. Power debugging is possible when virtual platform designers adress power usage and management.

Power debugging (Fig. 1) is also part of the mix. This allows designers to indicate how power utilization performs for various run modes as well as for application execution. The virtual platforms support the range of power management methodologies such as dynamic voltage and frequency scaling as well as run/stop idles modes. This then allows software developers to experiment with different run/idle management strategies as well as testing applications to see how well they perform. The virtual architecture supports Linux's System Wide Power Management framework as well as other operating system power management frameworks.

Development tools support the processor and power management trace services. The OS-aware support allows developers to track details like how Android's Dalvik virtual machine operates in real world environments. The VDK allows the creation of different power models for a functional virtual platform so designers can determine the optimum architecture. Virtual platforms provide better insight to power utilization than what is possible with a hardware platform.