Alchitry Forums
Some confusion about Au DDR3 interface - Printable Version

+- Alchitry Forums (https://forum.alchitry.com)
+-- Forum: Alchitry (https://forum.alchitry.com/forum-1.html)
+--- Forum: General Questions (https://forum.alchitry.com/forum-2.html)
+--- Thread: Some confusion about Au DDR3 interface (/thread-293.html)



Some confusion about Au DDR3 interface - fungineering_101 - 01-07-2021

Hi - I'm trying to work out exactly how this is addressed, and something's wrong with my math.

Starting assumption - it's a 256MB part, and has a 28-bit address field - which is really a 25-bit field since the last 3 are reserved as 0s for ordering.  So there are 2**25 => 33,554,432 distinct addresses.  Which is each address was for an 8-byte block, that multiplies back to 256 MB - but the data in bus is 128-bits / 16 bytes wide?

Do these overlap?  Can I write to address '1' by writing 9 bytes into address '0'?

Alternatively, if it was really a 24-bit address field, with each address being a 16-byte/128-bit block, that would seem like a simpler explanation, if maybe the part interface is shared with a 512MB module and the MSB is unused in the Au's part.


RE: Some confusion about Au DDR3 interface - alchitry - 01-14-2021

So the data bus is only 16 bits wide but the DDR3 controller always operates in bursts of 8 so you end up with the last three address bits being 0 and reading/writing in 128 bit chunks. This is a design choice of the controller and not a restriction of the DDR3 itself.

This means each of the addresses excluding the last three bits are 16 bytes wide. This gives you 2^24 addresses as you pointed out. The MSB is always 0 since it corresponds to the "bank" which is used when you have multiple DDR3 chips.