12-21-2018 03:12 AM
Hi,
When using WSTRB that has zeros and the corresponding bytes in WDATA are X the AXI protocol checker reports the following error:
PC.REP : BIT( 24) : ERROR : Invalid state x
The error corresponds to ERRM_WDATA_STABLE "AXI_ERRM_WDATA_STABLE: WDATA must remain stable when WVALID is asserted and WREADY low. Spec: section A3.2.1."
In my opinion this in unexpected and should have a simple fix in the axi_protocol_checker_v2_0_vl_rfs.v by using the case equality operator.
-- WDATA_eq[WDATA_bc] <= WDATA_q[WDATA_bc*8 +:8] == WDATA[WDATA_bc*8 +: 8];
++ WDATA_eq[WDATA_bc] <= WDATA_q[WDATA_bc*8 +:8] === WDATA[WDATA_bc*8 +: 8];
What do you think?
Thanks,
Laszlo
01-02-2019 11:48 AM
Hi @ronagyl_adi,
The ARM AXI Protocol Specification section A3.2.1 does not call out any exceptions based on the state of WSTRB to the condition that WDATA must remain stable when WVALID is asserted.
Xilinx leverages the ARM provided AMBA4 Protocol Assertions to create the AXI Protocol Checker IP. If you do feel this is an error, this is a matter to take up with ARM, although I question why you want un-driven inputs to your downstream logic.
Regards,
Deanna