Years ago, an engineer named Alan Goodrich gave me a unique piece of advice: Never specify 1k resistors for weak pullups because that resistor value is too popular. If your lab runs low on 1k resistors the day that your assembly technician builds your board, the technician must set the board aside until the purchasing department orders more resistors. A less popular value such as 910 Ω works just as well and is always in stock.
Goodrich's suggestion, although not the most important piece of advice I've ever received, has served me well over the years. Here are 10 system-design tips that I hope will serve you at least as well:
- With the development of a new product, limit your use of new and untried technical innovations to five. If you use more than five, the inevitable engineering and production delays will likely cripple your program. If you use fewer than five, your competitors may soon catch up. In the development of an international standard, the correct number of new and untried technical innovations is zero. The best standards organizations invent nothing—they merely specify how to use existing technology in interoperable ways.
- Never fully utilize any ASIC or custom IC. As you approach 100% utilization, the difficulty of routing and placement approaches infinity. Even worse, when it comes time to revise a fully utilized chip, the tightly packed design resists further changes and additions.
- Ignore the maximum toggle frequency for a flip-flop. You can achieve the max-toggle specification only on a lucky day with no loading, a perfect power supply, and the inverted Q output wired directly to the D input using a zero-length, superconducting wire. Other circumstances fail to deliver such a rosy outcome. Most designs run at no more than one-third the max-toggle rate.
- High-speed designs require expensive, high-performance probes. Once you obtain a decent probe, immediately pin a big red tag to it that reads, "Out of calibration—do not use." The tag may discourage others from taking it. If the probe doesn't already have a serial number, engrave your mark onto the connector.
- Stress-test everything. Test transceivers at 110% of rated distance. Test backplanes at 110% of rated trace length. (You should build a special backplane to do this test.) Test crosstalk at 110% of rated crosstalk. To get this effect, stack up a board with the layers 5% higher than normal. When you measure crosstalk and ringing, measure the actual rise times of the devices that are in place, and microsection the board to determine the as-built trace geometry. Think about what would happen with faster rise times or less-than-optimal trace geometries.
- Build plenty of test outputs into every ASIC. To observe complex state transitions within the device, consider wiring the state variables through internal ROM tables to DAC outputs. Observe the DAC outputs with an oscilloscope. For example, in a serial-link protocol, you can assign the ordinary sequence of start-up states to successively higher voltages, producing a stair-step pattern on start-up. Wiring the state outputs from both ends of the link to an X-Y storage-scope illustrates the start-up sequence with startling clarity.
- With passive components, never specify the most extreme value listed in a catalog. No additional values exist because the manufacturer has yield problems with the most extreme value and, therefore, cannot extend their processes. If you pick the next-to-last value, you will experience fewer difficulties with shortages and out-of-stock parts.
- Always include a few spare traces on a backplane. You never know what additional features your customers may demand a couple of years down the road.
- Your first version of a product need not adhere to the final form factor. If it does, you have wasted a lot of valuable engineering time by mechanically squashing everything into the final packaging. In the first version, it's more important that you can reach all of the system's components to verify that the system functions properly. Spread out the first version to make room for plenty of test pads and connectors. If you have a card cage, let the boards hang out the front.
- Never hire anybody that isn't first rate, even in a pinch. You'll regret it later. Hire people like Goodrich that think about every detail in their design.