DEVELOPMENTS IN THE FIELD OF VLSI
There are a number of directions a person can take in VLSI, and they are all
closely related to each other. Together, these developments are going to make
possible the visions of embedded systems and ubiquitous computing.
1. Reconfigurable computing:
Reconfigurable computing is a very interesting and pretty recent development in
microelectronics. It involves fabricating circuits that can be reprogrammed on
the fly! And no, we are not talking about microcontrollers running with EEPROM
inside. Reconfigurable computing involves specially fabricated devices called
FPGA's, that when programmed act just like normal electronic circuits. They are
so designed that by changing or "reprogramming" the connections between numerous
sub modules, the FPGA's can be made to behave like any circuit we wish.
This fantastic ability to create modifiable circuits again opens up new
possibilities in microelectronics. Consider for example, microprocessors which
are partly reconfigurable. We know that running complex programs can benefit
greatly if support was built into the hardware itself. We could have a
microprocessor that could optimise itself for every task that it tackled! Or
then consider a system that is too big to implement on hardware that may be
limited by cost, or other constraints. If we use a reconfigurable platform, we
could design the system so that parts of it are mapped onto the same hardware,
at different times. One could think of many such applications, not the least of
which is prototyping - using an FPGA to try out a new design before it is
actually fabricated. This can drastically reduce development cycles, and also
save some money that would have been spent in fabricating prototype IC's
2. Software Engineers taking over hardware design?:
ASIC's provide the path to creating miniature devices that can do a lot of
diverse functions. But with the impending boom in this kind of technology, what
we need is a large number of people who can design these IC's. This is where we
realise that we cross the threshold between a chip designer and a systems
designer at a higher level. Does a person designing a chip really need to know
every minute detail of the IC manufacturing process? Can there be tools that
allow a designer to simply create design specifications that get translated
into hardware specifications?
The solution to this is rather simple - hardware compilers or silicon compilers
as they are called. We know by now, that there exist languages like VHDL which
can be used to specify the design of a chip. What if we had a compiler that
converts a high level language into a VHDL specification? The potential of this
technology is tremendous - in simple manner, we can convert all the software
programmers into hardware designers!
3. The need for hardware compilers:
Before we go further let us look at why we need this kind of technology, that
can convert high-level languages into hardware definitions. We see a set of
needs which actually lead from one to the other in a series.
A. Rapid development cycles.
The traditional method of designing hardware is a
long and winding process, going through many stages with special effort
spent in design verification at every stage. This means that the time from
drawing board to market, is very long. This proves to be rather undesirable
in case of large expanding market, with many competitors trying to grab a
share. We need alternatives to cut down on this time so that new ideas
reach the market faster, where the first person to get in normally gains a
B. Large number of designers.
With embedded systems becoming more and more
popular, there is a need for a large number of chip designers, who can
churn out chips designed for specific applications. Its impractical to
think of training so many people in the intricacies of VLSI design.
C. Specialized training.
A person who wishes to design ASIC's will require
extensive training in the field of VLSI design. But we cannot possibly
expect to find a large number of people who would wish to undergo such
training. Also, the process of training these people will itself entail
large investments in time and money. This means there has to be system a
which can abstract out all the details of VLSI, and which allows the user
to think in simple system-level terms.
There are quite a few tools available for using high-level languages in circuit
design. But this area has started showing fruits only recently. For example,
there is a language called Handel-C, that looks just like good old C. But it
has some special extensions that make it usable for defining circuits. A program
written in Handel-C, can be represented block-by-block by hardware equivalents.
And in doing all this, the compiler takes care of all low-level issues like
clock-frequency, layout, etc. The biggest selling point is that the user does
not really have to learn anything new, except for the few extensions made to C,
so that it may be conveniently used for circuit design.
Another quite different language, that is still under development, is Lava.
This is based on an esoteric branch of computer science, called "functional
programming". FP itself is pretty old, and is radically different from the
normal way we write programs. This is because it assumes parallel execution as
a part of its structure - its not based on the normal idea of "sequence of
instructions". This parallel nature is something very suitable for hardware
since the logic circuits are is inherently parallel in nature. Preliminary
studies have shown that Lava can actually create better circuits than VHDL
itself, since it affords a high-level view of the system, without losing sight
of low-level features.
WHAT SORTS OF JOBS DOES AN ELECTRONICS ENGINEER DO?
As mentioned above, the main job functions in this industry are Design, Product, Test, Applications and Process Engineering. For the sake of clarity, product engineering and test engineering functions are described separately, but it is most efficient to combine these two functions into one engineer because of the interdependency and overlap of skills, tasks and job functions.
1. Design Engineer:
Takes specifications, defines architecture, does circuit design, runs simulations, supervises layout, tapes out the chip to the foundry, evaluates the prototype once the chip comes back from the fab.
2. Product Engineer:
Gets involved in the project during the design phase, ensures manufacturability, develops characterization plan, assembly guidelines, develops quality and reliability plan, evaluates the chip with the design engineer, evaluates the chip through characterization, reliability qualification and manufacturing yield point of view (statistical data analysis). He is responsible for production release and is therefore regarded as a team leader on the project. Post production, he is responsible for customer returns, failure analysis, and corrective actions including design changes.
3. Test Engineer:
Develops test plan for the chip based on specifications and data sheet, creates characterization and production program for the bench test or the ATE (Automatic Test Equipment), designs test board hardware, correlates ATE results with the bench results to validate silicon to compare with simulation results. He works closely with the product engineer to ensure smooth release to production and post release support.
4. Applications Engineer:
Defines new products from system point of view at the customerís end, based on marketing input. His mission is to ensure the chip works in the system designed or used by the customers, and complies with appropriate standards (such as Ethernet, SONET, WiFi etc.). He is responsible for all customer technical support, firmware development, evaluation boards, data sheets and all product documentation such as application notes, trade shows, magazine articles, evaluation reports, software drives and so on.
5. Process Engineer:
This is a highly specialized function which involves new wafer process development, device modeling, and lots of research and development projects. There are no quick rewards on this job! If you are R&D oriented, highly trained in semiconductor device physics area, do not mind wearing bunny suits (the clean room uniforms used in all fabs), willing to experiment, this job is for you.
6. Packaging Engineer:
This is another highly specialized job function. He develops precision packaging technology, new package designs for the chips, does the characterization of new packages, and does electrical modeling of the new designs.
7. CAD Engineer:
This is an engineering function that supports the design engineering function. He is responsible for acquiring, maintaining or developing all CAD tools used by a design engineer. Most companies buy commercially available CAD tools for schematic capture, simulation, synthesis, test vector generation, layout, parametric extraction, power estimation, and timing closure; but in several cases, these tools need some type of customization. A CAD engineer needs to be highly skilled in the use of these tools, be able to write software routines to automate as many functions as possible and have a clear understanding of the entire design flow.