I am not selling you anything
VLSI design is my passion, let me be clear about that.
I enjoy writing about it, with some melancholy, I admit.
My Quora space has 15K followers and is called https://www.quora.com/q/hw-accelerators-eating-ai.
Hardware is the foundation of software and deciding the speed and efficiency of any software algorithm.
You can read all about it on my blog here or in my Quora space.
Bottom line, I am not selling you anything, I just want to explain the reasons why digital VLSI design struggles in 2019 (see also good people leaving):
- Race to the bottom, low cost is always bad quality.
- Expensive doesn’t mean quality, most semiconductor companies can’t distinguish a good VLSI designer from a bad one.
- There are a hundred times more software engineers worldwide than hardware engineers.
- Companies that are built around software that move into hardware, tend to think hardware looks a lot like software, but it is not.
- ASIC projects are too stressful and impacting private life in such a way, people entering the sector leave within a few years.
20 years ago, ASIC designers did all front-end design tasks and prototyped in an FPGA as well. A few ten thousand gates to 100K gates. Today’s resources are either verification or DFT or STA engineer. The link between the different tasks has disappeared. The consequences are dramatic. 500 million USD for a tape-out in 10nm or 7nm is outrageous.
EDA tools for VLSI design haven’t evolved that much, they scaled with the design size, but they are still as buggy as they were in the nineties. Worse, the big three always tried to lock you in as a customer but now they do it with offering all or nothing deals, the whole tool flow. Not easy to quickly change over anymore. So they have no real incentive anymore to innovate fast and do different things. Even open source projects now put out tools for simulation and synthesis that we can use, with limited manpower. Compare this to the manpower they throw at commercial EDA tools and they still core dump regularly.
Software vs Hardware
The understanding of compilation, libraries to compile to, portability of code, version control and makefiles, where are they? There is a natural fire and water relationship between hardware and software engineers. But I do have respect for the best software engineers because they are like the best hardware engineers. They understand what version control offers and they force themselves to make maximum use of all capabilities. In these things, software people are the frontrunners. We should learn from them and improve hardware design as well. Copy best practices because they are best practices. Hardware engineers do have a tendency to stick to what works which is good in some way. Software uses it successfully so why not use it to improve hardware design as well?
Dirty Harry says: “Make my VLSI day”
Makefiles exist in hardware projects. But they are in essence just like scripts that compile all code over and over again. Makefiles are more powerful than that. That is not smart. That is stupid. Makefiles use dependencies. If you build a dependency tree, you need to compile only what you changed. That is the real benefit of a makefile. If you only changed the top testbench, why recompile the whole RTL? All regressions, all hundreds of test cases that compile everything? How smart is that? Disk space and servers are usually big issues, this is why. And the network is not even taken into account, if you compile or run a simulation on a server and the project repository where you are running it isn’t local, it needs to fetch everything over the network. Imagine 20 or 100 people doing that at the same moment in time?
Quantity vs Quality
Simple things, best practices, using tools (even if they are used by software people, wink, wink) that improve the project’s quality, reliability and reduce the risk for bugs, disappeared. ASIC projects need more servers, more disk space, more network throughput, and more resources so instead of finding hard to find key experts, they just hire more low-cost engineers. Because quantity solves the quality issues. Could you ever explain to people outside the semiconductor industry how stupid and insane those projects go? I doubt it. They will say, yeah, right and move on. Still, startups in hardware prove today they can make ASIC’s that outperform the big semiconductor companies solutions faster and with a fraction of the budget. The team’s background will always be people with experience in the whole front-end and back-end flow of chip design that are flexible and can do any of the jobs in the project.
Stupidity is something you can’t fix. While hardware is not a career, it is very worthwhile to understand hardware. It helps you understand the layers above and the direction the technology and innovation is (most likely) going. Another benefit is that I can use my design skills at home with FPGA boards (like the Terasic FPGA with ARM hard macro), raspberry pi (home automation) and Arduino (my 3D printers). I know a bit about firmware and embedded OSs (mostly linux), this is applicable at home too.
Me, myself and I plus VLSI design
I do like the hardware sector and digital VLSI design but only as a means to an end, not as a goal itself.
It is more system thinking than goal oriented.
To end with a great quote.
I read a lot of Isaac Asimovs SciFi when I was younger so much younger than today so it will be a quote from him:
“Education isn’t something you can finish.“.