Altera_Forum
Honored Contributor
14 years agoNios II Burst Questions
Hi all,
I need some help regarding bursts. First of all, I have designed a custom Avalon peripheral which acts like a bridge between Avalon and a custom DDR controller. The custom DDR controller always bursts back (both for reads and writes), so I have implemented a caching mechanism between. Everything is operational, but now I have to implement bursting, which is fairly simple. However, I do not understand Avalon bus property BurstOnBurstBoundariesOnly. I have made burstcount to the length of 6 (5..0), so maximum number of transfers is 32. The BurstOnBurstBoundariesOnly property is set to true, and according to Avalon Bus specification, when this property is set, it should only burst with large bursts on burst boundaries (which means always bursting with 32 transfers on addresses that are multiple of 32). However, I can clearly see short transfers (lengths 3,5,8) on bus. I should probably mention that this is on Nios Instruction Master port only (I still haven't implemented write bursts, so I can't enable bursts on Data Master port yet). Now, everything works perfectly, but I am concerned that it might happen for Nios to ask for a burst of size, let's say 8, on address, let's say 27. This would mean that it would ask a burst which is between two burst blocks (0..31, 32..63), and that won't end well. Can anyone explain to me what's the practical use of this Avalon property, and whether it applies to both Instruction Master and Data Master ports? And whether my worries are justified? Thanks in advance!