¿Introducción a FPGA?
En 1984, Bernie Vonderschmitt, Ross Freeman y Jim Barnett, que trabajaban en Silicon Valley, tuvieron una idea: soñaban con montar una empresa diferente a las empresas comunes. Querían crear una empresa que desarrollara e introdujera tecnología avanzada en un campo completamente nuevo. Además, quieren liderarlo de tal manera que las personas que trabajan aquí amen su trabajo, lo disfruten y se sientan fascinadas por lo que hacen.
Introdujo de forma creativa el concepto de empresa de "fábulas de semiconductores". 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 invención del Field Programmable Gate Array (FPGA). El invento del Sr. Freeman es un chip de computadora compuesto íntegramente de "puertas abiertas", número de patente 4870302. Con este tipo de chip, los ingenieros pueden programarlo según sea necesario, agregar nuevas funciones, cumplir con los requisitos de los estándares o especificaciones de desarrollo y realizar modificaciones en las etapas finales del diseño.
Cualquiera que esté familiarizado con PROM, EPROM y E2PROM sabe que el principio de programación de estos dispositivos programables es cambiar la densidad de portadora dentro del triodo o tubo MOS aplicando alto voltaje o luz ultravioleta, logrando así el llamado propiedades de programabilidad, pero estos dispositivos solo se pueden programar una vez o el estado de programación es difícil de estabilizar. Por otro lado, FPGA adopta el nuevo concepto de matriz de celdas lógicas (LCA), que incluye el módulo lógico de configuración CLB (bloque lógico configurable), el módulo de entrada y salida IOB (bloque de entrada y salida) y la interconexión.
La programabilidad de FPGA en realidad cambia el estado del flip-flop de CLB e IOB, lo que permite una programación repetida. Dado que FPGA debe programarse repetidamente, la estructura básica de la lógica combinacional no puede completarse mediante puertas NAND fijas como ASIC. Solo puede ser una estructura que sea fácil de configurar repetidamente. Las tablas de búsqueda cumplen bien con este requisito. Actualmente, los FPGA convencionales utilizan estructuras de tablas de búsqueda basadas en tecnología SRAM, y algunos FPGA militares y aeroespaciales utilizan estructuras de tablas de búsqueda Flash o de fusibles y tecnología antifusible. La configuración repetida de FPGA se logra mediante archivos de programación para cambiar el contenido de la tabla de búsqueda.
Según el conocimiento básico de los circuitos digitales, podemos saber que una operación lógica de n entradas, ya sea una operación NAND o una operación XOR, tiene solo 2n resultados. Por lo tanto, si el resultado correspondiente se almacena de antemano en una unidad de almacenamiento, equivale a realizar la función de un circuito de puerta NAND. El mismo principio se aplica a FPGA. El contenido de la tabla de búsqueda se configura grabando archivos para implementar diferentes funciones lógicas en las mismas condiciones del circuito.
La tabla de búsqueda se conoce como LUT, y LUT es esencialmente una memoria de acceso aleatorio. 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 preescribirá la tabla de verdad (es decir, el resultado) en la RAM, de modo que, p >
Cada vez que se ingresa una señal para una operación lógica, es equivalente a ingresar una dirección para buscar en la tabla, encontrar el contenido correspondiente a la dirección y luego enviarlo.
Como se puede observar en la tabla, los LUT y los circuitos lógicos tienen las mismas funciones. De hecho, las LUT funcionan más rápido y a mayor escala. Debido a que los FPGA basados en LUT están altamente integrados y tienen densidades de dispositivos que van desde 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 alta velocidad y alta densidad. -Diseño de circuito lógico digital final. Sus componentes son principalmente editables.
Unidades de E/S, unidades lógicas programables básicas, SRAM integrada, recursos de cableado enriquecidos, unidades funcionales integradas subyacentes, unidades dedicadas integradas, etc. Los principales diseñadores y fabricantes son Xilinx, Altera, Lattice, Actel, Atmel y QuickLogic, el mayor de los cuales es Xilinx en Estados Unidos.
Si tiene más del 50% de participación de mercado en el mercado programable, lo que supera las cuotas de mercado combinadas de todos los demás competidores.
El estado de funcionamiento de la FPGA lo establece el programa almacenado en la RAM del 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. 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 del apagado, la FPGA vuelve a quedar en blanco, la relación lógica interna desaparece y la FPGA se puede reutilizar. La programación de FPGA no requiere un programador FPGA especial, solo use un programador EPROM y PROM general. De esta manera, el mismo FPGA y diferentes datos de programación pueden producir diferentes funciones de circuito.
Por tanto, el uso de FPGA es muy flexible. Como se mencionó anteriormente, el estado de funcionamiento de FPGA lo establece la RAM almacenada en el chip, por lo que la RAM en el 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. Xilinx FPGA tiene cinco modos de configuración comunes: modo serie maestro, modo serie esclavo, modo de mapa electrónico, configuración de escritorio y configuración SPI directa.
Los FPGA producidos por Xilinx y Altera, las dos empresas con mayor participación de mercado de FPGA, se basan en la tecnología SRAM. Cuando se utilizan, es necesario conectar una memoria fuera del chip para guardar el programa. Cuando se enciende, la FPGA lee los datos de la memoria externa en la RAM del chip y entra en estado de funcionamiento después de la configuración. Después de un corte de energía, la FPGA vuelve a quedar en blanco y la lógica interna desaparece. De esta manera, no solo se puede reutilizar la FPGA, sino que también se requiere un programador de FPGA dedicado, y solo se necesita un programador de EPROM y PROM de uso general. Empresas como Actel y QuickLogic también ofrecen FPGA con tecnología antifusible, que tienen las ventajas de resistencia a la radiación, resistencia a altas y bajas temperaturas, bajo consumo de energía y alta velocidad, y se utilizan ampliamente en productos militares y campos aeroespaciales. Sin embargo, este tipo de FPGA no se puede borrar repetidamente y el desarrollo inicial es problemático y costoso. 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 ya hay muchos productos que ingresan a este campo.
Estructura del chip FPGA El 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 la versión anterior. Integra núcleo duro (como RAM, administración de reloj, DSP). con módulo de funciones comunes (como RAM, gestión de reloj, tipo DSP). De hecho, cada serie de FPGA tiene su propia estructura interna. El chip FPGA consta principalmente de seis partes, a saber: unidad de entrada y salida programable, unidad lógica programable básica, gestión completa del reloj, RAM de bloque integrada, recursos de cableado enriquecidos, unidad funcional subyacente integrada y módulo de hardware dedicado integrado.