Forum Discussion
Altera_Forum
Honored Contributor
12 years agoAvalon-MM-Slave address alignment
Hi All I have aquestion regarding the address alignment of a an-MM slave. My MM-Save has an avs_readdata and avs_writedata port each 512 bit wide. Now I'm trying to write the custom prip...
Altera_Forum
Honored Contributor
12 years agoIIRC the Nios won't generate burst transfers either (except maybe for cache line transfers).
So qsys will probably have added a burst adapter! Personally I'd just define the correct values and ignore the Altera definitions - they just confuse things. qsys will show a base address for your slave of (say) 0x123000, fix this rather than letting qsys assign the addresses. In your header file:#define MY_SLAVE_BASE 0x123000
struct {
volatile unsigned int reg_0;
....
} my_device registers;
extern struct my_device *my_device; In your source, and assuming you aren't using the MMU: struct my_device *my_device = (void *)(0x80000000 | MY_SLAVE_BASE); Then you can access my_device->reg_0 the same as any other variable. The fabric will convert the low address bits into byte enables for you. But note that the nios always does 32bit reads, char/short writes will assert the expected byte enables.