Forum: FPGA, VHDL & Co. Frage zu AXI: untere Adressbits


von M. Н. (Gast)


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?

von Klakx -. (klakx)


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.

von Otto (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.