Forum: FPGA, VHDL & Co. Register, Adressbereiche und Datenbreite


von Peter (Gast)


Lesenswert?

Hallo zusammen!

Ich habe mit dem EDK eine neue Komponente erzeugt, die an dem PLB hängt 
und 4 Register hat.
Wenn ich mir jetzt die automatisch erstellten Treiber dieser Komponente 
ansehe, muss ich feststellen, dass die 64-Bit breiten Register im 
Adressbereich immer den Abstand 0x8 haben.
Hier mal ein kleines Beispiel:

Register      | Basisadresse
--------------|-----------------------------
Register 00   | 0x40000000
Register 01   | 0x40000008
Register 02   | 0x40000010
Register 03   | 0x40000018

So ganz verstehe ich das nicht :(
Bedeutet das, dass eine Adresse (hexadezimal) 8-Bit speichert, oder wie?
Wenn ja, warum ist das so?

von thomas (Gast)


Lesenswert?

Deine Register sind nicht 64 Bit breit, sondern 8 Bit. Die Adresse hat 
64 Bit. Wenn Du also deine Register adressieren willst, dann müssen 
immer 8 Bit Abstand ziwschen den Adressen sein.

von thomas (Gast)


Lesenswert?

Hupps, Fehler.
Die Adresse adressiert genau 1 Byte. Ein 64 Bit Register hat also 8 
Byte. Die Adressen müssen also 8 Byte auseinander liegen.

von Peter (Gast)


Lesenswert?

Alles Klar, danke Thomas!
So in etwa meinte ich das auch ;)
Aber wieso entspricht eine Adresse genau 1 Byte?

von thomas (Gast)


Lesenswert?

Wieviel Bit/Byte adressiert werden, hängt von der Breite des Datenbusses 
ab. Bei einem 16 Bit Bus würdest Du mit einer Adresse gleich 2 Byte 
erhalten.

von Peter (Gast)


Lesenswert?

Gut, nochmal Danke!
Damit ist alles klar

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.