Produits

Solutions
Home > Produits > Modeling, Simulation, and Analysis Tools > VirtualTime
Demander des informations En parler à un collègue Imprimer cette page

VirtualTime

VirtualTime provides timing-accurate simulation and analysis for optimizing and troubleshooting large and complex real-time embedded systems. Jointly developed by Rapita Systems and Enea, VirtualTime is ideal for telecommunications infrastructure modeling and mobile platform development, but is flexible enough for any embedded systems application.
Download VirtualTime product sheet (443.4 kb)

VirtualTime makes it easy to build models that accurately simulate real-time behavior in embedded systems. These models, which can be developed using familiar high-level languages like C and C++, can utilize existing code, or be created from scratch.

VirtualTime makes it easy to estimate the time required to execute critical code paths. It also provides a timing-accurate a model for Enea’s OSE real-time operating system. This combination enables programmers to build real-world models that incorporate both application and system software.

Why use VirtualTime?

VirtualTime provides a valuable tool for quickly modeling, simulating and analyzing complex real-time systems. Key capabilities include:

Modeling

• Develop new systems or add new features to existing systems while still meeting performance requirements.
• Create high-level models that can be readily understood throughout your organization without specialized training.
• Create a common model description that can be used for system-wide decisions and incorporated as part of the system documentation.

Simulation

• Investigate system failures and strange system behavior. Run the same scenarios over and over again to identify and correct persistent timing-related bugs.
• Simulate the system under different loads. Enhance system stability by evaluating system performance in strange and specialized scenarios.

Analysis

• Analyze process communication flow to find architectural bottlenecks.
• Identify performance constraints and optimize accordingly. Is changing to a faster CPU or adding new hardware really necessary? Can you redesign the software architecture instead?
• Evaluate multiple system improvement alternatives. Avoid corrective actions that have little or no performance impact.
• Analyze different hardware configurations without investing in evaluation kits, new hardware or hardware patching. Experiment with different clock rates, multiple CPUs, faster/slower clock rates, and see the effects instantly.

VirtualTime in action?

The best way to understand VirtualTime’s capabilities is too see it in action in a sample system.

Create a model for your system

The first step is to create a model for the system. The figure shows a model for a system that distributes packets between a network and a DSP. This system suffers from timing problems. Specifically, the system requires a worst-case response time of 5 msec, but the actual response time is closer to 10 msec. The simulation output shows an average CPU load of 26%.

Try some simple changes

Working in a simulated environment makes it easy to try different kinds of changes. The first action taken here is to change the process priorities. However, it does not seem to help, so the problem must be somewhere else.
Another technique is to change a line of code, which makes it possible to simulate the system using different processor speeds. Here is what happens when the processor is replaced with one that is twice as fast. The average CPU load decreases to 13%, as expected, but the impact on system response times is close to nothing. Obviously, increasing the CPU speed is not the solution for this problem.

Time for some engineering

With no easy answer, it is time to return to the design phase. After a few minutes of thinking, the designer decides to try splitting one process into two. Because the model is written in C, splitting the process requires only a few small changes, and can be completed in a couple of minutes. With this change made, the system now meets its deadlines in most cases, leaving the designer to investigate the causes for less frequent failures.

Event reports

VirtualTime generates HTML reports that detail standard events and properties. However, designers can also add their own events to the reports. What’s more, doing so requires the addition of only two lines of code, one for defining the event and one for recording the event in a log file.

VirtualTime toolset

The VirtualTime toolset consists of three separate engines:
• Simulation engine. The simulation engine executes code, handles timing-accurate process execution, and exports timing information for system events to a log file.
• Analyzer engine. The analyzer engine converts the log file into a text file based on configuration settings that describe which set of events programmers want to extract from the log file.
• Report engine. The report engine constructs a HTML report from the text file provided by the analyzer engine. The visual format is configurable.

VirtualTime workflow

Because VirtualTime models are constructed using high-level languages, the development cycle is similar to that for traditional embedded software development: model, code, compile, link, simulate, analyze, generate report. This commonality enables VirtualTime users to get started and become productive quickly, thereby reducing development costs and speeding time to market.