¿Cuándo sería AXI4Lite una mejor opción que el bus APB?

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.

Los del equipo AXI4Lite argumentan que muchos bloques IP de FPGA de terceros utilizan el bus AXI; en el lado opuesto, 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 uno sobre el otro? ¿Hay escenarios en los que un bus podría requerir más recursos que el otro? ¿Hay una razón fuerte para migrar a uno sobre el otro?

AXI es el futuro, APB/AHB es el pasado. ¿Su diseño seguirá evolucionando durante muchos años? Y está el "Si funciona, no lo arregles".
@TEMLIB El diseño seguirá evolucionando durante muchos años; por ese motivo, analizamos nuestro diseño actual y tratamos de determinar qué medidas positivas se pueden tomar para aumentar la eficiencia, la escalabilidad y la mantenibilidad.

Respuestas (1)

La diferencia sustancial entre AXI-Litey APBes 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 el recurso de enrutamiento/búfer.

Espero que sus periféricos APB existentes usen un bus de datos de 32 bits, por lo que la conversión a AXI sería menos trivial de lo que anticipa, a menos que tenga interfaces AXI adecuadas que ya se puedan reutilizar.

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 retener APB en su diseño (para componentes de depuración o similares), entonces el esfuerzo de migrar parece menos probable que le dé un buen retorno.

Vale la pena señalar que los procesadores Cortex-M todavía usan AHB, y APB se usa tanto para la depuración como (con mucha menos frecuencia) las interfaces de configuración de algunos periféricos.