Las Field Programmable Gate Arrays (FPGA) son circuitos integrados reconfigurables compuestos de interconexiones programables que combinan bloques lógicos programables, de memoria embebida y de procesamiento de señales digitales, entre otros. Dicho en palabras más simples, una FPGA es “hardware programable”. A diferencia de las CPUs y las GPUs, los recursos de una FPGA pueden ser configurados para crear pipelines de instrucciones específicos para el problema a resolver. Si bien operan a frecuencias de reloj más bajas y tienen picos de rendimiento inferiores, la posibilidad de adaptar el hardware para cada aplicación particular le permite a las FPGAs lograr mejores tasas de rendimiento en la mayoría de los casos. En forma adicional, suelen ser más eficientes desde el punto de vista energético ya que no hay desperdicio en los recursos de silicio.