customizing DDR addressing

Status
Not open for further replies.

rudyb

Newbie level 4
Joined
Aug 24, 2013
Messages
5
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Visit site
Activity points
53
Hi,
I am working on a ZedBoard, which essentially has a Zynq FPGA, with two 16-bit DDR3 SRAMs, which are configured in parallel to form a 32-bit 'virtual device' with common address and control connections.
As I just mentioned, unfortunately, the two DDR dies are not separately addressed.
I would like to know whether it is possible to treat these two as seperate DDR components?
In other words, I would prefer to control the data that is written into RAMS. For example, I would like to target only one of the DDR dies, and I would like to leave the other one untouched.
Is this doable, knowing that the board is configured as parallel combined address line? How can this be done?

Thanks,
--Rudy
 

I'm not sure for this board. can you determine if the DDR3's are connected to the "PS" io pins, or the "PL" io pins. IIRC, the processor (PS) pins are not readily accessed from the programmable logic (PL) pins.

You might also look into accessing ram via the AXI/DMA on the ARM section as well.
 

I believe that it can be accessed with PL fine. Both PS and PL can access the DDRs.
Someone told me that when you write a 32-bit wide data to a specific address, 16-bits will get stored in one of the DDR dies, and the other 16-bit would get stored in the second DDR die !
To be more specific, he mentioned that Byte-0 and Byte-1 will get stored in one DDR, and Byte-2 and Byte-3 in the on DDR !
This makes intuitive sense, but is this how it gets stored for certain?

Will there be a way for me to verify this? Because I am afraid if try to read back from memory with the processor (in software), I will always get a 32-bit wide data back, since the processor only communicate with SDRAM on 32-bit wide boundary, correct?

So, could you recommend any method for verification?
Will there be anyway to temporarily disable one of the DDRs, and when I am reading back a 32-bit wide data, I would only see that 16-bit of this data is valid, which would correspond to either (Byte-0 & Byte-1), or (Byte-2, and Byte-3) !
Or, maybe there is an easier way to verify this, but I just cannot see it?

Thanks,
--Rudy
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…