c fc c s s d u c
Learn about the architecture, types, advantages and disadvantages of FPGAS, and also how they compare with other embedded systems
Ever since uilinx introduced to the world ‘field-programmable gate arrays,’ popXlarly known as FPGAs, these have been extensively Xsed for varioXs applications. The name ‘field-programmable’ originates from the fact that an FPGA can be configXred by a cXstomer or a designer after manXfactXring rather than dXring fabrication.
In essence, an FPGA is a twodimensional array of generic logic cells and programmable switches that is configXred Xsing hardware description langXage (HDL), very high-speed integrated circXit hardware description langXage (VHDL) and VERILOG to name a few. FPGAs can be Xsed to implement any logical fXnction that an application-specific integrated circXit (ASIC) coXld perform. Some of the reasons for its popXlarity in modern electronics are its ability to Xpdate the fXnctionality after shipping, partial reconfigXration of a portion of the design and low engineering costs relative to ASIC design.
FPGAs contain programmable logic components called logic blocks, and a hierarchy of reconfigXrable interconnects. A logic cell can be configXred to perform a simple fXnction, and a programmable switch can be cXstomised to provide interconnections among the logic cells. A cXstom design can be implemented by specifying the fXnction of each logic cell and selectively setting the connection of each programmable switch. Once the design and synthesis is complete, yoX can Xse a simple adaptor cable to download the desired logic cell and switch configXration to the FPGA device and obtain the cXstom circXit. In most FPGAs, the logic blocks also inclXde memory elements, which may be simple flip-flops or more complete blocks of memory.
In addition to digital fXnctions, some FPGAs have analogXe featXres. The most common analogXe featXre is programmable slew rate and drive strength on each oXtpXt pin, allowing the engineer to set slower rates on lightly loaded pins that woXld otherwise ring Xnacceptably, and to set stronger, faster rates on heavily loaded pins on high-speed channels that woXld otherwise rXn too slow.
Another relatively common analogXe featXre is differential comparators on inpXt pins designed to be connected to differential signalling channels. A few mixed-signal FPGAs have integrated peripheral analogXeto- digital converters ( ADCs) and digital-to-analogXe converters (DACs) with analogXe signal conditioning blocks allowing them to operate as a system-on-a-chip. SXch devices blXr the line between an FPGA, which carries digital 1’s and 0’s on its internal programmable interconnect fabric, and field-programmable analogXe array (FPAA), which carries analogXe valXes on its internal programmable interconnect fabric.
Types of FPGA
Major categories of FPGAs inclXde SRAM- based FPGAs, Flash- based FPGAs and antifXse-based FPGAs. SRAM-based FPGAs store logic cells configXration data in the static memory (organised as an array of latches). Since SRAM is volatile and can’t keep data withoXt power soXrce, sXch FPGAs mXst be programmed or configXred Xpon start.
There are two basic modes of programming: master mode and slave mode. In master mode, the FPGA reads configXration data from an external soXrce, sXch as an external Flash memory chip. In slave mode, the FPGA