现场可编程门阵列(通常简称为FPGA)是一种用于构建可重构数字电路的电子元件。这意味着FPGA与逻辑门不同,因为逻辑门有固定的功能。而FPGA在制造时则有一个不确定的功能。在FPGA能够用于电路之前,必须对其进行编程,即重新配置。
FPGA是可编程逻辑器件或PLD类的集成电路。FPGA是PLD类型中性能最高、最灵活,也是最昂贵的。与其他PLD相比,FPGA的一个缺点是,当电源被拔掉时,FPGA不记得自己的设计。因此,FPGA需要一个单独的配置存储器芯片,用来保存FPGA的设计。当电源还给FPGA时,FPGA的固定部分会从配置存储器芯片中读取配置。FPGA配置好后就可以完成设计赋予它的功能。
FPGA与微处理器或微控制器不同。一个基本形式的FPGA是不能运行软件的。只有当FPGA被赋予一个包含处理器架构的配置时,它才有能力运行软件。
FPGA制造商为Windows提供工程软件,有时也为Linux提供工程软件,以开发FPGA的设计。设计通常以人类可读的计算机文件编写,称为硬件描述语言(HDL),最流行的是VHDL和Verilog。最流行的是VHDL和Verilog。硬件描述语言与编程语言有很强的可比性。但HDL的意图是设计数字逻辑电路,而编程语言则是设计软件。
FPGA工程软件必须将抽象的HDL代码转化为所选FPGA中可用的逻辑元素。这就是所谓的逻辑综合。然后进行一个放置和路由的过程,将逻辑元素在FPGA中定位。其结果是一个可以编入FPGA或配置存储器的位文件。这通常是通过连接到FPGA的JTAG端口的USB编程器来完成的。
由于FPGA是一个集成电路,FPGA制造商可以决定增加其他常用的集成电路部件。这些固定的部件被称为内核。例如,这些都是以太网控制器,甚至是一个完整的处理器架构。对于不同的细分市场,如国防、医疗、通信和机器人,FPGA制造商试图添加最有价值的一组附加核。

