banner

Noticias

Jun 09, 2023

Hackster's FPGAdventures: Creación de lógica utilizando Libero SoC en el kit Icicle Microchip PolarFire SoC

Hasta ahora, en nuestras FPGAdventures, hemos estado jugando con casi todo excepto el FPGA en sí mismo, observando cómo la parte de procesamiento de uso general del PolarFire SoC en el corazón del Icicle Kit de Microchip se puede usar para ejecutar todo, desde un Distribución de Linux a código completo, incluso ambos al mismo tiempo, cortesía de las inteligentes capacidades de multiprocesamiento asimétrico (AMP) de la plataforma.

Esta vez, nos estamos sumergiendo en la esencia real del kit: usar Libero SoC, el entorno de desarrollo integrado (IDE) de Microchip y la cadena de herramientas para sus productos FPGA, para crear un circuito lógico básico, sintetizarlo e implementarlo en la placa. .

Lo primero que debe entender sobre Libero SoC, una vez que haya pasado por los aros necesarios para registrarse para obtener una licencia gratuita e implementar el servidor de validación de licencias arcaicas en su estación de trabajo, es que los requisitos del sistema de Microchip están lejos de ser una recomendación, sino más bien una absoluta Requisito: cuando la empresa le dice que necesitará 16 GB de RAM, debe asegurarse de tener al menos 16 GB de RAM disponibles. Es posible ejecutar el software con menos, lo que puede inducirlo a pensar que todo va bien, pero descubrirá que sus proyectos fallan sin errores durante la etapa de síntesis. La herramienta de ubicación y ruta agota la memoria RAM del sistema y falla en el asesino de la falta de memoria, incluso para los diseños más simples, saliendo de una manera que falla el proceso pero sin un error correspondiente que le dirija hacia el problema.

Una vez que tenga a mano una estación de trabajo adecuadamente carnosa, debe comenzar a aprender los entresijos de lo que es una interfaz de usuario muy ocupada. La buena noticia para un fabricante que llega a todo esto desde el frío es que Microchip tiene una guía paso a paso, que lo guía a través del proceso, desde comenzar su primer proyecto hasta sintetizar el flujo de bits y actualizarlo en el FPGA. Es en gran medida un tutorial sobre rieles, pero suficiente para comenzar y aprender los conceptos básicos de la interfaz Libero SoC algo desordenada. Desafortunadamente, en realidad no es directamente aplicable al PolarFire SoC Icicle Kit; en cambio, fue escrito para el PolarFire Splash Kit anterior de la compañía.

Para la mayor parte del proceso, eso no importa. Comenzar un nuevo proyecto es lo mismo para cualquiera de los kits de desarrollo de Microchip o productos FPGA simples, aunque deberá averiguar con cuál de las numerosas variantes de PolarFire SoC está trabajando para configurar el entorno correctamente. Sin embargo, solo cuando haya llegado a la parte esencial del proceso y comience a diseñar algo, se encontrará con un obstáculo real: los números de pin y las funciones del PolarFire SoC no coinciden con el PolarFire anterior, y como un Como resultado, las instrucciones del tutorial para el PolarFire Splash Kit no se pueden aplicar directamente al PolarFire SoC Icicle Kit.

No hay una solución rápida real para esta barra, lo obvio: cambiar los números de pin sugeridos por los disponibles, y de uso práctico, en el PolarFire SoC Icicle Kit. Para hacer eso, debe extraer los esquemas de PolarFire SoC y profundizar en la numeración de pines para descubrir qué entradas y salidas podría aplicar a su diseño para que realmente haga algo útil; no hay un mapeo predeterminado útil en Libero SoC, lo que le permitiría, por ejemplo, seleccionar "LED1" de una lista desplegable. Entonces, este debería ser el primer paso de cualquier proyecto dado, y puede que le resulte útil hacer una pequeña hoja de trucos de pines comunes para tener a mano mientras trabaja con el Icicle Kit.

Hay un enfoque alternativo, aunque no se trata en los tutoriales de la empresa: el diseño de referencia del kit de carámbano SoC PolarFire, publicado por Microchip en GitHub bajo una licencia de código abierto no especificada. Esto proporciona un script que se puede cargar en Libero SoC para generar gateware con, explica la empresa, "la misma funcionalidad o una funcionalidad más amplia" que la que ya está cargada en el FPGA de fábrica, útil si, habiendo progresado considerablemente más a lo largo de la curva de aprendizaje que los tutoriales lo guiarán, desea ampliar o mejorar la funcionalidad de stock en lugar de reemplazarla por completo.

Cargar el script en Libero SoC se desvía del tutorial paso a paso, pero es posible combinar los dos enfoques en uno. "Es muy útil como punto de partida", explica Leonardo DiCarlo de Microchip sobre el proyecto de referencia. "Ni siquiera necesita generar el proyecto, simplemente puede usar como referencia las mismas restricciones que se usan allí. En el [archivo] ICICLE.pdc encontrará las cosas habituales que se usan para las pruebas, como botones de interruptor, LED, etc. Puede importe directamente ese archivo. Solo debe asegurarse de que el nombre del puerto de salida que utilizó coincida con el que se usa allí, de lo contrario, puede modificar el nombre ".

Como es de esperar de una herramienta de nivel empresarial para el trabajo de desarrollo de FPGA, Libero SoC no es el software más acogedor para los recién llegados, incluidos los fabricantes. Las guías de Microchip lo ayudarán hasta cierto punto, pero definitivamente tendrá que pasar mucho tiempo jugando con él antes de sentirse seguro, especialmente si está llegando a los FPGA desde una plataforma de acceso más inmediato como los microcontroladores.

Vale la pena la inversión, y SmartDesign de Microchip es clave para ayudarlo a ponerse de pie lo más rápido posible. Tradicionalmente, el gateware para FPGA se escribe a mano usando un lenguaje de descripción de hardware (HDL), un enfoque basado en texto similar a escribir MicroPython para una Raspberry Pi RP2040 o C/C++ para Arduino. SmartDesign es algo más cercano a Scratch, pero para los FPGA: los diseños de hardware se pueden esbozar en la pantalla como esquemas y Libero SoC los convierte automáticamente en código HDL y, a partir de ahí, gateware.

Mejor aún, Microchip proporciona una biblioteca saludable de componentes que se pueden cargar en Libero SoC y utilizar como componentes básicos para el diseño de su gateware: todo, desde puertas lógicas booleanas básicas hasta memorias y dispositivos de entrada/salida. La biblioteca se puede buscar libremente, aunque las partes a menudo reciben nombres como "DFN1C0", que quizás son un poco oblicuos para el recién llegado, y un objeto elegido simplemente se arrastra al SmartDesign Canvas, donde se convierte en un símbolo esquemático.

Para probar la funcionalidad, seguimos la guía del tutorial de Microchip y elegimos posiblemente el componente más simple: una compuerta AND booleana, que envía su salida singular alta solo cuando ambas entradas también son altas. Agregar al diseño es un caso simple de arrastrar y soltar, aunque el cableado de sus entradas y salidas lleva un poco más de tiempo.

Para nuestro diseño de compuerta AND simple, necesitamos dos entradas (interruptores de botón, para hacer las cosas lo más fáciles posible cuando llega el momento de probar el hardware) y una sola salida. Examinar el esquema o los archivos del proyecto de muestra revela que el pin V14 se conecta al LED1, dándonos nuestra salida; V19 y U18 se conectan a un interruptor de botón cada uno, proporcionando las dos entradas que necesitaremos para interactuar con nuestro diseño básico de FPGA. Si quisiéramos conectar botones externos, otros pines se conectan al encabezado de entrada/salida de uso general (GPIO) estilo Raspberry Pi o al zócalo mikroBUS, pero para nuestros propósitos, los interruptores de botón integrados funcionarán bien.

Una vez que las patas virtuales de la pieza están conectadas, lo que requiere algunos pasos menos obvios que incluyen "promover" sus conexiones al "nivel superior", crear el HDL es un proceso de un solo clic. En este punto, los requisitos de memoria para Libero SoC no han sido un problema, pero el siguiente paso del proceso, la síntesis, es donde el software comienza a consumir RAM. Al hacer doble clic en la opción Sintetizar en Design Flow, comienza el proceso de convertir su creación en un gateware cargable en la FPGA, llamando a una herramienta externa llamada Synplify Pro, cuya licencia está incluida en la licencia gratuita Libero SoC disponible para todos los PolarFire SoC Icicle Kit. usuarios Es esto lo que maneja la "compilación" del HDL, incluido el lugar y la ruta, el equivalente FPGA de colocar las huellas de los componentes en una PCB y vincularlas con las pistas del circuito.

Para un diseño simple como la puerta AND, es un proceso bastante rápido, pero a medida que aumenta la complejidad del diseño, también lo hacen el tiempo y la memoria necesarios para la síntesis. Haga que su diseño sea demasiado complejo y se quedará sin recursos en el FPGA (exactamente de la misma manera que puede quedarse sin memoria o almacenamiento de programas en un microcontrolador) y tendrá que reducirlo o elegir un chip de mayor especificación. en la familia PolarFire SoC.

Una vez que se completa la síntesis, es posible implementar el gateware en el FPGA, aunque no se recomienda. En su lugar, los diseños de FPGA primero deben ejecutarse mediante simulación; ahí es donde la documentación de Microchip retrocede rápidamente. El tutorial del PolarFire Splash Kit de la empresa, que hemos estado siguiendo hasta ahora salvo los cambios necesarios para la compatibilidad con PolarFire SoC, omite por completo este paso, y es difícil culpar a la empresa por ello, ya que es un tema extremadamente complejo. Todo lo que necesita está en Libero SoC, pero aunque encontrarlo es bastante sencillo, en realidad poder usarlo es mucho aprendizaje.

Saltar la simulación proporciona una ruta rápida a la recompensa de poder presionar botones en el kit de carámbanos y hacer que un LED se encienda y apague como resultado, lo que demuestra que, de hecho, creó una puerta Y funcional, que está vinculada a la pines de su elección y, de los pines, los interruptores de botón y los LED del Icicle Kit, pero no lo ayudarán cuando llegue el momento de diseñar proyectos más complejos.

Y es aquí donde las esperanzas de Microchip de ver que el PolarFire SoC Icicle Kit se adopte ampliamente en la comunidad de fabricantes, en lugar de solo en la industria y la academia, podrían derrumbarse. Su documentación para principiantes está escrita para una placa de desarrollo más antigua, no para el nuevo y brillante PolarFire SoC Icicle Kit, y abandona al lector ante lo que podría decirse que es la parte más compleja y vital del flujo de diseño; sin material nuevo que se adapte mejor a la nueva audiencia objetivo de la compañía, es probable que muchos fabricantes abandonen la plataforma por algo más accesible antes de construir algo más complejo que un sumador.

Si es así, es una pena: la potencia y la flexibilidad del SoC PolarFire son impresionantes, así como su capacidad para combinar FPGA y procesamiento de propósito general de clase de aplicación en un solo dispositivo. Hay mucho potencial para creaciones interesantes, y si Microchip puede encontrar una manera de derribar las barreras, hay poco límite para lo que la comunidad de fabricantes podría hacer con el Icicle Kit y los chips PolarFire SoC que lo impulsan.

Únase a nosotros la próxima vez que veamos algunas de las cosas que la comunidad ya ha estado haciendo con PolarFire SoC y hable con Microchip sobre sus planes para el futuro de la plataforma.

Más información sobre el PolarFire SoC Icicle Kit está disponible en el sitio web de Microchip y también se puede encontrar en la página de productos de Avnet.

Lea toda la serie:

COMPARTIR