Virtual prototypes are an engineer’s tools for living in an alternate world…and getting something done.
For more than half a year now, I am living with two dragons at home. Luckily from the outside they look just like regular children, so we didn’t have to upgrade our house. But we have to remind our little dragons to switch to human languages when they talk to us.
It is interesting, and also a bit sad, to realize that as we “grow up,” we lose the ability to let our imagination go wild and really live and play in an alternate world (outside of video games). And it is not that children just live in their own private imaginary world. They actually build up a world that their friends experience as well. My daughter has two dragon relatives at school—a dragon sister and a dragon cousin—and when they meet at school they greet each other as “hey cuz” and “hey sis.”
Now I don’t want to claim that virtual prototypes will let you relive your childhood. Although there might be a good idea there, they do help you to create a “reality” that is not yet available, which can be shared with many people. They also help to make that “new reality” come to life more quickly. Whether it is for porting OSes, developing drivers and firmware for new mobile application subsystems, developing software for the next generation of multi-purpose printers or debugging software that will run on the dozens of MCUs in today’s cars, virtual prototypes are helping software developers to create the ideal infrastructure to develop, test and debug software without having a dependency on hardware availability. While virtual prototypes probably won’t make you feel like a dragon or any other cool mythical creature, they might make you feel like you gained powers that you didn’t have before.
A key advantage of virtual prototypes is that they are software models representing the target hardware. And as such, they don’t suffer from some of the compromises related to physical hardware. When debugging on a virtual prototype, you don’t have to worry about accidently breaking something by trying out corner cases or inserting faults. This gives you full control—aha, finally some of those feelings of invincibility that you had in your youth are coming back—to test the software.
As software becomes even more pervasive in our daily live, testing every corner case and trying out security risks, faulty data packages or just plain unexpected user input, has become more important than ever. So please use virtual prototypes to completely test all software corner cases and security threads, because in “real” life we all want our children to be as safe as they are in their own dragon world.