Estoy trabajando para mejorar y limpiar un diseño FPGA grande ya funcional que tiene un bus de datos de 64 bits. Una de las preguntas que surgieron es:
"¿deberíamos hacer la transición de todos nuestros autobuses a AXI4Lite / APB, o deberíamos dejarlos como están?"
Algunos son AXI4Lite y otros son APB.
Aquellos en el equipo AXI4Lite argumentan que muchos bloques IP FPGA de terceros usan el bus AXI; Por otro lado, los colegas sugieren que el bus APB puede usar menos recursos (FF y LUT), aunque no he podido confirmarlo.
Estoy del lado de elegir uno y seguir con él .
¿Qué razones hay para elegir una sobre la otra? ¿Hay escenarios en los que un autobús podría requerir más recursos que el otro? ¿Hay alguna razón fuerte para migrar a uno sobre el otro?
Respuestas:
La diferencia sustancial entre
AXI-Lite
yAPB
es que AXI implementa direcciones de lectura y escritura independientes. Por lo tanto, hay un poco más de señalización de control, y probablemente un aumento de ~ 33% en los recursos de enrutamiento / almacenamiento en búfer.Me gustaría contar con sus periféricos APB existentes utilizar un bus de datos de 32 bits, por lo que la conversión a AXI sería menos trivial de lo que anticipamos - a menos que tenga las interfaces AXI adecuados que pueden ser re-utilizado ya.
La transición a AXI debería mejorar el ancho de banda y, si puede realizar la transición al 100%, debería simplificar el soporte continuo. Si los periféricos en cuestión tienen poca actividad, o si necesita conservar APB en su diseño (para componentes de depuración o similares), entonces el esfuerzo de migración parece menos probable que dé un buen retorno.
Vale la pena señalar que los procesadores Cortex-M todavía usan AHB, y APB se usa para las interfaces de depuración y (mucho menos a menudo) de configuración de algunos periféricos.
fuente