Ich arbeite daran, ein bereits funktionsfähiges großes FPGA-Design mit einem 64-Bit-Datenbus zu verbessern und zu bereinigen. Eine der aufgeworfenen Fragen ist:
"Sollten wir alle unsere Busse auf AXI4Lite / APB umstellen oder sollten wir sie so lassen, wie sie sind?"
Einige sind AXI4Lite und einige sind APB.
Die Mitarbeiter des Teams AXI4Lite argumentieren, dass viele FPGA-IP-Blöcke von Drittanbietern den AXI-Bus verwenden. Auf der Gegenseite schlagen Kollegen vor, dass der APB-Bus möglicherweise weniger Ressourcen (FFs und LUTs) verbraucht - obwohl ich dies nicht bestätigen konnte.
Ich bin auf der Seite von Pick One und bleibe dabei .
Welche Gründe gibt es, einen über den anderen zu wählen? Gibt es Szenarien, in denen ein Bus möglicherweise mehr Ressourcen benötigt als der andere? Gibt es einen starken Grund, übereinander zu migrieren?
Antworten:
Der wesentliche Unterschied zwischen
AXI-Lite
undAPB
besteht darin, dass AXI unabhängige Lese- und Schreibadressen implementiert. Es gibt also ein bisschen mehr Steuersignalisierung und wahrscheinlich eine Erhöhung der Routing- / Pufferressourcen um ~ 33%.Ich würde erwarten, dass Ihre vorhandenen APB-Peripheriegeräte einen 32-Bit-Datenbus verwenden, sodass die Konvertierung in AXI weniger trivial ist als erwartet - es sei denn, Sie verfügen über geeignete AXI-Schnittstellen, die bereits wiederverwendet werden können.
Der Übergang zu AXI sollte die Bandbreite verbessern. Wenn Sie zu 100% wechseln können, sollte dies die laufende Unterstützung vereinfachen. Wenn die fraglichen Peripheriegeräte eine geringe Aktivität aufweisen oder Sie APB in Ihrem Design beibehalten müssen (für Debug-Komponenten oder ähnliches), ist es weniger wahrscheinlich, dass der Aufwand für die Migration eine gute Rendite bringt.
Es ist erwähnenswert, dass Cortex-M-Prozessoren immer noch AHB verwenden und APB sowohl für Debug- als auch (viel seltener) Konfigurationsschnittstellen einiger Peripheriegeräte verwendet wird.
quelle