Forum Discussion
Altera_Forum
Honored Contributor
14 years agoI add my two cents:
IORD/IOWR assume addresses to be offset by the width of the bus. Then for a 32bit wide bus your logical offset 6000 would mean physical address (byte address) offset 6000*4. You could use IORD_8DIRECT/IOWR_8DIRECT, which work with raw byte address. However you must remind a couple of important points: - if the device is 32bit wide, IORD will present you 8bit data, but a full 32bit access is performed. It simply discards not required bits. - in Quartus V9 even if you had a 8 or 16 bit slave, the Avalon bus would still read a full 32bit word! Then for a 8bit slave, 4 byte reads were performed, no matter if you specify a single byte read!!! This is a sort of bug which was discussed in a few threads some time ago and AFAIK has not been fixed in recent updates.