09-14-2013 08:47 AM
I have a custom IP that was first created in the Create/Import Peripheral Tool of XPS, but has been modified with some custom logic. This custom IP acts as a Master on the AXI4 bus that has a 128-bit data width for our design.
I have been testing this IP through simulations lately and am seeing errors in the following case:
As a master on the AXI4 bus (128-bit data width), I attempt to write 16 bytes or 1 beat to a specified offset in BRAM. This write fails in all attempts and reports an error as sig_tlast_err_ovrrun from the Wr_Cntrl of the AXI_Master_Burst module of the custom IP. If I change the attempted write to be 32 bytes at any offset, then I don't see any errors.
Is there a way to transfer 16 bytes of data to a specified memory location using the AXI_Master_Burst LogiCore as a part of this custom IP, or must the transfer always be at least 32 bytes?
Where can I find information about what causes the sig_tlast_err_ovrrun and sig_tlast_err_undrrun errors to occur?
03-13-2015 08:44 PM
03-16-2015 11:10 AM
I never got an answer as to why I saw the error when I write 16B, but not when I write 32B. I eneded up adding logic to my custom IP that prevents writing less than 32B, but makes sure it is a multiple of 16B for the transfer length.
03-22-2015 12:01 AM
03-23-2015 06:05 AM
My design contains 3 custom IPs that all have 128 bit Master interfaces connected to 2 slaves that also have 128 bit interfaces. I had no way to trace whether the Interconnect or the Slave was the root of the error, but the same error was seen for accessing both slaves (BRAM and DDR3).
As I said before, we placed custom checks in the custom IPs so that the minimum transfer length was 32 bytes as a work around for the issue since I could never get any help with the issue.