Red de conocimiento informático - Aprendizaje de programación - Diferencias de software y hardware entre FPGA y CPU

Diferencias de software y hardware entre FPGA y CPU

Llevar el diseño de software al siguiente nivel

Ir más allá de las aplicaciones de lógica adhesiva FPGA requiere una visión más amplia que incluya el aprovechamiento de dispositivos programables para llevar la mayor cantidad de hardware posible al ámbito del software. Esto incluye la introducción de la funcionalidad del procesador en sí y, hoy en día, los procesadores de software en FPGA se transforman cada vez más en plataformas integradas. Fundamentalmente, los procesadores de software que utilizan FPGA ofrecen las ventajas de una arquitectura flexible, un tamaño de placa de circuito más pequeño y una operación simple. Pero las aplicaciones más profundas aportan ventajas aún más convincentes.

Cuando la naturaleza programable de los FPGA se utiliza para acceder a las capas de abstracción de nivel superior del procesador, se abren infinitas posibilidades para los desarrolladores integrados: no solo se pueden implementar diseños de capas de abstracción en el software, sino también implementar Diseño de capas de abstracción en hardware. Imagine un sistema en el que el procesador está conectado a la memoria y los periféricos a través de hardware configurable (esencialmente un paquete de hardware); esto abstrae la interfaz del procesador. Simplemente reprogramando la FPGA, se puede cambiar el paquete de hardware, lo que permite a los diseñadores de sistemas cambiar fácilmente los núcleos del procesador o incluso cambiar entre procesadores duros y 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 aplicación requiere un compilador que pueda proporcionar compatibilidad de nivel C entre procesadores.

La ventaja de este sistema es que no es necesario seleccionar un procesador "de antemano". Es posible que se haya desarrollado un sistema utilizando un determinado procesador, pero durante la fase de desarrollo se dio cuenta de que se necesitaba más rendimiento y se utilizó un dispositivo más rápido. Gracias a la capa de encapsulación, el procesador puede ser un núcleo blando, un núcleo duro o incluso un núcleo de procesador de hardware dentro de una FPGA sin afectar el hardware circundante, porque la capa de traducción solo crea interfaces estándar para periféricos. De hecho, la conexión con el propio dispositivo periférico se puede abstraer de la misma manera. En este enfoque, la FPGA se convierte efectivamente en el tejido de interconexión del sistema al proporcionar una conexión universal para todos los componentes del sistema integrado. En otras palabras, se convierte efectivamente en la "columna vertebral" de las interfaces estándar que permiten que el hardware y el software se comuniquen fácilmente con procesadores y periféricos.

Finalmente, la introducción de una capa de encapsulación transparente encima del procesador crea un entorno de desarrollo basado en FPGA que proporciona una verdadera independencia del procesador. Se aumentan las velocidades de desarrollo de software y hardware, la selección del procesador se puede realizar en una fase avanzada del proceso de diseño y es posible un codiseño efectivo de software/hardware.