Eleazar Kenyon ECE 4007 L04 – Dr. William Hunt Kaoss Komposers January 27, 2010 FPGA’s as Microcontrollers, DSP’s, and CPU’s for Prototyping and Low Volume Applications Introduction For prototype or other small scale signal processing, computation, or automation systems, a reliable, quick, and inexpensive means is needed for providing the computational power needed for such applications. Invented by Ross Freeman in 1984[1], the field programmable gate array (FPGA) is currently the dominant technology for such applications more than 25 years after its invention, providing excellent flexibility and programmability at reasonable costs. For large scale production applications, application specific integrated circuits still dominate, thanks to their lower power consumption and greater space efficiency. However, for developmental, educational, testing, and prototype designs, FPGA’s remain the programmable logic device of choice. Although the basic concept has remained roughly the same since its inception, new fabrication methods and technology are enabling integration of analog and digital peripheral systems and external memory with a traditional FPGA on a single silicon die. Commercial Applications Field programmable gate arrays are used for a vast number of applications such as digital signal processing, prototyping of applications specific integrated circuits, medical imaging, computer vision, and software-defined radio, to name a few. The high degree of parallel processing allowed by an FPGA also allows for high speed numerical processing. One such application that has received much attention in recent years is the use of an FPGA to perform high speed Fast Fourier Transform signal analysis [2]. As discussed in [3], there are methods available for using an FPGA to create a tunable FFT algorithm to be used in conjunction with a software defined radio system. FPGA’s are also widely used for testing and evaluation boards, which can be used to measure and evaluate the reliability or precision of manufactured parts, with the FPGA processing core allowing users to reprogram the board to evaluate different types and models of manufactured discrete and integrated circuits. Underlying Technology FPGA integrated circuits are digital in nature and physically constructed using CMOS fabrication processes similar to those used to fabricate the ubiquitous microprocessor. Like microprocessor technology, FPGA technology has also followed the rapid scaling and increases in device density seen by microprocessors. Xilinx, the industry leader in FPGA sales, recently released their latest product line, the Virtex 6, which was fabricated using “a 40 nm state-of-the-art copper process technology” [4]. The digital circuits fabricated on the wafer are primarily SRAM cells, which, when programmed, form memory banks that replicate Boolean logic functions such as those found on a microprocessor. Because of this SRAM architecture, FPGA’s are much less space and power efficient than a microprocessor or ASIC designed to perform the same function; however, the inherent flexibility and ability to quickly program and reprogram FPGA’s give them a distinct advantage and are the product of choice for many companies and individuals without the resources to produce an ASIC. Recently there have also been efforts to integrate the programmability of an FPGA with other digital and even analog functionality. These “Programmable Systems on a Chip” (SoPC) are being pushed for use in applications previously reserved for ASIC’s. According to Hamblen & Hall, “flexible, reconfigurable logic present in a SoPC device a single printed circuit board can be designed for use in multiple product lines and in multiple generations/versions of a single product,” offsetting the higher physical manufacturing cost of FPGA chips [5]. The development of high speed I/O banks, embedded memories and even processors, and predesigned circuit blocks (patented and sold as intellectual property) that designers can purchase and integrate into their system have also contributed to the FPGA’s eclipse of the ASIC for many applications [6]. Building Blocks & Implementation An FPGA consists of the previously described SRAM cells, as well as a non-volatile memory element needed to store program information when power is removed from the system. These non-volatile memories allow the user to store their programs, which can then be loaded when the device is powered up (the device also requires a DC power source). Additionally, programming the FPGA requires compilation software that converts a hardware definition language into a functional circuit netlist. This software is available from the FPGA manufacturer, often for free. Conclusion For rapid prototyping or low volume manufacturing, FPGA’s and their hybrid SoPC applications are the most suitable products for signal processing and computational applications. Currently, devices are available that can support the high speed data processing as well as the large numbers of I/O buses needed for complex microcontroller or microprocessor applications. The Xilinx Virtex-6 family, for example, can support up to 600 MHz clock speeds for some DSP applications as well as up to 1200 I/O pins, providing powerful processing capabilities and flexibility at costs comparable to those of more specialized chips. References [1] Xilinx Inc., “Company History,” [Online]. Available: http://www.xilinx.com/company/history.htm [Accessed Jan. 24, 2010]. [2] S. Guoliang; Q. Huang; L. Zhu, “A Fast Acquisition Algorithm Based on FFT for DSSS Signal and FPGA Realization,” WRI International Conference Communications and Mobile Computing, Vol. 1, No. 6, pp. 341 – 344, Jan. 2009. [3] H. Shekhar, C.B.Mahto, N.Vasudevan, Tiruvallur, “FPGA Implementation of Tunable FFT for SDR Receiver,” IJCSNS International Journal of Computer Science and Network Security, Vol.9, No.5, pp.186-195, May 2009. [4] Xilinx Inc., “Virtex-6 Family Overview,” Data Sheet 150 (v2.1), November 6, 2009. [5] J. O. Hamblen & T. S. Hall, “Using System-on-a-Programmable-Chip Technology to Design Embedded Systems” IJCA, Vol. 13, No. 3, pp. 1-11, Sept. 2006 [6] Dave Bursky, “FPGA Advances Pave The Way Toward True SoC Solutions,” para. 1, January 12, 2006. [Online], Available: http://electronicdesign.com/content.aspx?topic=fpga-advances-pave-the-waytoward-true-soc-solutio&page=1&catpath=digital. [Accessed Jan. 24, 2010].