What Is
System Simulation?

Learn how teams use system simulation to improve testing and speed development cycles.

 

What Is System Simulation?

Embedded system software development and testing are often constrained by the availability of target hardware and related systemic elements. This limitation, long viewed as an immutable rule of product development, slows down embedded systems businesses. Slow time-to-market, high capital and operating expenses (CapEx and OpEx), and suboptimal quality management leave customers unhappy. Plus, current methods only allow for a limited range of security testing.

The need to support existing embedded systems across multiple hardware platforms further stresses development, testing, and IT operations (IT Ops) organizations. And while the business may want to take advantage of new methodologies such as agile, DevOps, and CI/CD, the realities of developing and testing in physical labs creates a substantial impediment to making such moves.

Advanced hardware and system simulation solutions reshape this entire dynamic. Simulation enables organizations to speed up development cycles by removing roadblocks caused by relying on physical hardware.

Why Use System Simulation?

  • System simulation is needed for continuous integration and DevOps to be possible within embedded development.
  • Testing complex systems and running automated tests is costly and difficult on physical hardware, but using a digital twin resolves that problem.
  • Before and after devices are deployed, security vulnerabilities must be tested in a safe and controlled environment, which a virtual lab provides.

Testing on digital twins is easier and less expensive than testing on physical hardware.

Problems with the Traditional Lifecycle

Figure 1. Using physical hardware and labs, the time requirements and inherent risks are relatively high

Development Delays

Developers must wait for target hardware to emerge from prototype manufacturing, which delays development efforts and hinders the ability to automate the development process. Testers also have to wait for target hardware and systems to run their test sequences, delaying the test cycle. Then the inevitable rushed testing schedules limit the extent and duration of testing, resulting in lowered quality and security.

All this hardware is costly and requires capital expenditure. In most embedded systems organizations, everyone struggles with the scarcity of target systems. People wait in line for access to equipment. Even with the best of intentions, new hardware takes time to go through “tape up” and prototyping. The setup and configuration time lengthen the time-to-market cycle, slowing down revenue growth and negatively affecting competitive strategy.

Preventing New Devops Methods

Support teams must receive and then configure a lab featuring target hardware so they can mimic customer environments. The need to support embedded systems on multiple hardware platforms further compounds these already unscalable manual processes. For example, a device maker may want to create editions of a device that runs the Linux OS on an X86 chip, Windows on X86, and Linux on an Arm® chip. This need requires dev, test, and support teams to set up three separate sets of target system configurations. Maintaining hardware setups becomes more complex as the number of configurations grows.

Software development and the creation of new technology products are moving toward more agile, collaborative, and automated methods in the form of DevOps, agile methodologies, and continuous development/continuous integration (CI/CD). However, using these approaches to build embedded systems is effectively impossible with current practices that require target hardware. Cross-functional teams will struggle to work together if they cannot easily access identically configured hardware/system instances.

For example, without sharing tools, data, and assets, it is challenging to debug a complex system. A tester may identify an issue, but it can be hard to replicate. The result is a standoff. “It works on my end” is a common refrain in this scenario. It’s the customer who suffers, though, as the product goes to market with less time spent on quality assurance than it needed.

Tool Limitations

Most currently available tools were intended for evaluating hardware or simple code, not for debugging complex embedded systems that include multiple combinations of devices. They work well in their intended environment but fall short when used to test or design complex embedded systems. The result is delayed time-to-market, higher development costs, and lost revenue and market share.

Hindered Quality and Security

Often, lack of hardware prevents teams from performing enough test cycles and varied scenarios to maintain quality and security unless the product delivery cycle stretches to accommodate the needed time. Plus, some security tests have the potential to cause damage to the equipment, so the team then has to wait for replacement hardware to continue testing. However, delays in new product introduction are unacceptable, because late product availability results in lost revenue. Companies are torn between the need to introduce new products as planned vs. the potential for customer problems. Since the customer problems are only “potential” and can be fixed later if they do occur, speed-to-market usually wins out.

Simulation Advantages

The rules of embedded system product development are changing. Virtual labs using hardware/simulation solutions such as Wind River® Simics® allow developers, product designers, and testers to work in parallel with compressed time cycles. They can take advantage of faster and more agile methodologies including DevOps. Test and support teams can dig deeper into faults and puzzling system errors while still supporting an ever-broadening portfolio of system environments. Teams collaborate using one view of the system, and they can start testing sooner by decoupling the hardware and software. As a result, they accelerate the entire development cycle.

Wind River uses Simics for its own product development. In our experience, Simics has led to a 12,000% increase in test automation and makes bug fixes 90% faster.

Read more: The Business Case for Full System Simulation in Embedded Development

Ultimately, system simulation makes an embedded systems business more profitable. Simulation puts products into the market faster, saving on development costs and related overhead, and puts products into the revenue stage more quickly. Competitive positioning improves as companies release products more quickly than their rivals. The capital investment needed to support physical labs drops significantly. Done right, the virtual lab enabled by Simics allows all participants in the development and testing process to create products of higher quality.

Enabling the full stack for modern applications and use cases

DevOps

Make continuous integration and DevOps possible for embedded development:

Enabling the full stack for modern applications and use cases

Digital Twin

Make use of a digital twin to test complex systems and automate tests that would be costly and difficult on physical hardware:

Enabling the full stack for modern applications and use cases

Security

Test security vulnerabilities in a safe and controlled environment. Before and after deploying, thoroughly test relevant security scenarios in a virtual lab:

How Can Wind River Help?

Wind River Simics

Figure 2. Simics shortens the traditional product lifecycle.

Simics allows developers to have on-demand and easy access to any target system, more efficient collaboration between developers, and more efficient and stable automation, enabling organizations to reap the business benefits of agile and continuous development practices. This allows you to shorten the product lifecycle, so you can create and deliver better software, faster — even for complex, embedded, connected, and large IoT systems.

Companies can use Simics at all phases of the product lifecycle:

  • In the design phase, teams can experiment with different hardware setups to validate design assumptions before committing.
  • In the development phase, developers can test and run software on virtual systems that perform exactly as they would in the physical world.
  • In the testing phase, software debugging no longer requires expensive hardware setups and provides perfect control over the virtual target, to isolate problems efficiently.
  • Throughout the entire process, developers work on the real target system with the same toolchain, libraries, operating system API, and operating system behavior.

One of the biggest obstacles with developing, debugging, integrating, and testing an electronic system is that target hardware and physical labs are not always available in an operational state for everyone, or access to them is subject to long waiting times. This means engineers have to make do with less-than-ideal substitutes such as reference boards or host-based development. With Simics, you can have a virtual lab that is available on demand for any team member, at any point in time, at any location in the world, and with any amount of hardware. Furthermore, the virtual lab is not just a piece of the system; it can be the entire system. This allows users to do their work in the context of a complete system instead of just a part of it.

» Learn More