Ratha N and Jain A (1999). Computer Vision Algorithms on Reconfigurable Logic Arrays, IEEE Transactions on Parallel and Distributed Systems , 10 :1 , (29-43), Online publication date: 1-Jan-1999 .
Fang W and Wu A (1998). Integrating HDL Synthesis and Partitioning for Multi-FPGA Designs, IEEE Design & Test , 15 :2 , (65-72), Online publication date: 1-Apr-1998 .
Reviewer: Alexandre Vladimirovi Yakovlev
Field-programmable gate arrays (FPGAs) are popular as a way to rapidly prototype VLSI circuits. The physical design phase can be reduced to just a few minutes. FPGAs enjoy other advantages, such as relatively high gate density, reprogrammability, and low cost, which lead to their use in applications previously carried out by small- and medium-scale integration and programmable logic devices. They are also moving into the domain of mask-programmable gate arrays (MPGAs), especially where applications do not require more than 10,000 gates and very high performance. Low cost is the paramount factor in the success of FPGAs. Yet this factor can easily mislead the designer into neglecting such aspects of his or her design as optimality and formal correctness. This book teaches the reader how to perform the whole design procedure for FPGAs systematically, while actively using existing CAD tools. The book covers the following classical issues of logic and integrated circuit design and clearly shows their specific application in FPGA design: the main types of FPGA architecture and building blocks; the overall design process overview; logic design and multi-level logic minimization; finite state machine synthesis; placement and routing; and verification and testing. The final part of the book presents a number of useful guidelines. Some sound very categorical, such as “No Gated Clocks!” or “Avoid Asynchronous Designs” (which was rather intimidating for an asynchronous guy like me). It also presents case studies in FPGA design. The final example, which is of a reasonable size (though not so big as to scare a novice) is very good. An FPGA is designed for a Tetris machine. The book leans strongly toward the use of software tools for FPGA design. A special appendix, called “A Workview Tutorial,” gives the essential steps in using an integrated environment available for the design entry (viewdraw) and simulation (viewsim) of Actel and Xilinx FPGAs, the two main types discussed in the book. Throughout the book are numerous examples of script and dialogue with logic synthesis tools such as espresso, misII, and mustang. The text contains a good description of the Quine-McCluskey algorithm, helping to refresh the reader's memory about classical methods and to see them working with the more recent techniques for multilevel minimization. The book is certainly appropriate as an advanced text for a graduate electrical engineering course on FPGAs or an FPGA handbook for a practicing engineer. In the latter case, this book is recommended for use in conjunction with the FPGA vendor's materials. The book is not suitable for undergraduates. The writing is generally good, but the authors had a tough deadline for manuscript completion, and mistakes were unavoidable. I did not detect any significant flaws, however. There are only some minor problems to note. I observed some repetition in chapters 4 and 5, talking about Boolean functions, which is probably not a bad idea per se, especially in teaching, but here is probably the result of two people writing their chapters separately. Some sections are not clear enough. For example, section 5.2.5, about factored forms of functions, is quite confusing. In section 5.3.5, I was unable to find any definition of control and residue variables. The topic of hazards and one-hot encoding (section 6.5), inherent in asynchronous logic design, seems to need more explanation within the overall clocked framework of FPGAs. The description of placement and routing algorithms is too sketchy and requires previous background. Overall, I enjoyed my time spent with this book, though I regret I had no chance to use it in FPGA design practice.
Become a reviewer for Computing Reviews.