--- Quote Start ---
originally posted by mir@Jan 12 2005, 10:24 AM
with the new version of nios ii (1.1) a 8-bit register slave uses the same address scheme as a 32-bit register. byte accesses to offset 0, 1, 2 and 3 always result in an access to address 0. so every software address has to be multiplied by 4. --- Quote End ---
Mike,
Thanks for sharing your explanation here. One note, though, what you're describing is the difference between an avalon "memory slave" (called dynamic bus sizing) versus "register slave" (called native addressing). In a nutshell, the CPU always "thinks" in byte addresses, so when talking to a register slave the low two address bits may be shifted right (going from the CPU to the peripheral); thus, the CPU has to go to the next "word" in memory (address+4) to get to the next peripheral register, regardless of the data width of the peripheral.
My hunch is that somewhere in the upgrade process this mode (for your peripheral) got changed. If you'd like to pursue this further we can discuss more.. on the other hand if you're content with the current behavior I'll leave it at that.
BTW -- if you are not talking to memory, but rather registers, I would reccomend keeping the avalon mode as it is now.