High-level circuit design [chapter]

Eric C. R. Hehner, Theodore S. Norvell, Richard F. Paige
2003 Monographs in Computer Science  
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. 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
more » ... atically; 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.
doi:10.1007/978-0-387-21798-7_18 fatcat:rduu24mpl5c5xj7iw4hbwgvyge