Fundamentos de las FPGA - Parte 3: Introducción a las FPGA de Microchip Technology
Colaboración de Editores de DigiKey de América del Norte
2020-01-30
Nota del editor: Las soluciones óptimas de procesamiento a menudo son proporcionadas por combinaciones de RISC (computación por conjunto de instrucciones reducidas), CISC (computación por conjunto de instrucciones complejas), procesadores gráficos y FPGA, solo por FPGA, o por FPGA que cuentan con núcleos rígidos de procesadores como parte de su estructura. Sin embargo, muchos diseñadores no están familiarizados con las capacidades de los FPGA, cómo han evolucionado y cómo usarlos. La Parte 1 de esta serie de varias partes proporciona una introducción de alto nivel a las FPGA. La Parte 2 se centró en las ofertas de FPGA de Lattice Semiconductor. Aquí, la Parte 3 se concentra en las familias de dispositivos FPGA y las herramientas de diseño de Microchip Technology (a través de su subsidiaria Microsemi Corporation). La Parte 4 y la Parte 5 se centrarán en las FPGA y las herramientas de Altera y Xilinx.
Como se expuso en la primera parte, los conjuntos de puertas programables en el terreno (FPGA) tienen muchas características que los convierten en un activo informático inestimable, ya sea utilizados de forma autónoma o en una arquitectura heterogénea, pero muchos diseñadores no están familiarizados con las FPGA ni con la forma de incorporar estos dispositivos en sus diseños.
Una forma de superar este impedimento es mirar más profundamente las arquitecturas FPGA y las herramientas asociadas de los principales proveedores. Este artículo examina la alineación de Microchip Technology.
Descripción general de las opciones de FPGA de alto nivel
Existen muchos tipos diferentes de FPGA en el mercado, cada uno con diferentes combinaciones de capacidades y funciones. En el corazón de cualquier FPGA está su tejido programable. Esto se presenta como un conjunto de bloques lógicos programables, también conocidos como elementos lógicos (LE) (Figura 1a). El siguiente paso en el tejido de la FPGA es incluir cosas como bloques de SRAM, llamados bloque RAM (BRAM), bucles de bloqueo de fase (PLL), y administradores de reloj (Figura 1b). También se pueden añadir bloques de procesamiento de señales digitales (DSP) (llamados rebanadas DSP) y bloques de serializador/deserializador de alta velocidad (SERDES) (Figura 1c).
Figura 1: Las FPGA más sencillas contienen solo tejido programable e IO de propósito general configurable (GPIO) (a); las diferentes arquitecturas aumentan este tejido fundamental con bloques SRAM, PLL y gestores de reloj (b); bloques DSP e interfaces SERDES (c); y núcleos de procesador duro y periféricos (d). (Fuente de la imagen: Max Maxfield)
Las funciones de la interfaz periférica como CAN, I2C, SPI, UART y USB se pueden implementar como núcleos flexibles en la estructura programable, pero muchos FPGA las incluyen como núcleos rígidos en el silicio. Del mismo modo, los microprocesadores pueden implementarse como núcleos flexibles en la estructura programable o como núcleos rígidos en el silicio (Figura 1d). Las FPGA con núcleos de procesador duro se denominan FPGA de sistema en chip (SoC). Diferentes FPGA ofrecen distintos conjuntos de funciones, características y capacidades dirigidas a diferentes mercados y aplicaciones.
Hay varios proveedores de FPGA, entre ellos Altera (que fue adquirida por Intel), Atmel (que fue adquirida por Microchip Technology), Lattice Semiconductor, Microsemi (que también fue adquirida por Microchip Technology) y Xilinx.
Todos estos proveedores presentan múltiples familias de FPGA; algunos ofrecen FPGA de SoC, y otros ofrecen dispositivos tolerantes a la radiación que están dirigidos a entornos de alta radiación como el espacio. Elegir el mejor dispositivo para la tarea en cuestión puede ser complicado porque existen muchas familias, y cada una de ellas ofrece diferentes recursos.
Introducción de las FPGA de Microchip Technology
La oferta de FPGA de Microchip Technology abarca el rango bajo y medio, con un enfoque en dispositivos de baja potencia y alta seguridad con una fiabilidad excepcional. Al encontrar un amplio despliegue en comunicaciones alámbricas e inalámbricas, defensa y aviación, y aplicaciones industriales integradas, las FPGA de Microchip cuentan con recursos de DSP y memoria sólidos y demuestran su valor en aplicaciones como la aceleración de hardware, inteligencia artificial, procesamiento de imágenes y computación de borde.
Microchip ofrece tres familias principales de FPGA:
- FPGA IGLOO®2: Dispositivos de baja densidad con recursos significativos
- FPGA SoC SmartFusion®2: Dispositivos de baja densidad con recursos significativos y un núcleo de procesador duro de 32 bits
- FPGA y FPGA SoC PolarFire™: Dispositivos de alto rendimiento, de costo optimizado, implementados en tecnología de proceso de 28 nanómetros (nm)
Todas las FPGA tienen células de configuración que determinan la funcionalidad de cada uno de los bloques lógicos programables, y la forma en que los bloques lógicos están conectados entre sí y con el mundo exterior. Estas celdas también se utilizan para configurar el estándar de interfaz de la GPIO, la impedancia de entrada y la velocidad de giro de salida, etc.
Algunas FPGA utilizan celdas de configuración basadas en SRAM, pero son volátiles, lo que significa que pierden su contenido cuando se quita la energía del sistema. A su vez, esto significa que los datos de configuración tienen que ser cargados desde una fuente externa, generalmente un dispositivo de memoria Flash, cuando el sistema se enciende. Estas FPGA son los que más tiempo tardan en encenderse y estar listos para su uso.
Algunas FPGA usan memoria Flash en chip para almacenar los datos de configuración, pero aún así tienen celdas de configuración basadas en SRAM. En este caso, al encenderse, un controlador en chip copia los datos de configuración de la memoria de configuración flash a las celdas de configuración SRAM. Estas FPGA se encienden más rápido que sus primos SRAM puros.
Las FPGA IGLOO2 y las FPGA SoC SmartFusion2 de Microchip emplean un mecanismo diferente en el que tanto la memoria de configuración en el chip como las celdas de configuración en el chip se implementan con tecnología flash. En el caso de los dispositivos PolarFire, las celdas de configuración se basan en la tecnología de memoria no volátil (NVM) de óxido de silicio-nitrógeno-óxido de silicio (SONOS), que puede considerarse "como el flash, pero mejor".
Dado que los datos de configuración se almacenan en células de flash no volátil (o SONOS), las FPGA de Microchip y las FPGA de SoC son "instantáneas". Es decir, se encienden más rápido que cualquier otro tipo de FPGA. La razón por la que estos dispositivos también cuentan con una memoria de configuración flash es que se puede cargar una nueva configuración en esta configuración mientras la FPGA siguen funcionando utilizando la configuración existente en sus celdas de configuración. Una vez que se ha completado y verificado la descarga de la nueva configuración (la configuración puede ser encriptada y acompañada de una verificación de redundancia cíclica (CRC)), el dispositivo puede ponerse en un estado seguro mientras que la nueva configuración almacenada en la memoria de configuración se utiliza para sobrescribir la configuración original almacenada en las celdas de configuración.
Dispositivos tradicionales: FPGA IGLOO2
Los IGLOO2 son buenas FPGA de gama baja y media. Esto es lo que muchos diseñadores considerarían como FPGA "tradicionales". Estos dispositivos FPGA flash son ideales para funciones de propósito general como los planos de control Gigabit Ethernet o PCI Express dual, funciones de puenteo, expansión y conversión de entrada/salida (E/S), procesamiento de video e imagen, gestión de sistemas y conectividad segura. Las aplicaciones abarcan todo el espectro, incluyendo las comunicaciones, la industria, la medicina, la defensa y la aviación.
Figura 2: Las FPGA IGLOO2 son ideales para funciones de propósito general como los planos de control Gigabit Ethernet o PCI Express dual, funciones de puenteo, expansión y conversión de E/S, procesamiento de video e imágenes, gestión de sistemas y conectividad segura. (Fuente de la imagen: Microchip Technology)
Las FPGA IGLOO2 ofrecen de 5,000 a 150,000 LE con un subsistema de memoria de alto rendimiento, hasta 512 kilobytes (Kbytes) de flash embebido, 2 x 32 Kbytes de memoria estática de acceso aleatorio (SRAM) embebida, dos motores de acceso directo a la memoria (DMA) y dos controladores de doble velocidad de datos (DDR). Los dispositivos también cuentan con hasta 16 carriles transceptores, bloques de procesador DSP integrados y memorias protegidas/tolerantes de evento único (SEU). Por seguridad, están endurecidos con análisis de potencia diferencial (DPA) y usan encriptación AES256 y SHA256 y comprobación de integridad de datos NVM a petición.
Un buen ejemplo de un dispositivo IGLOO2 es el M2GL025-FGG484I con 27.696 LEs, 1.130.496 bits de RAM y 267 E/S. Para permitir a los diseñadores investigar y experimentar con las características de la familia de FPGA de IGLOO2, Microchip también proporciona el correspondiente Kit de Evaluación IGLOO2, el M2GL-EVAL-KIT (Figura 3).
Figura 3: El M2GL-EVAL-KIT es un kit de evaluación para el IGLOO2 y viene con un alto nivel de integración de características junto con baja potencia, alta fiabilidad y seguridad avanzada. (Fuente de la imagen: Microchip Technology)
El M2GL-EVAL-KIT facilita el desarrollo de aplicaciones integradas que implican control de motores, gestión de sistemas, automatización industrial y aplicaciones de E/S en serie de alta velocidad, así como PCI Express y Gigabit Ethernet. El kit ofrece un alto grado de integración de características, así como baja potencia, alta fiabilidad y seguridad avanzada. La placa también cumple con el formato PCIe de pequeño tamaño, lo que permite a los desarrolladores hacer prototipos utilizando cualquier PC de escritorio o portátil con una ranura PCIe.
SoCs de nivel de entrada: FPGA SoC SmartFusion2
Las FPGA de SoC SmartFusion2 están basadas en el tejido programable tradicional que se encuentra en los dispositivos IGLOO2 aumentado con un núcleo de procesador duro de 32 bits. Dado que el procesador es un miembro bien conocido de la familia Arm® Cortex®, la familia SmartFusion2 proporciona un gran punto de entrada al mundo de los FPGA de SoC.
Estas FPGA SoC ofrecen de 5,000 a 150,000 LE con un procesador ARM Cortex-M3 de 166 megahertz (MHz), incluyendo una macrocelda de trazas (ETM) y un caché de instrucciones con eSRAM en el chip y NVM incorporado (eNVM), junto con un completo subsistema de microcontrolador aumentado con un extenso conjunto de periféricos que incluyen CAN, TSE y USB.
Figura 4: Las FPGA de SoC SmartFusion2 ofrecen de 5,000 a 150,000 LE con un procesador Arm Cortex-M3 de 166 MHz, incluyendo ETM y caché de instrucciones con eSRAM y eNVM en el chip, junto con un completo subsistema de microcontrolador aumentado con un extenso conjunto de periféricos que incluyen CAN, TSE y USB. (Fuente de la imagen: Microchip Technology)
Estos dispositivos de FPGA SoC flash son ideales para funciones de propósito general como Gigabit Ethernet o planos de control PCI Express duales, funciones de puenteo, expansión y conversión de E/S, procesamiento de video/imágenes, gestión de sistemas y conectividad segura. Una vez más, las aplicaciones son muchas y variadas, desde las comunicaciones, industriales y médicas, hasta la defensa y la aviación.
Un buen ejemplo de un dispositivo SmartFusion2 es el M2S025-FCSG325I con 25,000 LE, 256 Kbytes de flash, 64 Kbytes de RAM, y un subsistema de procesador Arm Cortex-M3 de 32 bits que funciona a 166 MHz. Para permitir a los diseñadores investigar y experimentar con las características de la familia de FPGA SoC SmartFusion2 , Microchip también proporciona la correspondiente placa de fabricación de SmartFusion2, el M2S010-MKR-KIT (Figura 5).
Figura 5: La placa Maker Board SmartFusion2 es un kit de evaluación de bajo costo para la FPGA SoC SmartFusion2 que combina un procesador Arm Cortex-M3 con tejido FPGA basado en flash en un solo chip, junto con muchos de los periféricos a los que los usuarios de SoC están acostumbrados, como los bloques de RAM y DSP.(Fuente de la imagen: Microchip Technology)
La placa Maker Board SmartFusion2 de bajo costo, vendida exclusivamente por DigiKey, proporciona a los diseñadores acceso a la familia SmartFusion2. Este dispositivo en particular ofrece un tejido FPGA basado en flash con 12,000 LE, un procesador Arm Cortex-M3 de 32 bits y de 166 MHz, bloques DSP, SRAM, eNVM e interfaces GPIO todo en un solo chip.
La placa Maker Board SmartFusion2 añade una interfaz Ethernet, un sensor de luz ambiental, un flash SPI, ocho LED de usuario y dos pulsadores de usuario.La placa también tiene dos conexiones no pobladas que soportan los módulos ESP32 y ESP8266 Wi-Fi/Bluetooth (no incluidos). Soporta un puerto USB para la programación de JTAG, comunicaciones UART y la alimentación de la placa. La placa también cuenta con SPI flash, una fuente de reloj de 50 MHz y la capa física (PHY) VSC8541 de Microchip para Ethernet de 100 megabits por segundo (Mbits/s) o 1 gigabit por segundo (Gbit/s).
Optimizado en cuanto a costos y de alto rendimiento: FPGA PolarFire y FPGA SoC
Las FPGA PolarFire son dispositivos de alto rendimiento, de costo optimizado, implementados en tecnología de procesos de 28 nm. Estos dispositivos están diseñados para consumir la menor energía en densidades de rango medio con un alto grado de seguridad y fiabilidad.
La familia de productos abarca de 100,000 a 500,000 LE cuenta con transceptores de 12,7 Gbit y está diseñada para consumir hasta un 50% menos de energía que las FPGA de rango medio de la competencia.Los dispositivos son ideales para una amplia gama de aplicaciones dentro de las redes de acceso alámbricas y la infraestructura celular, los mercados de la defensa y la aviación comercial, así como la automatización industrial y los mercados de IoT.
Figura 6: Las FPGA PolarFire van de 100,000 a 500,000 LE cuentan con transceptores de 12.7 Gbit y están diseñadas para consumir hasta un 50% menos de energía que las FPGA de rango medio de la competencia. (Fuente de la imagen: Microchip Technology)
La principal razón por la que las FPGA PolarFire consumen hasta un 50% menos de energía total que las FPGA de la competencia es que utilizan la tecnología NVM tanto para la memoria de configuración en el chip como para las células de configuración en el chip. Esto produce una fuga inherentemente baja entre las células de configuración y también significa que estos dispositivos son también verdaderos "instantáneos" al momento de la puesta en marcha, lo que resulta en una corriente sin corriente de entrada y una corriente de configuración nula.
La ciberseguridad es la principal preocupación de los dispositivos conectados en el borde de la red, por lo que no basta con que los desarrolladores cumplan simplemente los requisitos funcionales de su diseño, sino que deben hacerlo de forma segura. La seguridad comienza durante la fabricación del silicio y continúa durante el despliegue y funcionamiento del sistema. Las FPGA PolarFire son presentadas por Microchip como las FPGA programables seguras más avanzadas de la industria.
Muchas aplicaciones de equipos electrónicos complejos tienen algún grado de requisitos de seguridad en su diseño. Las FPGA PolarFire están diseñadas para sistemas de alta confiabilidad, alta disponibilidad, seguridad y misión crítica en aplicaciones como la industrial, la aviación, la militar y las comunicaciones. Las características que hacen que el PolarFire sea adecuado para estas aplicaciones incluyen:
- Configuración de la FPGA con tasa de fallo cero en el tiempo (FIT)
- La SEU protegió las memorias
- Controladores de memoria con corrección de error simple, detección de error doble (SECDED)
- Autoprueba incorporada
- No se requiere ningún dispositivo de configuración externo
Un buen ejemplo de un dispositivo PolarFire es el MPF100T-FCSG325I con 109,000 LE, 7,782,400 bits de RAM y 170 E/S. Para permitir a los diseñadores investigar y experimentar con las características de la familia de FPGA PolarFire, Microchip también proporciona el correspondiente kit de evaluación de FPGA PolarFire, el MPF300-EVAL-KIT (Figura 7).
Figura 7: Para permitir a los diseñadores investigar y experimentar con las características de su familia de FPGA PolarFire, Microchip también proporciona el correspondiente kit de evaluación de FPGA MPF300-EVAL-KIT. (Fuente de la imagen: Microchip Technology)
El MPF300-EVAL-KIT ofrece una evaluación de alto rendimiento en una amplia clase de aplicaciones. Es ideal para la evaluación de transceptores de alta velocidad, 10 Gbit Ethernet, IEEE1588, JESD204B, SyncE, y CPRI, entre otros. Las conexiones del kit incluyen una tarjeta mezzanine (FMC) FPGA de alto conteo de pines (HPC), numerosos SMA, PCIe, RJ45 Ethernet Dual Gigabit, SFP+ y USB. Una FPGA PolarFire de 300,000 LE con flash DDR4, DDR3 y SPI permite desarrollar una amplia clase de diseños de alto rendimiento.
Continúan los avances en la línea del PolarFire. En el momento de escribir este artículo, Microchip Technology reveló detalles sobre su próxima familia de FPGA SoC PolarFire, que cuenta con un subsistema de microprocesador de código abierto de 64 bits basado en RISC-V, reforzado en tiempo real y con capacidad para Linux.
Diseño y desarrollo con las FPGA de Microchip Technology
Una de las técnicas más comunes que se utilizan para desarrollar con las FPGA es la del diseño basado en lenguaje (LDD). Esto implica capturar la intención del diseño a un nivel de abstracción conocido como nivel de transferencia de registro (RTL) utilizando un lenguaje de descripción de hardware (HDL) como Verilog, VHDL o SystemVerilog. Después de la verificación a través de la simulación lógica, esta representación se introduce en un motor de síntesis, junto con información adicional, como el tipo de FPGA objetivo, las asignaciones de pines y las restricciones de tiempo (por ejemplo, retrasos máximos de entrada a salida). La salida del motor de síntesis es un archivo de configuración que se carga directamente en la FPGA en el caso de una FPGA de Microchip o FPGA SoC, o se carga en un dispositivo de memoria externa en el caso de dispositivos basados en SRAM (Figura 6).
Figura 8: Tras la verificación mediante simulación lógica, la descripción del diseño RTL se introduce en un motor de síntesis, junto con detalles de diseño adicionales como el tipo de FPGA, las asignaciones de pines y las restricciones de tiempo. La salida del motor de síntesis es un archivo de configuración que se carga directamente en la FPGA. (Fuente de la imagen: Max Maxfield)
La Suite de diseño de SoC de Libero de Microchip cae dentro de esta clase de herramientas. Este software ofrece una completa suite de herramientas de desarrollo integradas, fáciles de aprender y de adoptar para diseñar con las FPGA IGLOO2 y PolarFire de Microchip, y las FPGA SmartFusion2 y SoC PolarFire. El conjunto integra la síntesis Synopsys Synplify Pro y la simulación ModelSim de Mentor Graphics con herramientas de gestión de restricciones, programación y depuración, y soporte seguro de programación de producción.
Además de capturar los diseños en formato textual utilizando Verilog, VHDL o SystemVerilog, el conjunto también incluye una entrada gráfica por la que el sistema puede definirse como una jerarquía de bloques conectados, con los bloques de nivel inferior representados en HDL definidos por el usuario o como IP de terceros.
También está el System Builder, que es una herramienta de diseño fácil de usar que guía a los usuarios a través de una serie de preguntas de alto nivel que definirán el sistema deseado. El System Builder comienza haciendo preguntas sobre la arquitectura del sistema deseado, añade cualquier periférico adicional que se vaya a implementar como núcleos blandos en el tejido programable, y termina creando un sistema completo correcto por diseño.
Por último, pero no por ello menos importante, está el entorno de desarrollo integrado (IDE) de la SoftConsole, que facilita el rápido desarrollo de software C/C++ de 32 bits basado en metal desnudo y RTOS para procesadores blandos instanciados en las FPGA y FPGA SoC de Microchip, junto con los núcleos de procesador duro de 32 y 64 bits que se encuentran en las FPGA SmartFusion2 y SoC PolarFire, respectivamente.
Conclusión
Las soluciones óptimas de diseño de procesamiento a menudo son proporcionadas por combinaciones de procesadores y FPGA, por FPGA por sí solas o por FPGA que cuentan con núcleos de procesadores duros como parte de su tejido. Como tecnología, las FPGA han evolucionado rápidamente a lo largo de los años y son capaces de hacer frente a muchos requisitos de diseño en términos de flexibilidad, velocidad de procesamiento y potencia, lo que las hace muy útiles para una amplia gama de aplicaciones, desde interfaces inteligentes hasta visión artificial e inteligencia artificial.
Como se muestra, las ofertas de FPGA y FPGA SoC de Microchip Technology abarcan el rango bajo y medio, con un enfoque en dispositivos de baja potencia y alta seguridad con una fiabilidad excepcional. Las FPGA tienen un sólido procesamiento de señales y recursos de memoria y son una excelente plataforma sobre la que desarrollar aplicaciones como la aceleración de hardware, la inteligencia artificial, el procesamiento de imágenes y la computación de vanguardia en industrias que van desde las comunicaciones y la industria, hasta el ejército y la aviación.
Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.




