Handbook of Algorithms for Physical Design Automation

Steven J.E. Wilton, Nathalie Chan King Choy, Scott Y.L. Chin, and Kara K.W. Poon
Field-programmable gate arrays (FPGAs) have become the implementation medium of choice for many digital systems. FPGAs are integrated circuits that can be programmed after fabrication to implement virtually any digital circuit. This instant manufacturability reduces time-to-market as well as nonrecurring engineering costs. Most FPGAs are also reprogrammable, meaning the digital circuit implemented in the device can change as requirements or standards change or as bugs are found.
The flexibility in a FPGA is afforded through flexible logic elements connected to each other and to the I/O pads using flexible routing resources. Because the elements are prefabricated, the physical design tasks associated with mapping a circuit to an FPGA are somewhat different than those used to map a circuit to an application specific integrated circuit (ASIC). The next chapter will describe the physical design algorithms for FPGAs; this chapter sets the stage by describing the architecture of FPGAs. Section 45.2 describes several programming technologies, Section 45.3 describes logic block architectures, Section 45.4 describes routing architectures, and Sections 45.5 and 45.6 describe embedded memories and embedded computation blocks.
The circuit being implemented on an FPGA is stored in the FPGA using a set of configuration bits. These bits can be constructed in various ways; this section describes static...