Data Integrity Modes - 1.0 English

Performance AXI Traffic Generator LogiCORE IP Product Guide (PG381)

Document ID
PG381
Release Date
2023-10-18
Version
1.0 English

Data integrity checking can be enabled or disabled by selecting or deselecting the Data Integrity Check option in the Non-Synthesizable TG Options tab in the Vivado IDE. While in this mode, you can select predefined data patterns or when using a CSV stimulus it can be controlled by the data_integrity field of the CSV file.

The data integrity check is performed by the TG when the Read data is received on the RDATA channel. It is evaluated with byte-level (AXI byte lane) granularity. The Data Integrity Checker module of each TG on the system shares the common memory array across the entire slave address space. This makes it possible to check the data integrity across multiple masters in a system. For example, Master A can write data to Slave X and then Master B can read the same data from the slave and check if the resulting data matches the expected data.

Error Conditions
  • If the Read response is SLVERR or DECERR, then the data integrity check does not happen for the respective Read data beat. The TG asserts an error based on the exp_resp settings.
  • If a data mismatch occurs, the TG reports an error:
    # =========================================================
    # >>>>>> SRC_ID 1 :: DATA MISMATCH ERROR >>>>>>
    # XIL_AXI_READ (3133) A:0x0000000100000000 ID:0x00000000 len:0x0f XIL_AXI_SIZE_32BYTE XIL_AXI_BURST_TYPE_INCR C:0b0000 L:XIL_AXI_ALOCK_NOLOCK P:0b000
    # BEAT = 3, BYTELANE = 3, BYTEADDR = 100000063
    # wr_data = 78
    # rd_data = bb
    # =========================================================
    
    Note: If data integrity is enabled in the Vivado IDE and a mismatch occurs, the same type of error message is also be printed in non-CSV mode.
Warning Conditions
  • If the Read is to an unwritten location, the data integrity check does not happen to that byte lane and the TG reports a warning in the test status report.
  • If a Write happens to the same location twice without reading that location at least once (meaning data was written and then overwritten without a Read in between), the TG gives a warning in the test status report that is automatically printed in the log at end of the simulation.