Last week, I went to Tel Aviv to present at the CDNLive event taking place there. CDNLive is Cadence's user meetings, and while still being mostly about hardware design and classic EDA, they added a small track about embedded software where I was presenting. The trip was quite a climate shock, going from Sweden where the puddles had just started to freeze at night to the coast of the mediterranean with 30+ degrees. The welcome was also warm, and I really appreciate the effort the local Cadence staff put into organizing the software track and the good discussions we had before, during, and after the event.
Embedded software appeared on the CDNLive schedule since Cadence has realized the importance of software in the electronics products value chain. Cadence's EDA360 vision is an attempt to point the way into a software-intense future for the hardware design industry. John Bruggeman did an excellent job in explaining just what this was all about.
The software stack that is necessary to make users and OEMs really appreciate the power of hardware already represents more than half the cost of development of a new system-on-chip. For large OEMs, software development costs are often four or more times the cost of hardware development. Users, even of industrial systems, will come to expect "app stores" with software packages that can be installed in existing hardware systems to add new features.
There are tremendous benefits to be gained from better coordination of hardware and software development, and there are many different tools that will be used at different levels of abstraction and different phases of system development. Virtual platforms like Simics will be used alongside hardware emulators, prototype hardware, and detailed hardware design models. Depending on what you do and want to achieve at a particular moment in time, different tools apply. What we need to work on are ways to integrate the tools and flow software and information back and forth between to use the best tool for each task at hand.
I think that Simics has a clear and unique role to play here, as a virtual platform that scales to really real systems and apply across the product life cycle, to hardware old and new, and this was the message in my presentation to the hardware designers we met in the software track.
The challenges here are no laughing matter. The success and failure of companies will depend on how well they adapt to this paradigm shift into a software-dominated world. Still, there is room for the occasional giggle. Just like in a Shakespearian drama, there has to be some comic relief.
I got some chuckles in my Simics demo, when I did "rm -rf *" in the root directory of my virtual Linux system. And then used reverse execution to back out of the situation (note that restarting the simulation would also have fixed the problem). Afterwards, one of the attendees told me that he had been using Simics for a while now, and that reverse execution still made him giggle every time he used it. I can understand that, I feel the same myself after five years of working with reversibility. There are things that virtual platforms can do that you cannot do in the real world, and that seem just plain magical and/or funny.