06-11-2012, 05:36 PM
Electrical Design Automation: An Essential Part of a Computer Engineer's Education
1Electrical Design Automation.pdf (Size: 363.06 KB / Downloads: 30)
Abstract
The past two decades have seen an explosion in
engineering technology, due in large part to design
automation tools. It is obvious that engineers need to learn
to use these tools, but we would insist that it is equally
important for engineers to learn the principles upon which
these tools are based. Such knowledge allows engineers to
play an active role in the development of new tools, and to
formulate realistic expectations about future developments
in design automation. We identify three major areas of
electrical design automation, physical design automation,
simulation, and high-level synthesis. We have developed
course requirements for each area, and provide a list of
important topics within each area. For each of the areas,
we identify textbooks and other educational materials. We
also provide recommendations for laboratory exercises, and
provide pointers to course materials on the world wide
web.
Introduction.
Every year the explosion in the computer industry continues
as one technological barrier after another is surpassed. Every
year “the experts” predict that the limits of current
technology will be reached “soon.” Every year the experts
are proven wrong. Indeed, even the rate of change is
accelerating every year, with one revolutionary new
technology being introduced on the heels of another. A new
generation of processors becomes available before the
preceding generation can be fully exploited. A hard disk that
was considered top-of-the-line just two years ago is now
obsolete and unavailable. The technological revolution is
not confined to the computer industry. The computer
industry is only the most visible tip of a universal explosion
in technology that is occurring in virtually every field of
engineering. Complex electronic devices of all kinds are
becoming available at lower and lower prices. Today’s
video camera will certainly be obsolete within a few months,
and be replaced by a device costing far less than today’s
model. Similar stories could be told about advances in
materials sciences, improvements in aircraft design, new
developments in flexible manufacturing systems, and in
virtually every other type of engineering design.
Rocks, Hammers, and Sky Hooks
Different types of engineering require vastly different types of
design tools. So much so, that there is virtually no
common ground between design automation for electrical
engineering (say) and design automation for mechanical
engineering. Before dealing with specific issues, it is
necessary to restrict the focus to a single area of engineering.
Because of the focus of our department and research, we will
concentrate on the area of computer engineering, and to a
lesser extent, electrical engineering.
Design automation of electrical devices, or ECAD as it
is usually called, can be broken down into several distinct
areas, the most important of which are Physical Design
Automation, Simulation and Testing, and High-Level
Synthesis. These areas fit into the general framework
illustrated in Figure 1
Simulation and Design Verification
Simulation and design verification are the most important
and time-consuming parts of the design process. This is
understandable since bugs found during simulation are easy
to fix, while those found in the final product are expensive
and time consuming to repair. In the case of high-profile
circuits such as microprocessors, bugs in the final product
can have far-reaching consequences that go beyond the
engineering laboratory to a company’s bottom line.
Oddly enough, simulation is something that everyone
believes they already understand. Like many commonly
held beliefs, this is not true. At least a portion of the course
must be devoted to reassuring students that this “really is
how simulators work.” and dispelling false notions that they
may have gotten elsewhere.
Simulation techniques can be broken into several
categories that are organized more-or-less around the level of
the circuit model. In other words, a design consisting of
logic gates must be simulated differently from one consisting
of transistors. At the highest level are models that are
written in high-level languages such as C, PASCAL, or
VHDL. (VHDL is a high-level programming language with
special features for specifying circuits and simulation
techniques.) Because of its immense popularity, it may be
desirable to introduce some VHDL at the beginning of the
course. However, VHDL modeling tends to be much like
ordinary high-level-language programming, and will do little
to enhance the student’s knowledge of simulation
algorithms. Our preference is to skip high-level modeling
and move directly to gate-level simulation, which is more
commonly known as logic simulation. We also begin the
course with a two-lecture review of logic design, to make
sure that students have not forgotten this material.
Survey Courses
Because we have a number of researchers in the area of design
automation, we prefer to organize our course around one of
the major areas, and offer the course repeatedly for additional
credit. However, other departments may prefer to offer a
single standard course that covers the basics of all areas. In
physical design automation, the essential topics are
Kernighan-Lin (min-cut) partitioning, channel routing,
global routing, and min-cut based placement. In simulation
the essentials are delay models, including the basics unitdelay,
zero-delay, and multi-delay models. The basics of
event-driven and compiled code simulation should also be
covered. In high-level synthesis it is necessary to cover the
basics of behavioral synthesis, especially in-time scheduling
and force-directed scheduling. These topics, taken together,
should give the student a general idea of how designautomation
tools work.