Una matriz de objetos programables en campo ( FPOA ) es una clase de dispositivos lógicos programables diseñados para ser modificados o programados después de la fabricación. Están diseñados para cerrar la brecha entre ASIC y FPGA. Contienen una rejilla de objetos de silicio programables. La gama Arrix de FPOA contenía tres tipos de objetos de silicio: unidades lógicas aritméticas (ALU), archivos de registro (RF) y unidades de multiplicación y acumulación (MAC). Tanto los objetos como las interconexiones son programables.
El dispositivo estaba destinado a cerrar la brecha entre las matrices de puertas programables en campo (FPGA) y los circuitos integrados específicos de la aplicación (ASIC). El objetivo del diseño era combinar la capacidad de programación de los FPGA y el rendimiento de los ASIC. Los FPGA, aunque programables, carecen de rendimiento; Es posible que solo tengan una frecuencia de unos pocos cientos de megahercios y la mayoría de los FPGA operan por debajo de 100 MHz. Los FPGA no ofrecen una sincronización determinista y la frecuencia máxima de funcionamiento depende del diseño. Los ASIC ofrecían un buen rendimiento, pero no podían modificarse y eran muy costosos. El FPOA tenía una arquitectura programable, temporización determinista y rendimiento en gigahercios. El FPOA fue diseñado por Douglas Pihl, quien tuvo esta idea cuando trabajaba en un proyecto financiado por DARPA. Fundó MathStar en 1997 para fabricar FPOA y la idea se patentó en 2004. Los primeros prototipos de FPOA se fabricaron en 2005 y el primer lote de chips FPOA se fabricó en 2006.
Los FPOA tienen una rejilla central de objetos de silicio u objetos centrales. Estos objetos están conectados a través de una interconexión síncrona. Cada objeto central también tiene estructuras de soporte para sincronización de reloj, BIST y similares. El núcleo está rodeado por circuitos periféricos que contienen memoria y E / S. Un circuito de interfaz conecta los objetos al resto de FPOA. El número exacto de cada tipo de objeto y su disposición son específicos de una familia determinada. Hay dos tipos de comunicación: miembro más cercano y "línea de partido". El miembro más cercano se utiliza para conectar un núcleo al objeto central más cercano y la línea compartida se utiliza para conectar objetos remotos. Hay 8 interconexiones vecinas más cercanas por objeto y ofrece velocidad de transmisión en un salto de objeto por ciclo de reloj. Hay 10 interconexiones de línea compartida por objeto que ofrecen una velocidad de transmisión de cuatro saltos de objeto por ciclo de reloj.
Los FPOA se pueden usar casi en cualquier lugar donde se use un FPGA, en general en todas las tareas de aceleración de hardware, incluido el procesamiento de señales digitales, imágenes médicas, visión por computadora, reconocimiento de voz, criptografía, bioinformática, emulación de hardware de computadora y aeroespacial. Dado que los FPOA se construyen alrededor de objetos de silicio rápidos y optimizados, ofrecen un mayor rendimiento en la corrección de errores de campo plano, computación rápida por transformada de Fourier, imágenes médicas, visión artificial, codificación y decodificación de imágenes, codificación y decodificación de video y aceleración de inteligencia artificial, por nombrar algunos.
En FPOA trabajamos a nivel de objeto de silicio un nivel más alto que el nivel de puerta utilizado en FPGA. Esto facilita la curva de aprendizaje y también acelera el desarrollo. La programación se realiza en System C. La familia Arrix lanzada en 2006 fue respaldada por el software de diseño FPOA, que permitió a los diseñadores crear, verificar, programar y depurar sus algoritmos en los dispositivos. La herramienta Visual Elite de Summit Design se utilizó para la simulación de comportamiento. COAST (COnnection and ASsignment Tool) de MathStar ofrecía un entorno gráfico para la planificación del piso y la ubicación que compilaba en un código intermedio que se asigna a los recursos de hardware. El compilador de objetos generó el archivo para ser cargado en la FPGA. En 2007 MathStar se asoció con Mentor Graphics y, posteriormente, utiliza el editor Visual Elite de Mentor Graphics para la simulación de comportamiento y la verificación funcional. Los FPOA también ofrecieron bibliotecas centrales de IP. Los socios de IP incluían profesionales en el mercado de video, así como en el mercado de visión artificial.
MathStar, el productor de FPOA, nunca obtuvo beneficios y la empresa decidió interrumpir la producción en mayo de 2008. MathStar se fusionó con Sajan Inc. en 2010 y, por tanto, Sajan adquirió la patente de MathStar, incluida la de FPOA. En noviembre de 2011, Sajan vendió varias de las patentes de MathStar, incluidas algunas sobre FPOA, a OLK Grun GmbH.