Posted by Tom De Schutter on April 25th, 2014
The question in the title has been one of the most asked questions by my son lately. Or as my wife says, his brain is 90% focused on Minecraft and 10% on everything else. For those not familiar with Minecraft, it is a lego-like computer game or as the Minecraft website reads: “Minecraft is a game about breaking and placing blocks.” It has literally captured the imagination of my son and to lesser extent, of my daughter as well. They can build houses, boats, clouds, towers, bushes shaped like pokemons and so on. And since building the same stuff over and over again would be boring, the question of “What should I build next?” comes up a lot. As with any building environment (virtual or real), what you can build is bound only by the available building blocks. So the Minecraft developers have provided users with all sorts of building blocks like wood and stone. Other blocks like water and lava are also available and can be used to achieve interesting effects. Different coloring options put the finishing touch to any construction.
When you think about building a virtual prototype for your next-generation SoC, the question “What should I build next?” is actually a fundamental one. While you could argue that creating a virtual prototype that reflects your entire SoC will fully enable the software team to bring up, debug and test all software stacks, doing so would make you miss out on one of the fundamental advantages of virtual prototypes, which is to align the virtual prototype availability with software bring up and testing tasks to enable the software team to start as far ahead as possible before hardware availability. Yes it is possible to create a virtual prototype that reflects an entire SoC, but it will take a lot longer to deliver. Instead it is much more advantageous to stage the virtual prototype development such that each drop enables another piece of the software stack. On top of that, the resulting virtual prototype deliverables are actually not only available earlier to the software developers, they are actually better as they will simulate faster and it is easier to debug a minimal system rather than something that reflects every single piece of the SoC.
Once you know what to build when, the next question is all about available building blocks. Without the right set of transaction-level models you can imagine any virtual prototype you want, but it will be hard to meet the modeling deadlines. Luckily there are now models available for just about every commercial processor, infrastructure and interface IP. And advanced modeling tools make it easier to create models representing custom IP, pulling in IP-XACT or other data sheet related information to construct the model structure to which functionality can be added. Now the only thing that is missing is some coloring options to make your imagination go wild …
So when your children talk about something they built in Minecraft, just tell them what fantastic virtual prototype you created or used. You can even brag about all the bugs you eliminated in your software. Let’s see if they were able to successfully battle an equal amount of those so called creepers attacking them in Minecraft. Your job will all of a sudden start to look a lot cooler!