With VLAB, you can be both a user of virtual platforms, leveraging their full capabilities, and also a virtualization engineer, creating or extending virtual platforms.
Every VLAB user can virtualize their development environment and automate their flow in limitless ways, changing the way embedded development is done.
What VLAB can help you do…
Development Process. By replacing hardware with software, all hardware tasks can be replaced by software tasks, enabling a true agile process for embedded.
Target System. Develop software models and virtual prototypes of specifications, architectures, and designs, for rapid all-in-software working builds of the target system throughout the development cycle.
Development Platform. Leverage virtual prototyping to replace or supplement target hardware with virtual platforms for software development, debug, and test.
Test Environment. Virtualize test benches, test instrumentation, and test execution, for full execution control, unlimited visibility, and perfect repeatability. Create test scenarios impossible with real target hardware, including of faults and fault injection.
Hardware in the Loop. Connect via virtual software interfaces with real target hardware, such as hardware emulators, FPGA prototypes, and development boards, and with test hardware, real networks, and I/O.
Development Process. Automate the embedded development process, with rapid, automated, and continuous build, run, and test iterations from definition through to final release.
Build and configure. Any of the tasks of assembling and configuring a target system or a test bench, the integration and set up of target hardware, software, and tests, can be programmed and automated for repeat execution.
Test and Run. The entire test and run process, the execution of tests, and processing of test results can be programmed and automated for rapid and repeat execution and regression. Manual interactive user sessions can be recorded as automation scripts and replayed at will.
Measure, Analyze, Optimize. Execution runs, data measurement, analysis, visualization, and report generation can be programmed and automated for repeat execution and under varying configuration, test, and data measurement conditions. Optimization and calibration procedures can be automated or replaced by new algorithms not possible with real hardware, and at speeds much faster than real time.
Experiment. Trial and explore target system specifications, new candidate architectures, and designs in all-in-software environment for rapid virtual prototyping, simulation and emulation.
Debug. Create conditions, test scenarios, and collect execution data in ways not possible in a real hardware system, including of faults, fault injection and failure scenarios. Find the causes of functional issues or performance bottlenecks and the consequences of design decisions.
Analyze. Deep dive into data using VLAB’s built-in or new user defined analysis algorithms. Go beyond individual runs and observations, visualize and identify system level patterns, issues, and opportunities for improvement.
Understand. Systematically understand the behavior and structure of a complex virtualized system with components and sub-systems coming from multiple suppliers, tools, and domains.
System. Develop working realizations of the target system under design, early and frequently, from concept definition to final release. Trial, prototype, and validate the system design early and continuously.
Software. Develop target software earlier, with the same target tool chains, operating systems, and target test environments, from the start, without waiting for hardware to be available.
Tests. Import and export software, models, modules, and platforms from other tools or environments. Exchange test cases, test results, simulation data, and analytics in standard or in proprietary user defined formats.
Continuously Integrate. Continuously integrate working builds of your target system, software, and tests, then run, test, learn and improve.
Communicate. Demonstrate and share, early and frequently, working builds of a new product, from concept to final release. Executable specifications, design prototypes, target hardware, software, test scripts, configuration and automation scripts, failing test scenarios, results, and debug and other execution data and user history, can be stored, exchanged, and replicated with ease by any other VLAB user, anywhere in the world.
Interoperate. Connect VLAB to many third party development tools, third party system simulation environments, target hardware, test equipment, and real networks.
Share. Import and export software, models, modules, and platforms from other tools or environments. Exchange test cases, test results, simulation data, and analytics in standard or in proprietary user defined formats.
How to use VLAB in each phase of development…
VLAB is designed with the goal of virtualizing and automating the end to end flow for embedded development, from the early definition phase, through to final release and support in the field.
- Model, prototype, and experiment with new architectures, varying any parameter, structure, function, or use case conditions.
- Learn and improve. Measure, analyze, validate, and optimize.
- Drive rapid design iterations across hardware and software teams to rapidly converge on a design optimal for both domains.
- Develop new target software without hardware, with the same tool-chain, libraries, operating systems, as on the real hardware.
- Debug software with full control over execution, visibility into the internal system state, and perfect repeatability of execution.
- Develop verification tests, debug and prepare for regression.
- Measure without affecting the flow of execution and collect data, including data inaccessible in a real system.
- Analyze, employ advanced algorithms to select, process and analyze the data, either online or offline.
- Visualize and report the data and the analytics. Use to optimize and calibrate the target system.
- Rapidly replicate field conditions, analyze failures, diagnose root causes, trial solutions, implement fixes, validate, release.
- Add failing test scenarios and new tests to automated regression test suite.
- Support multiple field configurations with automated configuration set up and regressions testing environments.