With software development becoming the fastest growing component of NRE costs for both SoC and final product development, the challenges of developing, integrating, validating, and optimizing software in the context of complex hardware architectures are dominating the embedded design process. Thus it has become a necessity to make a fast, accurate, and low-cost simulation model of the hardware available early to the embedded software team.
Vista™ Virtual Prototyping provides an early accurate functional model of the hardware to software engineers even before the hardware is available. It can run software on embedded processor models at speeds on-par with actual hardware. Vista Virtual Prototyping is seamlessly integrated with Sourcery™ CodeBench Virtual Edition to provide additional capabilities and benefits, such as the visibility and control to debug complex software/hardware interactions and the ability to optimize the software to meet final product performance and power goals.
- Early availability of hardware model for software integration
- Visibility for debugging complex software/hardware interactions
- Sufficiently fast simulation model for OS and application software validation
- Alignment of hardware design with software requirements
- Meeting embedded device performance and power goals
- Integration of hardware views into native software development environment
Features and Benefits
- Industry standard SystemC / TLM 2.0 virtual prototype executable
- Validation of software against early hardware model
- Fast software execution speed par with BSP and final product speeds
- Visibility of key hardware registers and attributes during software debug
- Non-intrusive software profiling trace technology
- Advanced embedded software analysis capabilities based on Sourcery™ Analyzer
- Support for large industry-standard TLM models and platforms
- Common view of HW/SW product performance and power analysis on same timeline
- Configurable Virtual Prototype Kits (VPKs) for commercial SoC platforms
- Intuitive software debug environment based on Sourcery™ CodeBench Virtual Edition
Virtual Prototype Creation
A Vista virtual prototype is a stand-alone simulation executable derived from a transaction-level modeling (TLM) platform created in Vista. Vista automatically creates a stand-alone virtual prototype executable that can run on Linux and Windows workstations. Because it is a stand-alone executable, the Vista virtual prototype can be invoked, at either the command line or from the Mentor Embedded Sourcery CodeBench Virtual Edition IDE environment. Sourcery CodeBench is used by thousands of embedded software engineers. CodeBench offers a consistent IDE and user experience through various hardware representations that can be interchangeably plugged-in, from a pure Vista virtual prototype model, to RTL emulation in Veloce, to physical broads, as well as hybrid combinations of these.
In addition, the user gains the benefits of added debug visibility into the hardware, tightly integrated HW/SW performance and power analysis, and control of file system interactions.
The Vista virtual prototype can run in two modes. The functional mode supports integration, validation, and debugging of the software, while the performance mode allows analyzing and optimizing the software to achieve better performance and reduced power consumption. In functional mode, simulation speed is in the range of hundreds of MIPS, equal or close to real-time speed. In performance mode simulation speed is about two orders of magnitude slower than in functional mode. Vista Virtual Prototype allows users to "switch" between functional and performance modes during run time.
-Remove "Simulation control" tab
Vista Virtual Prototyping enables software to be developed, integrated, and validated on a virtual prototype that has equivalent or better capabilities to those found in either hardware prototypes or final production boards. Vista Virtual Prototyping consistently and deterministically runs the actual software that will later run on the final product. It supports running UI, application stacks, middleware, firmware, and drivers on top of operating systems; such as Linux and Android, as well as running software in bare-metal mode. It is tightly integrated with Mentor Embedded runtime platforms under the Sourcery CodeBench unified SW IDE. Mentor Embedded runtime platforms include the Mentor Embedded Linux Development Platform and the Nucleus Real-Time Operating System (RTOS). It provides the facilities and the methodology for building Linux kernels and for booting the operating system in a matter of seconds.
Vista Virtual Prototyping can be linked with physical devices, such as terminals and displays on the host workstation, allowing software engineers to control the virtual prototype. It also allows using the host workstation’s USB and Ethernet connections to run the virtual model under realistic environment conditions. Using semi-hosting, Vista Virtual Prototyping allows designers to print messages to the screen, print the current simulation time, and set error message verbosity. It also provides visibility and profiling facilities non-intrusively, such that these do not affect the behavior of the prototype and have only a minor effect on its simulation speed.
Vista Virtual Prototyping provides the most widely used software debug environment, Sourcery CodeBench, which combines the visibility and control of hardware objects with tight integration into the software IDE. It provides sufficient visibility to debug software and identify hardware bugs without requiring software engineers to use hardware-oriented tools and testbenches.
Sourcery CodeBench Virtual Edition provides the software engineer with direct visibility and control to the hardware objects in the platform, including viewing and setting all peripheral registers and local variables as declared by the TLM platform creator. The user can conduct tight HW/SW debug by setting breakpoints in the hardware that stop the hardware simulation once the breakpoint condition occurs and then single stepping through the software instructions. The user can view the state of the hardware objects resulting from the execution of each software instruction.
Virtual Prototyping offers additional HW/SW debugging capabilities by allowing software engineers to manipulate files from the embedded OS prompt that is booted on the virtual prototype. This enables users to develop, build, and debug software packages on the host, then access them from the target OS console without the need to re-simulate and re-boot the OS on the virtual prototype. It also supports customizing CPU core tracing by providing pre-defined callbacks on significant events; for example when a core has entered a sleep mode.
The Vista Virtual Prototyping CodeBench Virtual Edition IDE provides unique non-intrusive tracing technology that allows software engineers to have backdoor access to software execution with a variety of debug, profiling and coverage features, without the need to recompile their images and without affecting execution behavior. It allows generating variety of profiling traces to support analysis of different performance and power metrics of the virtual prototype. These metrics are affected by both the hardware attributes of the platform and the embedded software running on the platform cores and CPUs. It allows viewing average latencies, throughput, and utilization views on any port, bus, or sub-system along with software analyses views to enable the user to optimize the software to improve device performance. Dynamic and static power views of the platform allow the user to estimate the power consumed and optimize the application software and the software controlling the hardware to reduce power, reduce heat, and extend battery life.
Sourcery CodeBench Virtual Edition provides combined software and hardware analysis views through its built-in Mentor Embedded Sourcery Analyzer product for analyzing Linux, RTOS, or bare-metal software. It integrates data from single and multi-core CPUs running on the Vista virtual prototype with hardware trace data, and it uses Analysis Agents: a library of popular and intuitive system analysis and visualization tools that address the most common analysis views desired by software engineers. These include analysis views of the CPU state, file system activity, function calls, process and thread state, and various statistics. These, combined with hardware attributes, such as register values, socket latency, throughput and transaction value, Cache hit and miss ratios and power values, allow the user to analyze the impact of their software operation on the final product functionality, performance, and power. Sourcery Analyzer also allows the user to write and integrate their own custom agents to support custom analysis views of their software.
Virtual Prototyping Kits
Mentor® Embedded Virtual Prototype Kits (VPKs) are off-the-shelf, configurable virtual prototypes for industry commercial SoC platforms. The virtual prototypes are offered either as standalone VP executables or can be selectively and automatically installed and easily configured from within CodeBench Virtual Edition for debugging and analyzing bare-metal and Linux applications. The Virtual Prototypes primary hardware attributes are highly configurable through a companion parameters file with default settings that can be modified by the user.
The following Virtual Prototype Kits are supported:
- Altera Arria-V SoC
- ARM(r) Versatile Express for Cortex(r) A-9
- Freescale i.MX6 Dual/Quad Applications Processor
- Freescale QorIQ T4240 Virtual Prototype
- Xilinx Zynq-7000 All Programmable SoC
Vista is an integrated TLM 2.0-based solution for architectural design exploration, verification, and virtual prototyping. Learn more
Delivers a new approach to software developers and enables them to remain in their native software development environment across all stages of hardware development. Learn more
A powerful embedded design analysis solution that combines unique profiling and analysis engine with data visualization capabilities. Learn more
A powerful toolset that helps embedded software engineers to efficiently develop and optimize software for a variety of targets and various domains including Automotive, Connectivity, Graphics, and Video applications. Learn more
Using a Virtual Prototype: A Sample
Download: These example and application note provide information and background for using a sample virtual prototype (VP) created using the Mentor Vista product. You can run software on this VP using the Sourcery...
Vista Virtual Prototyping
White Paper: Vista Virtual Prototyping provides an early, abstract functional model of the hardware to software engineers even before the hardware design is implemented in RTL. It can run software on embedded processor...