The Universal Design Methodology is a well-defined process you can use to plan and design ASICs, FPGAs, and other digital systems.
Universal Design Methodology (UDM) is a structured method for planning and designing hardware. UDM can be used to design ASICs, FPGAs, CPLDs, and PCBs, in large or small organizations. While some differences occur in designing different hardware types, the basic technique remains the same.
UDM will help you to:
- Design a device that's free from manufacturing defects, that works reliably over the device's lifetime and that functions correctly in your system.
- Design the device efficiently, using the least amount of time and resources, including personnel.
- Plan the design efficiently by creating a reasonable schedule that allows you to understand all necessary resources and allocate them early in the design process.
UDM specifies steps (shown in Figure 1) that enable you to reach these goals. The specifics of each step vary among particular designs and technologies, but the steps remain essentially the same. By understanding each step, you'll understand how to schedule and allocate resources.
Note that the process is nonlinear. At various steps, you'll discover bugs in the design and problems with your specification, which will require you to fix them and backtrack in the process.
Specification and design
A specification enables everyone involved in the project to comprehend the entire design and his/her piece of it. The specification must include the following:
- An external block diagram showing how the device 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
- Timing estimates, including setup and hold times for input pins, propagation times for output pins, and clock cycle time
- Logic estimate—gate count or chip count
- Physical specification—package type, physical size, connector requirements, and so on
- Power consumption target
- Price target
- Test procedures
After writing the specification, it's important to have a specification review. People with a variety of backgrounds should take part in this review, because the specification is the basis for the entire design and you'll want to know immediately if anything is wrong or left out. Invite people from all groups involved with the product, including hardware and software engineering, marketing, and sales.
The specification includes the testing procedures, which are too often left for late in the design process (a mistake). Also note that the specification is a living document; many sections consist of best guesses that will become more accurate during the design process. All functionality decisions must refer to the specification, and all subsequent changes must be entered into the specification. Distribute a revised specification immediately to the entire design team.
Once a specification is written, you can use it to find vendors with technology and pricing that meet your requirements. The tools must work well together, and they must support the devices and technologies that you choose.
The design step of UDM depends on the kind of device targeted. Digital hardware differs from analog hardware. ASIC design differs from PCB design.
UDM doesn't limit or dictate design practices, but it's important that you use reliable, accepted design practices during this step.
Verification is a “super-step.” The steps that make up verification may vary by the type of device you're designing, but generally verification follows these steps: simulation, design review, physical implementation, and formal verification.
Simulation is ongoing throughout the process. You'll have to often rework the design and repeat the simulation to get the correct functionality. Small sections of the design should be simulated separately before hooking them up to larger sections. Simulation must include a functional simulation, but may also include simulation of power consumption, timing, and other parameters.
Once you've finished design and simulation, you must hold another design review. This time, get other engineers, especially ones not involved in the design, to look over the simulations and make sure nothing was missed and no improper assumptions were made. This is an important review because only with an accurate and complete simulation will you know if your device will work correctly in your system. Outside engineers will raise issues that you and your team may have missed. They'll challenge your assumptions and can discover corner cases that you haven't simulated, which will often reveal problems in the design.
Now create a physical implementation of the design. For an ASIC, this step involves synthesis and place and route, resulting in a physical layout and a set of masks for production. For CPLDs and FPGAs, this step also involves synthesis and place and route but results in a pattern of bits used to program the device. For a PCB, you'll create a netlist and produce a layout of the board's layers in this step.
Next in the formal verification step, the physical implementation must be checked to ensure that the design that was fully simulated is functionally equivalent to physical implementation of the design that was produced after the previous UDM step. At this stage, it's also important that you verify power consumption, timing, and any other critical parameters against the specification.
If all of the other steps have been followed and the other reviews have taken place, the final review of the design should be a formality; the final review will often be a simple sign off.
However, system integration and system testing is necessary to ensure that all parts of the system work correctly together. At the system integration and test step of the UDM, you have the responsibility to determine that the entire system, including the device you've designed, works correctly. You should perform a burn-in test to assure that any manufacturing defects are discovered before the product is shipped. If you've followed the procedure up to this point, chances are good that your system will perform correctly. Minor hardware problems can often be worked around by slight modifications to the system or changes to the system software. These problems need to be tested and documented so that they can be fixed on the next revision of the device, if required. esp
Bob Zeidman is an EDA consultant and author of the books Designing with FPGAs and CPLDs, Verilog Designer's Library, and Introduction to Verilog. He holds an MSEE from Stanford and a BSEE and a BA in physics from Cornell. His e-mail address is .