
What is a VLAB VDM
A VLAB VDM is an all in software embedded computer running in VLAB on a host computer, as a virtual machine, for the purposes of development and test of target compiled user software.
VLAB VDMs are configurable to a range of different hardware system architecture specifications, including industry standard or proprietary specifications, and capable of loading and running software which is target compiled and built for these specific architectures. A VDM configuration also includes pre-built and pre-qualified low level operating software, such an OS/RTOS and BSP or SDK software package. These packages provide a rapid path for users to load, run, and test user space software, including middleware and applications software and entire software stacks, out of the box.
VLAB VDMs offer a range of IO interfaces, including for HMI, networking and serial IO, for connection to other VDMs (Virtual to Virtual), to the host (Virtual to Host), or to other third party test tools in software or in hardware.
VLAB VDMs provide a number of features expected of virtual machines, such as isolation between VDMs, checkpointing and snapshot/clone creation for exchange of VDMS between users, load balancing and reliable migration of a VDM from one host to another.
Optionally, VLAB VDMs may include built-in run time tools for introspection, inspection, and control of the state and of the ongoing execution of the target software and the virtual hardware, enabling advanced debug, tracing, profiling, test, and analysis only possible on a virtual machine.
Which VLAB VDM
Selection of a VLAB VDM starts with the Processor Architecture. With each Processor Architecture, the features and capabilities included are complimentary to the most common applications.
VDM Hardware Features | ||||||||
---|---|---|---|---|---|---|---|---|
ARM | PowerPC | RISC-V | RH850 | TriCore | ||||
Cortex-A V8-A | Cortex-M V7-M | Cortex-R V8-R | e500 e5000 e6500 | RV32EC/IC | G3/G4 | TC3xx | TC4xx | |
Configurable Hardware Features | ||||||||
Processor Type | √ | √ | √ | √ | √ | √ | √ | √ |
# of Processor Clusters | √ | √ | √ | √ | ||||
# of Processors per Clusters | √ | √ | √ | √ | √ | VP | √ | √ |
Topology | √ | √ | √ | √ | √ | VP | √ | √ |
Memory Map | √ | √ | √ | √ | √ | VP | √ | √ |
Interrupt Map | √ | √ | √ | √ | √ | VP | √ | √ |
GPUs # and Type | √ | √ | √ | √ | ||||
Compute Accelerators # and Type | √ | √ | √ | √ | √ | √ | ||
IO # and Type | √ | √ | √ | √ | √ | VP | √ | √ |
Peripheral Devices # and Type | √ | √ | √ | √ | √ | VP | √ | √ |
GPU Configurations | ||||||||
OpenGL | √ | √ | √ | |||||
OpenGL (ES) | √ | √ | √ | |||||
CA Configurations | ||||||||
OpenCL | √ | √ | √ | |||||
OpenGL | √ | |||||||
Cuda | √ | |||||||
HMI Devices | ||||||||
Input: Touchscreen, Mouse and Keyboard | √ | √ | √ | |||||
Output: Console and Display | √ | √ | √ | |||||
UART or VirtIO console terminals | √ | √ | √ | √ | √ | VP | √ | √ |
Block Storage Devices | ||||||||
Flash/NVM, USB, eMMC/SD | √ | √ | √ | √ | VP | √ | √ | |
Network IO (Virtual to Virtual or to Host) | ||||||||
Ethernet | √ | √ | √ | √ | VP | √ | √ | |
USB | √ | √ | √ | √ | √ | |||
CAN | √ | √ | √ | √ | √ | VP | √ | √ |
LIN | √ | √ | √ | √ | √ | VP | √ | √ |
FlexRay | √ | √ | √ | √ | √ | VP | √ | √ |
Onboard Devices | ||||||||
SPI | √ | √ | √ | √ | √ | VP | √ | √ |
I2C/I3C | √ | √ | √ | √ | √ | VP | √ | √ |
VDM Operating Software | ||||||||
Linux | √ | √ | √ | |||||
FreeRTOS | √ | √ | √ | √ | √ | √ | ||
Erika | √ | √ | ||||||
QNX | VP | VP | ||||||
VxWorks | VP | |||||||
Deos | VP | VP | ||||||
PikeOS | VP | VP | ||||||
uSAR | VP | VP | VP | VP | VP |
VLAB Edition Features | ||
---|---|---|
Express | Suite | |
Configure | √ | √ |
Run / Pause / Continue | √ | √ |
Snapshot save / restore / clone | √ | √ |
Multi-threaded simulation | √ | √ |
Interactive software debug | √ | √ |
Command-line interface | √ | √ |
Scripting and Automation | √ | |
Software Instrumentation | √ | |
Virtual Hardware instrumentation | √ | |
Scripted breakpoints and actions | √ | |
Tracing | √ | |
Software coverage analysis | √ | |
Software test tools | √ | |
Software profiling | √ | |
Fault injection and analysis | √ | |
Third party tool integrations | √ |
VLAB Features | ||||
---|---|---|---|---|
Essentials | Workstation | Server | Enterprise | |
Multiple VDMs of the same architecture | √ | √ | √ | |
Multiple Architectures | √ | √ | √ | √ |
Multiple VDMs on the same host | √ | √ | √ | |
Multiple hosts | √ | √ | ||
Checkpointing VDMs | √ | √ | √ | √ |
Cloning VDMs | √ | √ | √ | |
Moving a VDM from one host to another | √ | √ | √ | |
Exporting and importing VDMs | √ | √ | √ | √ |
Remote access to a VDM | √ | √ | √ | |
Sharing a VDM between users | √ | √ | ||
VDM groups | √ | √ | √ | |
VDM data aggregation | √ | √ | √ | √ |
Ready, Set, Go….
There is no large learning curve to using a VDM for the first time. In the same way that you would use a hardware board, a VDM is configured and set running, before loading and executing the unmodified, target compiled application software.
Interaction is available through keyboard, mouse, touch screen or displays connected to the VirtIO interfaces, as well as access to the console and file system.
Debugging application code is possible using the same debug clients that attach to hardware (e.g. GDB, Trace32 or Multi).
Unlike many hardware environments, the all in software VDM solution means that scripting, automation and inclusion into a Continuous Test and Integration system are all available.
Start using VDMs
Included in any VLAB Workstation, Teams or Server bundle, is a VLAB VDM. The flexibility of VLAB means you can start small and scale to meet your needs. If you are unsure what might be the best fit for you, then one of our team can optimise a solution.