{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

HLCD - 18 High-level circuit design Eric C.R Hehner...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
18 High-level circuit design Eric C.R. Hehner, Theodore S. Norvell, Richard F. Paige Dedication This paper is dedicated to the memory of Jan van de Snepscheut, 1953-1994. Abstract We present two new ways to implement ordinary programs with logic gates. One, like imperative programs, has an associated memory to store state; the other, like functional programs, passes the state from one component to the next. Application-specific circuit design can be done more effectively by using a standard programming language to describe the function that a circuit is intended to perform, rather than by describing a circuit that is intended to perform that function. The resulting circuits are produced automatically; they behave according to the programs, and have the same structure as the programs. For timing, we use local delays, rather than a global clock or local handshaking. We give a formal semantics for both programs and circuits in order to prove our circuits correct. By simulation, we also demonstrate that the circuits perform favorably compared to others. 18.1 Introduction The design methods for digital circuits that are commonly found in current textbooks resemble the low-level machine-language programming methods of forty years ago. Manually selecting individual logic gates in a circuit is something like selecting individual machine instructions in a program. These methods may have been adequate for small circuit design when they were introduced, and they may still be adequate for large circuits that are simply repetitions of a small circuit (such as a memory), but they are not adequate for application-specific circuits that perform complicated custom algorithms.
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
application-specific circuits that perform complicated custom algorithms. The usual alternative to building application-specific circuits is to use a general-purpose processor, and customize it for an application by writing a program. That we can do so was a fundamental insight, due to Turing, upon which computer science is based. But for some applications, particularly where speed of execution or security is important, a custom-built circuit has some advantages over the usual processor-and-software combination. The speed is improved by the absence of the “machine-language” layer of circuitry with its “fetch-execute” cycle of interpretation, and by the ease with which we can introduce parallelism. Security is improved by the impossibility of reprogramming. In addition, unless the application requires a lengthy algorithm, there are space savings compared to the combination of software and processor. The VHDL [8] and Verilog [14] languages are presently being used by industry. These languages allow circuit designers to describe circuits more conveniently. There are interactive synthesis tools to aid in the construction of circuits from subsets of these languages. The circuits are then “verified” by simulation.
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}