Estou trabalhando para melhorar e limpar um projeto FPGA grande e já funcional que possui um barramento de dados de 64 bits. Uma das perguntas que surgiram é:
"devemos fazer a transição de todos os nossos ônibus para o AXI4Lite / APB ou devemos deixá-los como estão?"
Alguns são AXI4Lite e outros são APB.
Os membros da equipe AXI4Lite argumentam que muitos blocos IP FPGA de terceiros usam o barramento AXI; no lado oposto, colegas sugerem que o barramento APB possa usar menos recursos (FFs e LUTs) - embora eu não tenha sido capaz de confirmar isso.
Estou do lado de escolher uma e ficar com ela .
Que motivos existem para escolher um sobre o outro? Existem cenários em que um barramento pode exigir mais recursos que o outro? Existe uma forte razão para migrar para um sobre o outro?
Respostas:
A diferença substancial entre
AXI-Lite
eAPB
é que o AXI implementa endereços de leitura e gravação independentes. Portanto, há um pouco mais de sinalização de controle e provavelmente um aumento de ~ 33% no recurso de roteamento / buffer.Eu esperava que seus periféricos APB existentes usassem um barramento de dados de 32 bits, portanto a conversão para AXI seria menos trivial do que você imagina - a menos que você tenha interfaces AXI adequadas que já possam ser reutilizadas.
A transição para o AXI deve melhorar a largura de banda e, se você conseguir fazer a transição de 100%, deve simplificar o suporte contínuo. Se os periféricos em questão são de baixa atividade ou você precisa manter o APB em seu design (para componentes de depuração ou similares), o esforço de migrar parece menos provável para dar um bom retorno.
É importante notar que os processadores Cortex-M ainda usam AHB, e o APB é usado para interfaces de configuração de depuração e (com muito menos frequência) de alguns periféricos.
fonte