The virtual prototype builds upon the following Virtio IDE components:
1. Fast processor models: or instruction-set simulators, connected to standard software debuggers, enable the loading and execution of the real software on the prototype.
2. Hardware / peripheral models: standard processor peripherals, busses, and hardware accelerators can be captured as high-level C/C++ models, and compiled and executed on top of a system simulator, to capture the hardware portion in a design.
3. Co-simulation APIs: between the processor models and hardware simulator enable a seamless communication between the hardware and software domain.
4. Test Bench / human-machine interface models: like the keyboard and LCD of a cell phone, mimic the real appearance of and interaction with the system being designed, and generate "real" stimuli to the prototype.