DDR3 UniPHY 10.1 Core Burst of 8 vs. 4 Behavior?
I am using the DDR3 UniPHY SDRAM Controller from Quartus 10.1 with Half-Rate PHY. I want to utilize the full bandwidth of the DDR Memory interface as much as possible thereby trying to perform Burst of 8 accesses on the I/O as much as possible. I will mostly be accessing addresses in long burst of sequentially increasing addresses. I am having trouble understanding the behavior I am seeing in my simulation between the local interface and the Memory I/O interface. I am performing a series of bursts with my local burst length always set to 2. Sometimes in my simulation I see series of multiple bursts occur with burst of 8 accesses on the I/O as I would expect. Sometimes I see a series of bursts performed using a Burst Chop of 4 instead. It looks like the series of Burst Chop of 4 is occurring when the first access is only a partial write. It makes sense to me that the partial write/read is a burst chop of 4, but all the subsequent accesses in that group of sequentially increasing addresses are also Burst Chop of 4. I would have expected all of these to change back to Bursts of 8 accesses.
Could someone, maybe from Altera, help me understand the behavior of this core better and why I might be seeing the above behavior? i.e. What causes the core to decide to use Burst Chop of 4 vs. Burst of 8? Also, since I have local_burst_size always equal to 2, should I set the Max Avalon-MM Burst Length to 2. What is different in the core if I have this number set to 16 instead of 2? Could the command queue look-ahead depth have an effect on what I am seeing? How would increasing this value have an effect on the behavior of the core? Would it change how many accesses occur before local_ready goes low? Thanks for Any help you can provide!