Cómo realizar un desarrollo heterogéneo de cpu+fpga
Elevar el diseño de software a un nivel superior
Ir más allá de las aplicaciones de lógica adhesiva FPGA requiere una visión más amplia, que incluya hacer un uso completo de los dispositivos programables e introducir tanto hardware como sea posible en el software. campo . Esto incluye la introducción de la funcionalidad del procesador en sí y, hoy en día, los procesadores de software dentro de los FPGA se están transformando cada vez más en plataformas integradas. Básicamente, cambiar a procesadores de software con FPGA traerá las ventajas de flexibilidad arquitectónica, tamaños de placa más pequeños y simplicidad. Pero una aplicación más profunda traerá ventajas más atractivas.
Cuando las funciones programables de FPGA se utilizan para obtener la capa de abstracción en la parte superior del procesador, se abren posibilidades ilimitadas para los desarrolladores integrados, no solo para implementar diseños de nivel de abstracción en software, sino también en hardware. También realizado. Considere un sistema donde un procesador está conectado a su memoria y periféricos a través de hardware configurable (esencialmente un contenedor de hardware); esto abstrae la interfaz del procesador. Simplemente reprogramar la FPGA cambia el paquete de hardware, y los diseñadores de sistemas pueden cambiar fácilmente los núcleos del procesador e incluso cambiar entre procesadores duros o blandos sin modificar otro hardware del sistema. Desde la perspectiva del sistema, todos los procesadores son similares, lo que simplifica el proceso de diseño del hardware. Por supuesto, extender esto al software de aplicaciones también requiere compiladores que puedan proporcionar compatibilidad de nivel C entre procesadores.
La ventaja de este sistema es que no es necesario elegir el procesador "por adelantado". Es posible que el sistema se haya desarrollado utilizando un determinado procesador, pero durante el desarrollo se descubrió que se necesitaba un mayor rendimiento y se adoptó un dispositivo más rápido. Debido a la capa envolvente, el procesador puede ser blando, duro o incluso un núcleo de procesador de hardware dentro de la FPGA sin afectar el hardware circundante, porque la capa de traducción solo crea una interfaz estándar para conectar periféricos. De hecho, las conexiones a los propios dispositivos periféricos se pueden abstraer de la misma manera. En este enfoque, la FPGA proporciona conectividad universal a todos los componentes del sistema integrado, convirtiéndose efectivamente en el tejido de interconexión del sistema. En otras palabras, se convierte efectivamente en la "columna vertebral" de la interfaz estándar a través de la cual tanto el hardware como el software pueden comunicarse fácilmente con el procesador y los periféricos.
Finalmente, introducir una capa envolvente transparente en la parte superior del procesador creará un entorno de desarrollo basado en FPGA, proporcionando una verdadera independencia del procesador. Se aumentan las velocidades de desarrollo de software y hardware, la selección del procesador se puede mover más adelante en el proceso de diseño y es posible un codiseño efectivo de software/hardware.