Altera_Forum
Honored Contributor
19 years agoaddress alignment during master write bursts?
Moin,
Have some strange behaviour right here: I'm using QII6.1 and the CyclonII-NIOS-Evalboard; have built a sopc containing (besides other things) a PLL generating the clock of 85MHz, NIOS-CPU, a DDR-SDRAM and a self built component having an avalon master port, doing some DMA to the SDRAM. This unit uses burstaccess for the SDRAM with different lengths (between 10-16 transfers). After that, i use the NIOS with some q&d software to read and display the contents of the SDRAM area. For tests i do a burst-transfer with length 11 of this data: 0x00000000,0x11111111,0x22222222,....0xaaaaaaaa Everything looks ok, left column is the memory address(=target of the DMA Transfer), right column looks like the transferred data.:82053a20 : 0
82053a24 : 11111111
82053a28 : 22222222
82053a2c : 33333333
82053a30 : 44444444
82053a34 : 55555555
82053a38 : 66666666
82053a3c : 77777777
82053a40 : 88888888
82053a44 : 99999999
82053a48 : aaaaaaaa But when i use another target address, which doesn't end on zero, but e.g. on 4, i get results like here: 82053a24 : 0
82053a28 : 11111111
82053a2c : 22222222
82053a30 : 77777777
82053a34 : 44444444
82053a38 : 55555555
82053a3c : 66666666
82053a40 : 55555555
82053a44 : 88888888
82053a48 : 99999999
82053a4c : aaaaaaaa Totally mixed up - but i couldn't find anything in the avalon-spec regarding the alignment of addresses at the beginning of burst transfers. With addresses ending on 0x8 or 0xc even worse, some of the transfers go also at lower addresses as the starting address... Does anybody have more information about this? Looks like i have to split my bursts into at least 2 parts to avoid alignment problems - but where can i find some information about the alignment sizes, burst sizes, etc.? Cheers, WK PS: Phase of SDRAM Clk should not be the issue, the NIOS alone is running properly and i have no changes in behaviour, when i change the phase (at the PLL) in a range of +/-45°