A world leader in embedded and mobile software.
Wind River Simics
Bookmark and Share
Home : Products : Wind River Simics

Transform Your Product Development Life Cycle

Wind River Simics is a full system simulator used by software developers to simulate any target hardware from a single processor to large, complex, and connected electronic systems. This simulation enables the target software (board support package, firmware, real-time operating system, middleware, and application) to run on a virtual platform the same way it does on the physical hardware.

This fast and accurate virtual environment enables engineering, integration, and test teams to adopt approaches and techniques that are simply not possible on physical hardware. For example, developers can freeze, save, email, and restore the whole system; they can view and modify every device, register, or memory location; and they can run the whole system in reverse to find the source of a bug.

Using Simics, companies can adopt new approaches to the product development life cycle, yielding dramatic reduction in project risks and development costs and improvement to both product quality and engineering efficiency.


Overview

Full System Simulation
Wind River Simics simulates the full system

Full System Simulation

Wind River Simics simulates much more than a single processor, system-on-chip (SoC), or board. It can simulate the entire system from a single platform all the way up to racks of platforms, with each running different operating systems on different processor architectures. This full system capability allows all developers, testers, and integrators to debug/test and integrate the system as a single unit rather than working with individual system pieces.


Wind River Simics simulates all hardware devices and runs the full, unmodified target software stack

The high fidelity of Simics virtual platforms allows them to run the entire software stack—from boot loaders to hypervisors to operating systems to applications. There is no need for stubbing or recompiling the target software to run in a simulator. Simics virtual platforms can run the same binaries that run on the physical hardware.

With Simics, real software loads run fast enough for everyday application-level analysis, testing, and debugging. Simics streamlines the finding of elusive bugs, with unique capabilities such as reverse execution, run-to-run repeatability, device inspection/control, and full system save/restore.

Simics provides visibility into any target device, register, memory location, or other state, regardless of whether it is visible to a JTAG port or an agent-based software debugger. Furthermore, it is possible to access these devices to inject faults into the system hardware during the testing process.

Simics virtual platforms are easily and quickly configurable. Compared to hardware, setting up a particular target system is much faster. Configurations of the virtual platform can be saved and accessed at a later point in time, making it very convenient for ensuring consistent hardware setups within a development organization and customer support situations. Simics also supports rapid prototyping and the ability to quickly determine the impact of a potential hardware change on software performance.

Simics Product Family

The Simics product family includes the following products:

  • Wind River Simics Hindsight: Provides the user interface and simulation framework for running system models
  • Wind River Simics Ethernet Networking: Allows network connections to be made between virtual boards and between virtual boards and a physical network
  • Wind River Simics Accelerator: Increases performance of large multi-board simulations by distributing the simulation across multiple host CPU cores
  • Wind River Simics Analyzer: Provides analysis capabilities of the entire product system, even if it is comprised of many boards, target architectures, and real-time operating systems (RTOSes)
  • Wind River Simics Model Builder: Enables customers to build their own models of their target hardware
  • Wind River Simics Extension Builder: Enables customers to extend, adapt, and customize the Simics framework for their particular workflow or needs
  • Wind River Simics Virtual Platforms: Models the target hardware system, whether it is multi-core, multiprocessor, or multi-board

Why Use Wind River Simics?

Reduce Risks

  • Reduce risks associated with new technologies such as multi-core.
  • Reduce risks from hardware availability delays.
  • Reduce risks associated with large, complex systems that are comprised of many different boards and are networked together.
  • Reduce risks associated with products that contain mixed target architectures and target RTOSes.
  • Reduce the schedule risk of show-stopper bugs.

Reduce Time-to-Market

  • Reduce the time it takes between iterations of hardware prototypes.
  • Identify and fix critical system bugs sooner.
  • Begin software development before the first hardware prototype is available, or even before hardware design is complete.
  • Begin system integration before all components of the system are available.
  • Decrease the time it takes to reproduce a bug and identify its source.
  • Create a software ecosystem even before a physical product is available.

Reduce Costs

  • Replace labs of equipment with virtual targets.
  • Reduce the number of iterations of hardware prototypes that are needed.
  • Reduce the number of hardware prototypes needed by staff.
  • Reduce costs associated with shipping physical hardware between development teams.

Increase Quality

  • Reduce the time it takes to run regression tests by running on multiple virtual platforms.
  • Insert hardware faults to test for software robustness.
  • Speed up or slow down virtual time to test for load-handling capabilities.
  • Automate testing by using scripts.
  • Easily maintain multiple customer configurations of the product to expedite troubleshooting and training.
  • Ensure consistent hardware setups across an organization.

Increase Engineering Efficiency

  • Find and fix bugs faster because you have complete control over your entire system.
  • Become more productive with virtual target hardware on every engineer's desk.
  • Optimize hardware/software co-development to produce higher-quality systems in less time.
  • Equip every engineer with the development platform, or even the full system.
  • Reduce engineering friction from working with inconvenient physical hardware.
  • Share models, checkpoint files, and projects with any Simics users, regardless of their Simics host configuration.
  • Bypass limitations of physical hardware by having complete visibility and control of the virtual target.
  • Reliably reproduce bugs at any location, at any point in time, on any host.

 

Improved Product Development

Organizations using Simics across the full product life cycle are able to see significant reductions in risks, time-to-market, and costs. It also improves quality of the overall product and efficiencies of the various engineering teams.    

Simics enables you to develop products differently. This methodology change uses characteristics of virtual platforms that are not found in their physical hardware counterparts. Simics extends agile software development and iterative software development techniques to the target hardware and system disciplines.

Simics enables "impossible" approaches to the development of electronic systems. The benefits extend across nearly every phase of the product life cycle, from system definition through deployment and maintenance.

Reduced Cost and Schedule

Contrasting sharply with designs that are just a few years old, today’s electronic systems are much more complex, employing a variety of processor types, operating systems, and application stacks that until recently would not have been combined within a single product or solution. Unfortunately, as these systems have grown in complexity, the development tools and processes that were refined when single processors and basic client/server architectures were the rule have not kept pace.

Simics customers and industry-accepted software-development cost and schedule estimation tools show that Simics can decrease development costs by 35% to 50% and reduce schedule time by 20% to 25%. These key reductions are accomplished by allowing development teams to develop software and fix bugs faster and integrate and test earlier and by improving the general parallelism of software and systems development costs.

Because Simics introduces a set of capabilities and approaches that are new to product development teams, the adoption of virtual platforms is often an evolving process that results in successively more value to the organization. As Simics usage increases across an organization, more models are created, and developers become more familiar with its capabilities, resulting in more value and benefits.

Virtual: Better Than Real?

Not only does a virtual platform simply replace a physical target platform, it enables development techniques and approaches that are not possible with physical hardware. Some of these capabilities include the following:

  • Checkpoints/snapshots: Freeze it, save it, restore it, and run—just as if you had never stopped.
  • Easy sharing, reusing, and deploying: Models are software files; so are checkpoints.
  • Full system stop: Instantly freeze the whole system, in its running state, and then debug.
  • Run-to-run repeatability: If you've seen a bug once, you can hit it over and over again.
  • Reverse execution: It's easy to solve problems after they've happened. Run the whole system in reverse. Use hardware and software breakpoints to quickly find bugs.
  • System visibility, control, and fault injection: Nothing is hidden from developers; everything can be modified and controlled.
  • Scripting and automation: Precisely automate data streams, control, and interaction of any virtual platform.
  • Flexibility and scalability: Modify system configuration scripts to run and test different hardware configurations and see how they affect the software behavior.

The virtual platform enables marketing, hardware, and software teams to leave behind a paper trail of documents and define the system architecture in a hands-on, dynamic, and demonstrable manner.

Engineers can perform what-if analysis and explore alternate architectures, including the following:

  • Migration of a function from software running on a CPU to an independent accelerator (e.g., ASIC, FPGA, CPLD)
  • Investigating a change in the number of platforms (e.g., configuring a system with three routers and six switches or two routers and seven switches)
  • Verification of an application's correct operation after porting from a single-threaded platform to a multi-threaded platform

Marketing teams can show a working virtual model of the system to prospective customers at the very outset of the project:

  • Proposed features can be demonstrated and fine-tuned with the customer.
  • Usability issues can be discovered and corrected.
  • Customer-specific scalability issues can be vetted.
  • Sales teams can begin their sales engagement immediately.

When virtual platforms are used on a product's previous generation, they are especially valuable to the system design process. Here, the flexibility and scalability of virtual platforms allows new hardware configurations to be created and validated against the previous generation's application stack. This approach can eliminate or resolve many system design and software issues from the very outset of the project.

Software and Systems Development

Engineers' daily challenges around hardware availability, debugging, integration, and test are compounded by aggressive development schedules, expanding feature lists, and organizational cost-cutting measures.

Simics virtual platforms mitigate each of these high-level issues by not only replacing hardware but by enabling "magic" development approaches that just are not possible on physical hardware (e.g., full-system stop, run-to-run repeatability, full visibility and control, reverse execution, check-pointing, and scripting/automation). The result is that virtual platforms are superior in many ways to physical hardware for software and systems development. In fact, after using Simics for just a matter of weeks, many software developers lament the return to physical hardware.

Software Debugging

There are three phases to software debugging: repeating the bug, isolating the bug, and fixing the bug. When working with physical platforms, the successful completion of these steps requires a high degree of developer skill and experience. Simics on the other hand dramatically trivializes repeating the bug, dramatically eases bug isolation, and speeds correction of the bug. We have several examples of software developers who struggled for months to repeat and isolate bugs on physical hardware, only to find them in days with Simics.

To repeat the bug on physical hardware, the system or application may have to be restarted hundreds or thousands of times, each time using a new set of input parameters, data streams, or operator actions that are hoped to provoke the bug.

Simics virtual platforms are different. They operate in a virtual world where every data stream and I/O parameter can be scripted or captured and provided again and again on all subsequent runs. As a result, the system always starts from the same point thus ensuring that all system functions, timing, activity, and results are also duplicated. This ensures that a bug that has occurred once can be trivially repeated simply by loading an existing checkpoint (snapshot file) and rerunning it. By using checkpoint files that ensure a bug will occur, developers can easily collaborate with worldwide team members, all on a single bug.

For developers who want the randomness of physical hardware, virtual platforms can be provided with different "seed" values. This will provoke different system responses—just like physical hardware—while still maintaining full repeatability for any given set of seed values. New seed values are used to provoke different system responses for corner case testing. These seeds can be provided using manual, automatic, or metric-driven verification techniques.

Once the bug can be reliably repeated, the developer must find the source of the bug. Traditional hardware-centric debug methods require an iterative approach, where an initial breakpoint will be set and the system run until stopped. After the system stops, standard debugging tools are used to view the CPU registers and stacks—all with the goal of finding out whether the problem has occurred yet. If the problem has occurred, another breakpoint located before the previous breakpoint is set, and the application or system is re-run. If the problem has not yet occurred, a breakpoint is set after the previous breakpoint and the application is re-run. Using this technique, developers eventually are able to find the precise offending lines of source code.

Debug procedures change completely with a virtual platform that can run in reverse. Now developers have the benefit of knowing when the problem occurred and they can backward step through the code, observing all hardware and software breakpoints along the way, to quickly find the precise point of origination. Such an approach does away with the iterative "guess/stop/restart" technique required by physical hardware and instead takes a reverse linear path that begins after the problem has occurred and ends at the point where the bug begins.

Often the effort to fix a bug, whose source has been isolated, is much less than the effort to duplicate the bug and isolate its source. Developers do however benefit from those same capabilities for check-pointing, reverse execution, and run-to-run repeatability that are helpful in repeating and isolating the bug.

Progressive System Integration

Physical hardware requires that each subsystem be completed before it can communicate and interact with other subsystems. Simics however requires only that the white-box functionality of each subsystem is duplicated at the level needed to "fool" the rest of the system. Often the effort needed to provide this level of white-box functionality—just enough so that other subsystems can operate in their normal manner—is orders of magnitude less than the effort to develop the missing subsystem's software.

Wisely using the incremental model approach allows system integration to begin solely on virtual platforms, expanding to a combination of virtual and physical hardware, and finally to fully physical hardware as those components become available.

After the product has been delivered, Simics virtual platforms allow organizations to encapsulate customer-specific configurations, provide enhanced customer support, and more easily create and present hands-on training programs.

Improved Customer Support

Many systems can be custom-configured according to need. Some customers might require 15 routers, 20 switches, and 10 gateways. Others might need just five routers, four switches, and one gateway. While this scalable approach is excellent for maintaining low costs, high quality, and product flexibility, it can be problematic for customer support teams. Often support teams must mirror a user-specific equipment setup by reconfiguring dedicated support labs. This approach is expensive. It requires dedicated equipment and perhaps several days of setup, and it adds delays to customers who may be waiting for critical bugs to be fixed.

Support teams benefit from virtual platforms due to the following:

  • Easy to configure/reconfigure: When a customer adds another router to its system, it takes just a few minutes to add a new device into the customer-specific model.
  • Fast to run: It takes just seconds to load and run a customer-specific model.
  • Parallel: Virtual platforms can be used to duplicate the problem even while the "real" equipment remains in service. Customer engineers and product developers can work in parallel, using identical models and checkpoints, to find the same problem.
  • Repeatable: When the problem has been duplicated just once on the virtual system, it can be duplicated again and again. This aids problem identification and resolution.

Training Programs

Most of these aspects also enable training programs. With virtual platforms, custom training can be created, scripted, interrupted, and resumed the next day and delivered to any location.

An additional benefit of virtual platforms is that any type of system failure can be presented to the trainees. The full control and visibility of virtual platforms allows trainers to cause any specific device to fail, data to become corrupt, or data streams to be compromised. Virtual systems prepare operators for real-world situations much better than physical systems.

Just as custom training programs can be created and delivered to customers, so can specific customer demonstrations. With virtual platforms, field teams can walk into customers' offices with just a laptop and show them exactly how their product—and specific configuration—will work. When combined with full automation and scripting, remote application engineers can package a demo for easy presentation by sales teams.

 


Specific Market Challenges

Wind River Simics has an extensive model library that contains thousands of devices, making it a useful solution for just about any market. The Simics model library supports target processors including AMD x86, ARM, Intel Architecture, MIPS, Power Architecture, SPARC, and various DSPs. Models for a wide range of devices also exist including memory, UARTs, DMA and interrupt controllers, disk drives, PCI, MIL-STD-1553, SRIO, Ethernet, and so on. In addition, Simics Model Builder allows users to model specific devices such as FPGAs and ASICs.

Aerospace and Defense

Simics addresses key challenges facing the A&D market. These include risk reduction associated with using new hardware technologies such as multi-core; system complexity; contractor/subcontractor relationships; limited availability of target hardware by development and testing teams; and managing products with life spans of 20 to 30 years. In addition, rigorous testing requirements (such as those of DO-178B) can significantly increase the time it takes to finish a project.

Networking

Telecommunications and data communication infrastructure systems are large, complex hardware systems. The typical system consists of a rack with a large number of hot-pluggable boards or a network of standalone machines connected in a complex network topology. Developing these systems is a matter of system architecture, software development, hardware-software integration, and long-term maintenance and test. Simics can significantly reduce capital equipment expense for these customers by minimizing the amount of physical lab hardware that is needed while at the same time provide complete virtual systems to all of their developers, testers, and system integrators.

Industrial

Industrial devices including automotive, medical, and industrial control applications are increasingly part of a larger, connected system. As a result of this, developing a single board in absence of the larger system can be quite risky. Often multiple configurations of these devices must interplay with varying configurations of the system. The full system simulation capabilities provided by Simics enable developers to develop, debug, and test their products in the context of the full system.

Semiconductors

In past years, it was sufficient for a semiconductor manufacturer to just provide the silicon to its customers, leaving all software tasks to developers and users. However, as silicon has become more complex, such as with multi-core systems-on-chip (SoCs), semiconductor manufacturers are discovering that it is necessary to equip their customers with software tools that specifically utilize the hardware technology. Furthermore, to maintain a competitive market advantage, they need to have an ecosystem of software support in place long before their device is available. Simics virtual platforms can do this 12 months or more before silicon availability, giving semiconductor manufacturers design wins long before silicon is even available.

High-Performance Computing

High-performance computing (HPC) and server manufacturers create the most capable computer systems in the world by connecting hundreds or thousands of processor cores in a single coherent system. HPC developers must design not only the processors, interconnects, and I/O systems but also the operating system, drivers, and software stack that enable such a system. Thus, the ability to deliver such critical software concurrent with hardware release is crucial to maintain and improve your market position.

Simics has been proven to reduce development risk and time-to-market for HPC and server systems. By enabling software design, implementation, and porting to be performed in parallel with the hardware design, time-to-market for a brand new or derivative system can be reduced by months, quarters, or years. From the initial firmware on boot processors through to operating-system ports and application software development and validation, Simics provides a virtual environment that lets software get developed in a more efficient manner with lower risk and higher quality.

 

Supported Targets

Wind River Simics provides an extensive model library that makes creating a custom model of virtually any hardware system quick and easy. The Simics model library is constantly changing, so check our online database for current availability. Even if a model of your particular device does not yet exist, a model of it can be created either by Wind River or by a customer using Simics Model Builder.

This is a partial list of devices that have been modeled for Simics:

Target Devices
  • Memory and system controllers
  • Interrupt controllers
  • DMA controllers
  • Ethernet controllers
  • PCI and PCI Express controllers, bridges, and devices
  • Serial ports
  • Timers
  • USB devices and disks
  • I2C controllers and devices
  • RapidIO controllers and devices
  • FireWire controller and devices
  • SCSI controllers and devices

Target Operating Systems

  • Wind River Linux
  • Wind River VxWorks
  • Windows 95, NT, 2000, XP, Vista
  • Linux
  • Any commercial RTOS
  • Other proprietary RTOSes
  • Any in-house RTOSes

Target Processor Architectures

  • Power Architecture
    • Freescale e300
    • Freescale e500
    • Freescale e500mc
    • Freescale e600
    • Freescale e5500
    • Freescale MPC603e
    • Freescale MPC750, MPC755 ("G3")
    • Freescale MPC74xx ("G4")
    • IBM PowerPC 403 core
    • IBM/APM PowerPC 405 core
    • IBM/APM PowerPC 440 core
    • IBM PowerPC 464 core
    • IBM PowerPC 476FP core
    • IBM PowerPC 750FX/GX
    • IBM PowerPC 970, 970MP
  • SPARC Architecture
    • SPARC-V8
    • SPARC-V9
  • Renesas
    • H8S microcontroller
    • SuperH SH-4
  • Texas Instruments
    • TMS320C64x
    • TMS320C64x+
  • 68000 Architecture
    • Freescale 68040

 

  • Intel and AMD
    • Intel80386
    • Intel80486
    • Intel Pentium
    • Intel Pentium MMX
    • Intel Pentium Pro
    • Intel Pentium II
    • Intel Pentium III
    • Intel Pentium 4
    • Intel Pentium 4E
    • Intel Pentium M
    • Intel Core
    • Intel Core 2
    • Intel Core i7 (Nehalem)
    • Intel Xeon variants
    • Intel "Sandy Bridge"
    • Intel Atom variants
    • AMD Athlon
    • AMD Athlon 64
    • AMD Opteron
  • MIPS Architecture
    • MIPS 4K
    • MIPS 5K
    • PMC RM7000
    • PMC E9000
    • Cavium cnMIPS 64
    • RMI XLR MIPS64
  • ARM Architecture
    • StrongARM
    • XScale
    • ARM7 (v4)
    • ARM9 (v5)
    • ARM11 (v6)
    • ARM Cortex A9
  • Tensilica
    • Xtensa

Contact Us

Contact us today to find out how Wind River Simics can answer all your business issues and help you to develop, run, and manage device software better, faster, at lower cost, and more reliably.

Request more informationWind River Privacy Policy »