That question has become the centerpiece of system-level modeling as the number of options spins out of control.
The latest terminology to permeate the ranks of systems engineers and the makers of automation tools is, ‘What If.’
On the face of it, this concept is a progression from the old matrix model, which provided a set of possible interactions and variables. What it adds, however, is an extra layer of dependencies and interdependencies, a concept that was developed largely in the software development world. And then, of course, systems engineers add their own spin on it, building up complexities like hierarchies of function and how they relate to different power islands and various cores on a chip.
A good way to visualize this is to think of an SoC like a software stack. There are layers of abstraction that are hierarchically arranged, and then there are services that run up and down the entire stack. In the SoC world, though, you have to think of this as a 3D diagram, where you add those dependencies across cores and across functions. By the time you’re done, you’ve got a 3D model of an SoC with lots of services that work across the entire system and others that are localized.
This is basically the approach taken by these virtual models, without the brain-busting attempts to solve this all by hand. You can’t use a spreadsheet or a block diagram anymore because the possibilities are too numerous to figure out by hand and still get the final product to market on time. You’ve got variations like, What if you did it this way versus another way? What would be the impact on terms of power, performance and area? And what if you sliced down the size and increased the density? Or what if you added another layer above all of this in a stacked die model?
Not all of these pieces are available today, but that’s the general direction. ‘What if’ is no longer just a discussion over a cup of coffee. It’s a critical part of the up-front design process, and an integral part of the design several steps down the line. It’s also part of the software development and the interface discussion. And increasingly it’s part of decisions involving the foundry and the manufacturability of the device.
Engineers have been asking ‘What If’ for years, of course. What’s changed is that the number of possibilities is now to great to figure out by hand.
What do you think? What pieces are still missing from the ‘What if’ modeling tools?
–Ed Sperling
Leave a Reply