¿Alguna introducción a FPGA?

FPGA es la abreviatura de Field Programmable Gate Array en inglés, que es una matriz de puertas programables en campo. Es un producto de mayor desarrollo basado en dispositivos programables como PAL, GAL y CPLD. Aparece como un circuito semipersonalizado en el campo de los circuitos integrados de aplicaciones específicas (ASIC), que no solo resuelve las deficiencias de los circuitos personalizados, sino que también supera las deficiencias del número limitado de puertas en los dispositivos programables originales. Es la principal plataforma de hardware para el diseño de sistemas digitales actual. Su característica principal es que el usuario la configura y programa completamente a través de software para completar una función específica y se puede borrar y escribir repetidamente. Al modificar y actualizar, no es necesario cambiar adicionalmente la placa de circuito PCB, solo se modifica y actualiza el programa en la computadora, lo que convierte el trabajo de diseño de hardware en trabajo de desarrollo de software, acorta el ciclo de diseño del sistema, mejora la flexibilidad de implementación y reduce los costos. , por lo que se ha ganado el favor de la mayoría de los ingenieros de hardware.

En 1984, a Bernie Vonderschmitt, Ross Freeman y Jim Barnett, que trabajaban en Silicon Valley, se les ocurrió una idea. Soñaban con crear un tipo diferente de empresa. Querían crear una empresa que desarrollara y lanzara tecnologías avanzadas en áreas completamente nuevas. Y también quieren liderarlo de tal manera que las personas que trabajan aquí amen su trabajo, lo disfruten y se sientan fascinadas por lo que hacen.

Lanzamos de forma creativa el concepto de empresa de "semiconductores sin fábrica". El 18 de febrero de 2009, Ross Freeman fue incluido en el Salón de la Fama de los Inventores Estadounidenses de 2009 por su invento, el Field Programmable Gate Array (FPGA). El invento del Sr. Freeman, patente número 4.870.302, era un chip de computadora compuesto enteramente de "puertas abiertas". Con este chip, los ingenieros pueden programarlo según sea necesario para agregar nuevas funciones para cumplir con los estándares o especificaciones en evolución y realizar modificaciones en las etapas finales del diseño.

Cualquiera que esté familiarizado con PROM, EPROM y E2PROM sabe que el principio programable de estos dispositivos programables es hacer que la densidad del portador dentro del triodo o tubo MOS cambie aplicando alto voltaje o luz ultravioleta para lograr Esto se llama programabilidad, pero es posible que estos dispositivos solo se puedan programar una vez o que el estado de programación sea difícil de estabilizar. FPGA es diferente. Adopta un nuevo concepto de matriz de celdas lógicas (LCA), que incluye un módulo lógico configurable CLB (bloque lógico configurable) y un módulo de entrada y salida IOB (bloque de entrada y salida) y una conexión interna (interconexión).

La programabilidad de FPGA en realidad cambia el estado del flip-flop de CLB e IOB. De esta manera, se puede lograr una programación repetida múltiple. Dado que FPGA necesita programarse repetidamente, es imposible implementar la estructura básica. de lógica combinacional Esto se hace con puertas NAND fijas como un ASIC, pero solo puede usar una estructura que sea fácil de configurar repetidamente. Las tablas de búsqueda pueden cumplir con este requisito. Actualmente, todos los FPGA convencionales usan estructuras de tablas de búsqueda basadas en tecnología SRAM. También hay algunos FPGA de grado militar y aeroespacial que usan estructuras de tablas de búsqueda basadas en tecnología Flash o fusibles y antifusibles. La configuración repetida de FPGA se logra grabando archivos para cambiar el contenido de la tabla de búsqueda.

Según el conocimiento básico de los circuitos digitales, podemos saber que para una operación lógica de n entradas, ya sea operación Y o NO, operación XOR, etc., solo hay 2n resultados posibles como máximo. . Por lo tanto, si el resultado correspondiente se almacena de antemano en una unidad de almacenamiento, equivale a realizar la función del circuito de puerta NAND. El mismo principio se aplica a FPGA. Configura el contenido de la tabla de búsqueda mediante archivos de programación, realizando así diferentes funciones lógicas en el mismo circuito.

Look-Up-Table se conoce como LUT. LUT es esencialmente una RAM. Actualmente, las LUT de 4 entradas se utilizan principalmente en FPGA, por lo que cada LUT puede considerarse como una RAM con líneas de dirección de 4 bits.

Cuando el usuario describe un circuito lógico mediante un diagrama esquemático o lenguaje HDL, el software de desarrollo PLD/FPGA calculará automáticamente todos los resultados posibles del circuito lógico y escribirá la tabla de verdad (es decir, el resultado) en la RAM por adelantado. /p>

Cada vez que ingresa una señal para realizar una operación lógica, es equivalente a ingresar una dirección para buscar la tabla, averiguar el contenido correspondiente a la dirección y luego generarlo.

Como se puede observar en la tabla, la LUT tiene las mismas funciones que los circuitos lógicos. De hecho, las LUT tienen una velocidad de ejecución más rápida y una mayor escala. Debido a que los FPGA basados ​​en LUT tienen un alto nivel de integración y sus densidades de dispositivos varían de decenas de miles a decenas de millones de puertas, pueden completar funciones de circuitos lógicos combinacionales lógicos y de temporización extremadamente complejas, por lo que son adecuados para aplicaciones de alta velocidad y alta velocidad. -Circuitos digitales de alta densidad. El campo del diseño de circuitos lógicos. Sus componentes principales incluyen unidades de entrada/salida programables, unidades lógicas programables básicas, SRAM integrada, ricos recursos de cableado, unidades funcionales integradas subyacentes, unidades especiales integradas, etc. Está diseñado y producido principalmente. Los fabricantes incluyen Xilinx, Altera, Lattice, Actel, Atmel. y QuickLogic, entre otros, la mayor de las cuales es la empresa estadounidense Xilinx, que ocupa más del 50% de la cuota de mercado programable, superando a todos los demás competidores. La cuota de mercado combinada de sus rivales es mayor.

El estado de funcionamiento de FPGA lo establece el programa almacenado en la RAM del chip. Por lo tanto, la RAM del chip debe programarse durante la operación. Los usuarios pueden utilizar diferentes métodos de programación según los diferentes modos de configuración. Cuando se enciende, el chip FPGA lee los datos de la EPROM en la RAM de programación del chip. Una vez completada la configuración, la FPGA entra en estado de funcionamiento. Después de un corte de energía, la FPGA vuelve a ser un chip blanco y las relaciones lógicas internas desaparecen. Por lo tanto, la FPGA se puede usar repetidamente. La programación de FPGA no requiere un programador FPGA especial, solo use un programador EPROM o PROM general. De esta manera, el mismo FPGA y diferentes datos de programación pueden producir diferentes funciones de circuito.

Como resultado, los FPGA son muy flexibles de usar. Como se mencionó anteriormente, la FPGA establece su estado de funcionamiento mediante la RAM almacenada en el chip, por lo que la RAM del chip debe programarse durante la operación. Los usuarios pueden utilizar diferentes métodos de programación según los diferentes modos de configuración. Hay 5 modos de configuración comunes de Xilinx FPGA: modo serie maestro, modo serie esclavo, modo MAP seleccionado, configuración de escritorio y configuración SPI directa.

Actualmente, los FPGA producidos por Xilinx y Altera, las dos empresas con mayor cuota de mercado de FPGA, se basan en tecnología SRAM y requieren una memoria externa fuera del chip para guardar el programa durante su uso. Cuando se enciende, la FPGA lee los datos de la memoria externa en la RAM del chip. Después de completar la configuración, ingresa al estado de funcionamiento después de apagarse, la FPGA vuelve a un chip blanco y la lógica interna desaparece. De esta manera, la FPGA no solo se puede usar repetidamente, sino que tampoco requiere un programador FPGA especial, solo un programador general EPROM y PROM. Actel, QuickLogic y otras empresas también proporcionan FPGA con tecnología antifusible, que tiene las ventajas de resistencia a la radiación, resistencia a altas y bajas temperaturas, bajo consumo de energía y alta velocidad. Sin embargo, esto se usa ampliamente en los campos militar y aeroespacial. Este tipo de FPGA no se puede escribir ni borrar repetidamente, es más problemático y costoso en la etapa inicial de desarrollo. Lattice es el inventor de la tecnología ISP y tiene ciertas características en aplicaciones PLD a pequeña escala. Los primeros productos de Xilinx generalmente no involucraban a los mercados militar y aeroespacial, pero actualmente hay muchos productos que ingresan a este campo.

Estructura del chip FPGA La FPGA convencional actual todavía se basa en la tecnología de tabla de búsqueda, que ha superado con creces el rendimiento básico de las versiones anteriores e integra el núcleo duro de funciones comunes (como RAM, gestión del reloj). y módulo DSP) (tipo ASIC). De hecho, cada serie de FPGA tiene su estructura interna correspondiente). El chip FPGA se completa principalmente con 6 partes, a saber: unidad de entrada y salida programable, unidad lógica programable básica, gestión completa del reloj, RAM de bloque integrada, ricos recursos de cableado, integrados. unidades funcionales subyacentes y módulos de hardware dedicados integrados.