Hardware Design Process
Note: This article adapts from "The Universal Design Methodology— taking hardware from conception through production" -by Bob Zeidman
WRITING AND REVIEWING A SPECIFICATION
The importance of a specification cannot be overstated. A specification is an absolute must, especially as a guide for choosing the right technology and
tools and for making your needs known to the various vendors with which you will be working. It allows each engineer to understand the entire design
and his or her piece of it and to design the correct interfaces to the rest of the system. It also saves time and, thus, cost and helps you avoid misunderstanding. There is
no excuse for not having a written
specification.
A specification should include:
- an external block diagram showing how the chip fits into the system;
- an internal block diagram showing each major functional section;
- a description of the I/O pins, including
output-drive capability and
input-threshold levels (CMOS,TTL, ECL, and others); - timing estimates including, setup-and-holdtimes for input pins, propagation
times for output pins, and clock-cycle time; - logic estimates (gate or chip counts);
- physical specifications (package
type, physical size, connector requirements,
and others); - a power-consumption target;
- a price target; and
- test procedures.
After writing the specification, it is important that you schedule a review.As many people as are interested should take part in reviewing the specification, because it is the basis of the entire design. The group needs to determine whether anything is wrong with or missing from the specification.Invite people from all the departments involved with the final product, including marketing, sales, software, and applications. The specification will be the guide for the rest of the project.
Note that the specification includes the testing procedures. Too often, designers make the mistake of leaving testing for late in the design process.You should understand and specify the test proceduresearly. In this way, you can build testing structures into the design. You can also develop any software necessary for testing in parallel with the hardware development, and you can fix any testing problems that arise before you finalize the hardware.
It is important to understand that a specification is a living document.Many sections include only best guesses, but these guesses become more accurate as you design the hardware. Engineering problems arise that require compromises in function. Market changes may require changes to the specification.
All decisions about functionality must use the specification as an up-to-date reference, and you must enter all subsequent changes into the specification. With a complete and accurate specification, you immediately know the repercussions of any changes.Make sure that you immediately distribute the revised specification to the entire design team.
CHOOSING TECHNOLOGY AND TOOLS
Once you have written a specification,
you can use it to find the vendors with the
technology and pricing that best meet
your requirements. You can then choose
tools that work well together and with
the device and technology that you have
chosen.
If your project is an ASIC, you use the
specification to decide which vendors,
semiconductor processes (CMOS, TTL,
and others), architectures (gate array or
standard cell), and process sizes (1 micron,
0.8 micron, and others) meet your
requirements. If your project is a programmable
device, you use the specification
to determine the vendor, the type
of device (CPLD or FPGA, for example),
and the technology (anti-fuse SRAM, or
flash, for example). If your project is a pc
board, you use the specification to determine
the board size, number of layers,
materials, routing widths, and vendor.
If you are designing a system, the
specification determines all of its components
and the vendors that manufacture
them.
VERIFICATION
The exact steps that make up verification are open to argument and vary according to the type of device that you are designing, but you can generally break verification into the following steps, each of which is essential to the entire process:
- simulation,
- design review,
- physical implementation, and
- formal verification.
Simulation is an ongoing process
throughout the design. You should simulate
small sections of the design separately
before hooking them up to larger
sections .Obtainingthe correct functionality
requires much iteration of design
and simulation. Simulation must include
a functional simulation but may also include
simulation of power consumption,
timing, and other parameters.
Once you finish the design and simulation, you need to schedule another design review. It is important to include other engineers—even those who are not involved in the design— to look over the simulations and make sure that no one missed anything or made any improper assumptions. This review is one of the most important, because only with correct and complete simulation can you know that your chip will work correctly in your system. Outside engineers can raise issues that you and your team may have missed, challenging your assumptions and discovering corner cases that were not already simulated and often reveal problems in the design. Although this exercise can be confrontational, if you manage it correctly, it can uncover many potential problems. Note that other design reviews must occur throughout the design process. Some must be somewhat formal, with documents distributed to people and a meeting to discuss issues and implement changes. Other reviews can be less formal and may take place in small groups.
Physical implementation normally involves synthesis and placement and routing, resulting in a physical layout and a set of masks for production. For CPLDs and FPGAs, this step also involves synthesis and placement and routing, but it results in a pattern of bits used to program the device. For a pc board, this stage involves creating a netlist and producing a layout of the layers of the board.
During formal verification, you establish
whether the physical implementation
is functionally equivalent to the fully
simulated original design. In some
cases, you perform formal verification by
re-simulatingthe physical implementation
and comparing the results with the
original simulation. Some formal verification
tools compare the physical implementation
with the original design and
mathematically determine whether they
are equivalent. It is important at this
stage to verify power consumption, timing,
and any other critical parameters
against the specification.
The final review of the design should
be a formality. If you follow all of the other
steps and conduct all of the other reviews,
final review is a simple sign-off
that verifies that the design has been created
simulated, physically implemented,
and formally verified and that it is now
ready to be manufactured.
SYSTEM INTEGRATION AND TEST
At the step for system integration and
test, you are responsible for determining
that the entire system, including the device
that you have designed, works correctly.
If you have followed right procedure
up to this point, chances are good
that your system will perform correctly
with only minor problems. These minor
problems often require only slight modifications
to the system or changes to the
system software.You need to test and document
these problems so that you can fix
them on the next revision of the device.
System integration and testing is necessary
to ensure that all parts of the system
work correctly together.
When the device enters production,
you need to perform a burn-in test of your
system that continually tests your system
over a long period of time, preferably at
the extreme low and high temperatures
that it might encounter in the field. A correctly
designed device will fail only because
of the marginal physical defects that
this kind of stress testing usually reveals.