17.

[Top] [Next] [Prev]

1.4 Rapid Electronic System Prototyping

Rapid prototyping is the ability to verify the behavior of digital systems and to construct working systems rapidly. Suppose you have designed a 12-hour digital clock, and now you want to redesign it as a military-style 24-hour clock. In the old style of digital system implementation, you would need to redesign your clock substantially, tearing up a bunch of wires, changing the gates, and rewiring the design. In the new style, you could simply revise your ABEL description, execute the description on a computer to check that it behaves the way you want it to, recompile the description for a programmable logic component, and simply replace that one piece of your design with a single new component.

Rapid prototyping depends critically on a set of hardware and software technologies. We review them next.

1.4.1 The Rationale for Rapid Prototyping

Rapid prototyping allows system construction to proceed much more quickly than in the past, perhaps sacrificing some performance (speed, power, or area) in return for faster implementation. The advantage is that you can test the validity of a concept more easily if you can implement it rapidly. You have the luxury of examining a number of alternatives, choosing the one that best fits the design constraints.

It is fairly straightforward to sketch the flow of states through the traffic light controller of Figure 1.2. Yet it will take most of this textbook for you to learn the detailed process by which this flowchart is mapped into a physical implementation realized by interconnected logic gates. And even when you have your schematic, you must still wire the design together correctly before it can "light the lights!"

For rapid prototyping to be effective, it is most important to capture the design intent through high-level specifications. This is why hardware description languages are becoming so important. Computer-aided design tools can take these descriptions and expeditiously map them into ever more detailed representations of the design, eventually yielding a description, such as interconnected gates, suitable for implementation. The designer's emphasis is changing from focusing on the tactics of design to managing its strategy: the specification of the design intent and constraints, the selection of the appropriate design tools to use, and the subjective evaluation of design alternatives.

1.4.2 Computer-Aided Design Tools

Computer-aided design tools play an important role in rapid prototyping. They speed up the process of mapping a high-level design specification into the physical units that implement the design, usually gates or transistors. You can modify the input description to try a new alternative, then quickly examine its detailed realization and compare it to the original.

Besides support for exploring design alternatives, design tools can improve the quality of the design by simulating the implementation before it is physically constructed. A simulation can verify that a design will operate as expected before it is built. In general, design tools fall into two broad classes, synthesis and simulation (or verification and analy-sis), which we describe next.

Synthesis Synthesis tools automatically create one design representation from another. Usually the mapping is from more abstract descriptions into more detailed descriptions, closer to the final form for implementation. For example, a VHDL description could be mapped into a collection of Boolean equations that preserve the behavior of the original specification, while describing the system at a greater level of detail. A second tool might take these Boolean equations and a library of gates available in a given technology, and generate a gate-level description of the system.

Not all synthesis tools necessarily map from one representation to another. Some can improve a given representation by mapping a rough description into an optimized form. Logic minimization tools, using sophisticated forms of the algorithms of Chapter 2, can reduce the original Boolean equations to much simpler forms.

Simulation Simulators are programs that can dynamically execute an abstract design description. Given a description of the circuit and a model for how the elements of the description behave, the simulator maps an input stimulus into an output response, often as a function of time. If the behavior is not as expected, it is almost always easier to identify and repair the problem in this description than to troubleshoot your final product. Simulators exist for all levels of design description, from the most abstract behavioral level through the detailed transistor level. For our purposes, two forms of simulation are the most relevant: logic and timing.

Logic simulation models the design as interconnected logic gates that produce the values 0 and 1 (and others that will be introduced in the next chapter). You use the simulator to determine whether the truth table behavior of the circuit meets your input/output expectations. For the simple circuits we have examined so far, we can enumerate all the possible inputs and verify that the output behavior matches the truth table. For more complex circuits, it is not feasible for you to generate all possible inputs, so only a small set of judiciously selected test cases can be used.

Timing simulation is like logic simulation, except that it introduces more realistic delay. In other words, the elements of the description not only compute outputs from inputs, they also take time. In general, timing simulation verifies that the shapes of waveforms match your expectations for the timing behavior of the system. For example, if we modeled all the gates in this chapter as having 0 time units of delay, we would not have observed the glitches of Figure 1.23.

Simulation has its limitations, and it is important that you appreciate these. First, simulators are based on abstract descriptions and models, so they provide a simplified view of the world. A simulator demonstration that a design is "correct" does not guarantee that the "wired up" implementation will work. Logic simulators contain no electrical models. You might exceed the fan-out for a given technology, which could cripple the physical circuit, and many logic simulators would not detect this problem. Second, the simulator is only as good as your choice of test cases. The circuit may not operate correctly on the one input combination you did not test!

1.4.3 Rapid Implementation Technology

The design process, with or without CAD tools, yields a selection of spe-cific building blocks that now have to be wired up to implement the design. Stop for a moment and think about the task of wiring up the full adder, with its 13 gates and 37 wires. If this seems tedious to you, consider that this is really a very simple circuit. And imagine troubleshooting the circuit to find a burnt-out gate, tearing up the wires, replacing the gate, and reconnecting all the wires again. This is one of the most time-consuming, tedious, and error-prone steps in the entire design process.

New implementation technologies accelerate the physical implementation of the design. Making this step fast has other advantages. If a bug is discovered, it can be fixed and the implementation regenerated rapidly ("rapid reworking"). Also, the design can be changed more easily in response to real performance feedback by getting the system into operation more quickly.

Programming with 1's and 0's So far, you might have the feeling that we build hardware exclusively from wired-up gates, but this is not the way all hardware is implemented. A popular technique is to store a logic function's truth table in a special electronic device called a memory (this is discussed in more detail in Chapter 6).

The inputs form an address that is used as an index into an array of storage elements. The 0's and 1's stored there represent the values of the outputs of the function. By storing multibit words at the memory locations, you can use this technique to implement multiple-output combinational networks (see Figure 1.28). Changing a function is as easy as directly changing the values in the memory.

The drawback is that the size of the memory doubles for each additional input: a one-input memory has two address locations (0 and 1), a two-input memory has four (00, 01, 10, 11), a three-input memory eight, and so on. So this technique has limited utility for functions with a large number of inputs. Also, there may be speed advantages to using discrete gates rather than memories.

User-Programmable Devices You can usually implement a function by selecting the desired components from a catalog and simply wiring them up. A new approach, based on programmable logic devices (PLDs), is be-coming popular. Rather than use prefabricated parts, you build the design out of configurable components. You can imagine a sort of universal gate that could be configured with a truth table to yield an inverter, an AND gate, or an OR gate, depending on what is needed. Although this oversimplifies how these devices work, the basic idea is that their function can be customized to the task at hand.

Beyond functional configuration, the devices contain interconnection wires that can be configured by the designer. Based on memory elements containing truth tables that you provide, even the components can be wired together at your command.

Computer-aided design tools and user-programmable devices are radically changing the way digital design is being done. Where appropriate in this text, we will give more details of this exciting new technology.

[Top] [Next] [Prev]


This file last updated on 05/19/96 at 09:31:39.
randy@cs.Berkeley.edu;


What is Sarbanes-Oxley[q]
What is Sarbanes-Oxley[q]
ISBN: 71437967
EAN: N/A
Year: 2006
Pages: 101

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net