Frage zu AXI: untere Adressbits

Gast #7016645
Lesenswert?
• ▲
▼
Guten Tag,

ich habe mal eine grundsätzliche Frage zum AXI4-Protokoll. Nehmen wir 
an, ich habe einen 128 bit breiten AXI und möchte aber nur ein 64 bit 
Wort an Adresse 0x8 (64 bit aligned) schreiben.

Ich würde jetzt spontan sagen, dass ich dafür
awaddr = 0x8
wdata = (my_64_bit_data << 64)
wstrb = 0xFF00

setzen muss. Stimmt das so?


Meine konkrete Frage daran ist: Die AXI Adressen sind "byte" basiert. 
Jedoch scheint das für mich in Verbindung mit den Write Strobes 
redundant. Bzw. anders gefragt:

Was passiert, wenn ich Folgendes mache?

awaddr = 0x0 -- <- Hier ist jetzt was anders ;)
wdata = (my_64_bit_data << 64)
wstrb = 0xFF00

Welchen Einfluss haben die unteren Adressbits?
#7017047
Lesenswert?
• ▲
▼
Ich finde das kommt auf das AXI-System an, oder es ist vielleicht im 
Standard schon klar gestellt. Allgemein zählt das Thema zu 
"aligend/unaligned" Transfers.

Normalerweise bist du schon auf 128bit aligned. Es ist die Frage, ob die 
Komponenten unaligned Transfers unterstützen. Normalerweise würde ich 
nein sagen, denn gern werden die unteren Bits abgeschnitten. z.B. 32bit 
(0x0,0x1,0x2,0x3) -> 0x0, wobei unaligned (0x1-0x3) auch mal einen Bus 
Error zurückgeben kann.

Variante 1) addr 0x0, denn du willst nur in die oberen 64bit
awaddr = 0x0
wdata = (my_64_bit_data << 64)
wstrb = 0xFF00

Variante 2) unaligned
awaddr = 0x8
wdata = my_64_bit_data
wstrb = 0x00FF


Variante 1 ist für mich die übliche Variante. Trotzdem empfehle ich dir 
das einfach auszuprobieren.
Gast #7017176
Lesenswert?
• ▲
▼
Ja, hängt von Slave ab. Bei dem AMBA-Viech, das ich zuletzt in der Mache 
hat, musste man ein verkürztes Alignment bei bestimmten boundaries immer 
auf 2 Zugriffe aufteilen, mit jeweils invertierten Strobes.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.