#1 Things that are not taught as part of undergrad curriculum, but should be
The general under-graduation curriculum for electrical/electronics & communication engineering tries to introduce the various theoretical aspects [ signals and systems, control system theory, digital electronics, analog electronics, VLSI, etc.] before riffling through some implementation aspects [CMOS Integrated design/layout/simulation, FPGA design/programming, etc.]. This is helpful to get a basic understanding of design of simple circuits like an amplifier, comparator, standard cell gates [AND, OR, XOR, etc.], however leaves a gap in understanding of the various EDA tools, standard design flows used in industry and automation tools for efficient workflow.
EDA Tools
Most universities will have access to either Cadence or Mentor Graphics (now part of Siemens) Electronic Design Automation tools or softwares. Back when I was in under-grad, I thought that a particular software/tool can be used for either analog or digital circuit design - knowing that they can be from different vendors or companies. That's not the case. For analog circuit design, Cadence Virtuoso is perhaps the most widely used in the industry today. For digital circuit design, Cadence IES or Mentor Graphics Questa are popular simulators. There are free and open source tools available as well like ModelSim or IcarusVerilog for digital simulation and LTSpice or Ngspice for analog simulation.
Why do we have to categorize them as different set of tools if both analog or digital circuits are made of same transistors you ask?
Good question. To answer that at a very high level, think of the digital simulators to be concerned with a discrete level in terms of amplitude of the signals (i.e. 1 or 0 corresponding to Vdd supply voltage and Ground supply voltage) as well as discrete time steps referred to as delta time steps. At every delta time step, the simulator evaluates the digital functions and keeps a track of all signals that change or remain the same. In case of analog simulators, the entire range of signal amplitudes (0 V to Vdd and even below 0 V or higher than Vdd) along with much finer time steps are recorded. On top of it, the digital simulators are specific to running transient simulations whereas the analog simulators apart from running transient simulation can also run a wide range of simulations like AC, DC, noise, etc.
Standard Design Flows
This can be specific to a particular company but at again at some high level there is a similarity. The journey from specifications (specs) to final implementation and sign-off (gdsii database sent for fabrication) has various steps involved. Each step is like a cog in a wheel without which the machine fails. I will talk about the digital and analog design flows in a later post some day. (Yes, there are some differences here as well)
Automation Tools
Perhaps the most underrated skill when someone starts a career in either analog or digital design. The tools for simulation and implementation like layout, physical design, timing analysis, etc. will have some sort of GUI based interface which most engineers love to use when getting started. However, it becomes almost impossible to keep using the GUI as one works with complex designs and simulations. This is something which one has to experience oneself to really understand. One might need to run a 1000 different testcases for verification of a RTL code, collect the simulation data for each testcase and prepare a summary for the tests which passed or failed. Good luck doing that with GUI alone. On the other hand, one can learn how to automate the EDA tools itself using different set of tools like Linux Shell scripts [tclsh, bash], Python, Perl, Tcl/Tk - choose your poison. Same argument goes for analog simulations as well though some languages might be specific to analog flow like using Cadence Skill, Ocean, etc. This can make a difference between a person sitting in office entire day and night to execute simulations and preparing presentation for tomorrow's status update meeting or executing specific scripts to automate execution of simulations, data analysis and even preparing the presentation automatically while one sleeps peacefully at home. I will try to talk more on these some day.
Comments
Post a Comment