1.2   DESIGN AND IMPLEMENTATION USING FPGAs

A design exists separately from its mapping into its implementation as one or more FPGAs. Often an individual design is part of a larger system’s design. Designing, in any medium is the most compelling part of engineering, and designing with FPGAs is particularly challenging because the technology is progressing so rapidly, while “manufacturing” times are so short. Unfortunately, designing is not necessarily simple and can require a great deal of creative effort. Standard textbook treatments of design usually focus on some tractable subproblems in designing, such as logic minimization or state machine design. Or they attempt to reduce design to a mathematical formulation, in which there is a perfect solution to an idealized problem. To clarify the situation, it may be better not to strive for a definition of design [Bell72], but to make a distinction between design and implementation. Within this view, a design is an abstract collection of connected elements, each of which has a defined performance. Elements may of course be recursively defined and may be assemblies of other elements. This structural view of a design is common to all branches of engineering. In electronics, gate elements are connected by wires; in mechanics, beams are connected by fasteners.

For a design to be realized, however, the abstract elements in its structural definition must be mapped onto physical elements that actually exist in some medium. Once this has been ...

Get Field-Programmable Gate Arrays: Reconfigurable Logic for Rapid Prototyping and Implementation of Digital Systems now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.