Bug in Avalon-MM PCIe core for Non-Qword aligned writes
The "Avalon-MM Cyclone V Hard IP for PCI Express" does not appear to handle Non-Qword aligned writes correctly. I can't find anything in the datasheet that says only Qword aligned writes are allowed.
I do the following for writes from the root complex using iowrote32:
What shows up in SignalTap is the the attached.
For the qword aligned addresses, everything is fine. The address is in the bar2_address signal and the data is in the bar2_write_data signal.
For non-qword aligned addresses, the bar2_address is 0 and it puts that address in the lower 32-bits of bar2_write_data.
The data value is correct in all cases.
So is the Avalon-MM core unable to deal with non-qword aligned addresses. I was sort of hoping it would take care of such complexities as described in the Avalon-ST manual. But apparently not.
- Hi,
I see the misunderstanding. BAR 32/64-bit setting refers to address width. Data width is the native master width, can be 64 to 256 bit, in your design 64 bit. To see address and data presented to a 32-bit slave, tap the slave interface directly.
Regards,
Frank