This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

ARM AXI4 protocol assertions trigger errm_wdata_num_prop5 and errm_wlast_stable quesitons

Hi,

I'm getting two AXI4 protocol assertion errors.

For axi4_errm_wlast_stable, I can see why it's flagging an error but functionally it shouldn't be a problem.

The WREADY =1 for one more cycle when though WVALID=0 and WLAST=0. 

Is this a real error in the axi4 protocol and why ?

But for wdata_num_prop5, I don't understand the problem.

The AWLEN[7:0] = 00 (which means burst = 1)

The AWSIZE[2:0] = 4 (which means 16 bytes or 128 bits)

The WDATA[127:0] is 128 bits.

Need someone to explain why the assertion triggered.

The documentation is not clear.

Thanks,

David

Parents
  • There is a clear protocol violation in your waveform that could be the cause of both messages from your protocol checker.

    The issue is that once WVALID is asserted, all W channel "payload" signals must remain constant, but your waveform shows WLAST driven low for the first cycle when WVALID is high and WREADY is low, and then high in the second cycle. So WLAST is illegally changing while WVALID is high.

    WREADY doesn't go high until the second cycle of WVALID being asserted, so it is only at the end of the second cycle of WVALID being asserted that the AXI transfer completes and WLAST could change.

    WREADY remaining high after WVALID goes low is not an issue, it simply indicates that the AXI slave could accept more WDATA.

    So by initially driving WLAST low, and then high, that might be interpreted as 2 data transfers, maybe the cause of the WDATA_NUM report, and WLAST changing while WVALID is asserted and WREADY is not asserted is the cause of the WLAST_STABLE report.

    Fix the WLAST driver protocol violation and I would hope these messages go away.

Reply
  • There is a clear protocol violation in your waveform that could be the cause of both messages from your protocol checker.

    The issue is that once WVALID is asserted, all W channel "payload" signals must remain constant, but your waveform shows WLAST driven low for the first cycle when WVALID is high and WREADY is low, and then high in the second cycle. So WLAST is illegally changing while WVALID is high.

    WREADY doesn't go high until the second cycle of WVALID being asserted, so it is only at the end of the second cycle of WVALID being asserted that the AXI transfer completes and WLAST could change.

    WREADY remaining high after WVALID goes low is not an issue, it simply indicates that the AXI slave could accept more WDATA.

    So by initially driving WLAST low, and then high, that might be interpreted as 2 data transfers, maybe the cause of the WDATA_NUM report, and WLAST changing while WVALID is asserted and WREADY is not asserted is the cause of the WLAST_STABLE report.

    Fix the WLAST driver protocol violation and I would hope these messages go away.

Children