dVLSI career: should I go for front-end or back-end positions in ASIC design?

(*) dVLSI is short for digital VLSI.

First, let's assume the old school "career" is still a thing for the coming decade. Second, let's assume you are not defining growth as the vertical rise in a big company. Before you say anything, becoming a manager, director and VP is commendable. Because, shit always runs downhill, it is smart to be on the top of the hill in that respect. But like every benefit, it comes with a down side as well. Office politics to name just one. And more paperwork, phone calls, meetings and planning. The higher you go, the less technical involved you will be.
Therefor, I do believe in learning to fish instead of getting a salary fish monthly. Expecting a fish is dependence. And believing your master will keep throwing you a fish forever is an illusion that persists. Just look at the numbers in the USA. The labor market develops towards flexibility and freelance workers. Inevitably other continents will follow and unravel more and more the illusion of fixed employment as the holy grail.
You see, you can't take your salary with you if you are made redundant. And, when interviewing for a new position, you will soon find out that a title is just a title. Not a birth right. Even if you were senior level 5 grade C engineer or design center manager level 2. Your title is not guaranteeing you a salary or the same position for your next employment. So, to cut a long story short, my belief is that you need to build a talent stack. Because skills and expertise you can always take with you when you get booted or jump ship. Something you always take with you and that they cannot take away when you walk out the door. Except for a lobotomy, but that is illegal in most countries around the world. Hence, your choices are important for where you can get in life. Hence the question in the title: BACK-END or FRONT-END?
  • What do you like to do?
  • What are you good at?
  • What skill has value now and in the future?

Back-end VLSI engineer

First of all, I am not a back-end engineer at all. Although I have spent a fair share of my time next to the back-end guys for congestion and clock tree issues. This means that running the back-end tools is not an issue for me. I did it a few times myself. But the expertise lies in the setup of the tools. The setup depends on the specifics of the technology node and the constraints given (# metal layers). And the expert distinguishes himself from the mediocre in the way that blocking issues are dealt with. Therein lies the value of the masters in their respective field. Be assured, I do believe that skilled back-end experts are worth their weight in gold. Surely, the team around you could precent you from showing what you are capable of. An excellent team is defined by its weakest link. In digital design logic, it is an "AND" gate.

For me, the back-end engineer is a bit like the analog VLSI design engineer. A fuzzy world where there are quite a few paths forward that could lead to a solution. Or not. That explains why I chose to go for digital design, where things are more predictable. With the right set of tools, expertise and methodology, you can make a huge difference versus the mainstream semiconductor teams.

Front-end VLSI engineer

I am a front-end digital VLSI engineer , no use trying to hide that (this is a weak reference to Ministry, "Just one fix" with the Burroughs audio samples).

I started my professional life in the nineties. If there is anything you need to know about multi-decade long VLSI designers, it is this. We did the whole front-end design of an ASIC. Because teams where just a few people, we were familiar with all the EDA tools. We were doing:
  • RTL design.
  • Verification (the right way).
  • Synthesis.
  • DFT.
  • STA.
  • Back annotated gatelevel verification.
  • Formal verification (aka ECO since eco compiler was retired).
  • FPGA prototyping.
Important things to understand here:
  • Different vendors for tools do not matter, if you can work with the synthesis tool from X, you will be able to work with the same tool from vendor Y. Recruiting with "needs to have experience with vendor Z tools is excrement of the bull.". It says more about the recruitment and the company using these recruiters.
  • One assumes today that a designer cannot master the whole front-end flow anymore. They need a DFT engineer, or a verification engineer, or a design engineer. In essence, someone with 5 to 10 years experience should be able to perform all front-end tasks. Putting engineers in a very small basket of "verification" only makes sense from resource management and recruitment perspective. It prevents engineers from growing a skill set that goes beyond just a small portion of the front-end design. A small but replaceable part of a big machine. On top of that, the connection between all front-end tasks is gone. Things are done a certain way in various stages of the project to reduce risk and to avoid time consuming (and costly!) iterations between tasks. A small example to illustrate. RTL design makes sure there are no latches in their code and that the design meets timing BEFORE the unit is verified. Today, they find latches and huge timing violations in synthesis, DFT and STA. This is EXACTLY the reason that small startups beat the big semiconductor giants on all fronts. They avoid issues upfront, reducing risk drastically with a fraction of the budget and much faster than the big ones.
The major game changer in 2020 is that we have a so called "Golden Age". The abundance of information online (mostly free) and the affordability of development boards (plus free to use software) gives almost anybody the ability to do things hands-on. For the ones that go out there and do things, they separate them from the herd. The latter category waits until they are offered a job. The former starts doing and has experience to show. What would you prefer if you were the employer?
There is no excuse possible anymore for sitting at home playing games and watching Netflix if you are unemployed. Everyone needs to take action now. Expand your knowledge. Acquire more skills.

The abundance of information has one obvious drawback, the needle in the haystack problem. Because you will find conflicting information and advice. What is the best practice: coding an FSM in a single process (always) or in two? Do you use one system clock for the whole chip or not? What are the goals behind some of the suggested coding guidelines? And what is the consequence of using a certain approach in terms of server load, server memory requirements and network bandwidth? Sure, everybody can learn to use the syntax of a Hardware Description Language or "HDL". It makes you employable. But just as a commodity. Finding your path in the jungle of information is why you need a mentor.


Front-end VLSI design has never been more accessible than now:
  • Free FPGA tools that accompany a small FPGA development board (cost +/- 100 EUR/USD). That is cheap. Invest in yourself and master a new skill!
  • Simulation and synthesis open source tools for both VHDL and verilog are available. Create a quick dummy cell library with AND, OR and not plus a flipflop. This verifies the syntax of the code you write for RTL, testbench and for synthesis.
I chose front-end design because I can develop my own HDL code outside my professional dealings. Back-end skills are in my opinion less applicable to everyday life.

And front-end is much more than digital circuits:
  • Knowledge about HDL syntax, senior designers know both VHDL and (system)verilog.
  • Basic unix commands and shell scripting. We are our own sysadmins at home!
  • C/C++, sometimes assembler. We code and program microprocessors and are avid users of Raspberry Pi, Arduino and ESP.
  • Basic Tcl because EDA tools tends to use command line configuration files in Tcl. Python scripts and for machine learning libraries.
In the end, front-end design was a good choice for me. It brought me a ton of amazing skills that I can use at home for my 3D printers, my energy monitoring, my home automation (irrigation), ... The downside is that it isn't recognized by recruiters or agencies. If there is one thing engineers don't understand is this: the viewpoint of an engineer is just one view of the world. We tend to think in truth and facts. But other profiles have different filters applied to reality. For example, marketing equals lying to technical people. Still, they sell the things engineers make. They are an essential part in sales.

Hence, to recapitulate, this is my very biased opinion:
  • Front-end design is more useful for everyday life.
  • It is much more than just HDL and digital circuits.
  • The engineer filter on life is just one filter, there are many others.
  • The abundance of info makes it much easier to get into IC design, drawback is to find the hidden gems of useful info.
  • Invest in yourself, learn new skills and build your talent stack.
That is the key, make sure luck has a chance to find you!

You can never stop learning.

This is the fate of the League of Extra-ordinary Engineers (LEE).

Applause for ourselves!!! 😂😂😂😂

A version of this article was posted on Linkedin.
Feel free to share the article and link with me on Linkedin!

Comments (0)

No comments yet.

Leave a comment