FONT SIZE : AAA
This book intends to contribute to a wider use of field-programmable gate arrays (FPGAs) in industry by presenting the concepts associated with this technology in a way accessible for nonspecialists in hardware design so that they can analyze if and when these devices are the best (or at least a possible) solution to efficiently address the needs of their target industrial applications. This is not a trivial issue because of the many different (but related) factors involved in the selection of the most suitable hardware platform to solve a specific digital design problem. The possibilities enabled by current FPGA devices are highlighted, with particular emphasis on the combination of traditional FPGA architectures and powerful embedded processors, resulting in the so-called field-programmable systems-on-chip (FPSoCs) or systemson-programmable-chip (SoPCs). Discussions and analyses are focused on the context of embedded systems, but they are also valid and can be easily extrapolated to other areas.
The book is structured into nine chapters:
• Chapter 1 analyzes the different existing design approaches for embedded systems, putting FPGA-based design in perspective with its direct competitors in the field. In addition, the basic concept of FPGA “programmability” or “configurability” is discussed, and the main elements of FPGA architectures are introduced.
• From the brief presentation in Chapter 1, Chapter 2 describes in detail the main characteristics, structure, and generic hardware resources of modern FPGAs (logic blocks, I/O blocks, and interconnection resources). Some specialized hardware blocks (clock management blocks, memory blocks, hard memory controllers, transceivers, and serial communication interfaces) are also analyzed in this chapter.
• Embedded soft and hard processors are analyzed in Chapter 3, because of their special significance and the design paradigm shift they caused as they transformed FPGAs from hardware accelerators to FPSoC platforms. As shown in this chapter, devices have evolved from simple ones, including one general-purpose microcontroller, to the most recent ones, which integrate several (more than 10 in some cases) complex processor cores operating concurrently, opening the door for the implementation of homogeneous or heterogeneous multicore architectures. The efficient communication between processors and their peripherals is a key factor to successfully develop embedded systems. Because of this, the currently available on-chip buses and their historical evolution are also analyzed in detail in this chapter.
Chapter 4 analyzes DSP blocks, which are very useful hardware resources in many industrial applications, enabling the efficient implementation of key functional elements, such as digital filters, encoders, decoders, or mathematical transforms. The advantages provided by the inherent parallelism of FPGAs and the ability of most current devices to implement floating-point operations in hardware are also highlighted in this chapter.
• Analog blocks, including embedded ADCs and DACs, are addressed in Chapter 5. They allow the functionality of the (mostly digital) FPGA devices to be extended to simplify interfacing with the analog world, which is a fundamental requirement for many industrial applications.
• The increasing complexity of FPGAs, which is clearly apparent from the analyses in Chapters 2 through 5, can only be efficiently handled with the help of suitable software tools, which allow complex design projects to be completed within reasonably short time frames. Tools and methodologies for FPGA design are presented in Chapter 6, including tools based on the traditional RTL design flow, tools for SoPC design, high-level synthesis tools, and tools targeting multithread accelerators for high-performance computing, as well as debugging and other auxiliary tools.
• There are many current applications where tremendous amounts of data have to be processed. In these cases, communication resources are key elements to obtain systems with the desired (increasingly high) performance. Because of the many functionalities that can be implemented in FPGAs, such efficient communications are required to interact not only with external elements but also with internal blocks to exchange data at the required rates. The issues related to both off-chip and in-chip communications are analyzed in detail in Chapter 7.
• The ability to be reconfigured is a very interesting asset of FPGAs, which resulted in a new paradigm in digital design, allowing the same device to be readily adapted during its operation to provide different hardware functionalities. Chapter 8 focuses on the main concepts related to FPGA reconfigurability, the advantages of using reconfiguration concurrently with normal operation (i.e., at run time), the different reconfiguration alternatives, and some existing practical examples showing high levels of hardware adaptability by means of run-time dynamic and partial reconfiguration.
Today, FPGAs are used in many industrial applications because of their high speed and flexibility, inherent parallelism, good cost– performance trade-off (offered through wide portfolios of different device families), and the huge variety of available specialized logic resources. They are expected not only to consolidate their application domains but also to enter new ones. To conclude the book, Chapter 9 addresses industrial applications of FPGAs in three main design areas (advanced control techniques, electronic instrumentation, and digital real-time simulation) and three very significant application domains (mechatronics, robotics, and power systems design).