Well let’s look at how software did it, that’s option one. They rewrote their tools and their flows, and they adopted what was called a microservices architecture. This was originally pioneered by Netflix and their chief cloud architect was Adrian Cockcroft. And they came up with an architecture where you deploy software applications as modular services. You just slice it all up, and everything is modular, and you share data only at the very end. There’s very little sharing that occurs between these services until later.
That’s very, very impractical for EDA (Electronic Design Automation), and HPC (high-performance compute) hardware design. We have way too many interdependencies to modularize. It is almost impossible to say I’m going to slice these big chips into these smaller pieces, because we have to deal with physical issues, physical proximity, and physical interaction at the device layers. We can’t slice it up.
On top of that, there are a whole bunch of legacy tools that we’ve been using for don’t ask me how long that are just essentially impossible to convert. You’re not going to be able to rewrite those — at least if you are going to rewrite them the risk of rewriting them is too big, because unlike software, we can’t ship patches to our hardware.