Field-programmable gate array: Difference between revisions

Content deleted Content added
m top: added more details, and changed some terms for better suited ones to improve the reading experience
Tags: Mobile edit Mobile app edit Android app edit
Jaredjeya (talk | contribs)
Copy-editing some clunky sentences, bad grammar, and weird capitalisation.
Tags: Mobile edit Mobile web edit Advanced mobile edit
Line 6:
[[File:Xerox ColorQube 8570 - Main controller - Xilinx Spartan XC3S400A-0205.jpg|thumb|A Spartan FPGA from [[Xilinx]]]]
 
A '''field-programmable gate array''' ('''FPGA''') is a type of configurable [[integrated circuit]] that can be repeatedly programmed post manufacturing. FPGAs are a subset of logic devices referred to as [[programmable logic devices]] ("PLDs"). They consist of an array of [[programmable logic device|programmable]] [[logic block|logic blocks]] with a connecting grid, that can be configured "in the field" to interconnect with other logic blocks to perform various digital functions. FPGAs are often used in limited (low) quantity production of custom -made Productsproducts, and of course in Researchresearch and Developmentdevelopment, (where the higher cost of individual FPGAs won'tis not as matterimportant, and where creating and manufacturing a custom ASICcircuit wouldn't be feasible). Other Applicationsapplications for FPGAs areinclude wherethe theirtelecommunications, flexibilityautomotive, high signal processing speedaerospace, and theindustrial needsectors, forwhich lotsbenefit offrom paralleltheir processing is thereflexibility, suchhigh assignal inprocessing telecommunicationsspeed, automotive,and aerospace,parallel andprocessing industrial sectorsabilities.
 
A FPGA configuration is generally written using a [[hardware description language]] ("HDL") e.g. [[VHDL]], that are similar to the oneones used for [[application-specific integrated circuit|application-specific integrated circuits]] ("ASIC“). [[Circuit diagram|Circuit diagrams]] were formerly used to write the configuration.
 
The logic blocks of an FPGA can be configured to perform complex [[combinational logic|combinational functions]], or act as simple [[logic gate|logic gates]] like [[AND gate|AND]] and [[XOR gate|XOR]]. In most FPGAs, logic blocks also include [[Memory cell (computing)|memory elements]], which may be simple [[flip-flop (electronics)|flip-flops]] or more sophisticated blocks of memory.<ref name="FPGA" /> Many FPGAs can be reprogrammed to implement different [[Boolean function|logic functions]], allowing flexible [[reconfigurable computing]] as performed in [[software|computer software]].