ATG Debug Read/Write Error/First Error Bit/First Error Address - 1.0 English

Versal Adaptive SoC Soft DDR4 SDRAM Memory Controller LogiCORE IP Product Guide (PG353)

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

ATG identifies if a traffic error is a Read or Write Error when vio_tg_err_chk_en is set to 1. Assume EXP_WR_DATA is the expected write data. After the first traffic error is seen from a read (with a value of EXP_WR_DATA), ATG issues multiple read commands to the failed memory address. If all reads return data EXP_WR_DATA, ATG classifies the error as a WRITE_ERROR(0). Otherwise, ATG classifies the error as READ_ERROR(1). ATG also tracks the first error bit, first error address seen.

Example 1: The following VIO setting powers on Read/Write Error Type check.

.vio_tg_err_chk_en                  (1'b1), // Powers on Error Type Check
.vio_tg_direct_instr_en             (1'b1), // Powers on Direct Instruction Mode
.vio_tg_instr_num                   (5'b00000),
.vio_tg_instr_addr_mode             (TG_PATTERN_MODE_LINEAR),
.vio_tg_instr_data_mode             (TG_PATTERN_MODE_PRBS),
.vio_tg_instr_rw_mode               (TG_RW_MODE_WRITE_READ),
.vio_tg_instr_rw_submode            (2'b00),
.vio_tg_instr_victim_mode           (TG_VICTIM_MODE_NO_VICTIM),
.vio_tg_instr_victim_select         (3'b000),
.vio_tg_instr_victim_aggr_delay     (5'd0),
.vio_tg_instr_num_of_iter           (32'd1000),
.vio_tg_instr_m_nops_btw_n_burst_m  (10'd0),
.vio_tg_instr_m_nops_btw_n_burst_n  (32'd10),
.vio_tg_instr_nxt_instr             (6’d0),

The following figure shows a Write Error waveform. When vio_tg_status_err_type_valid is 1, vio_tg_status_err_type shows a WRITE ERROR (0). When vio_tg_status_first_err_bit_valid is 1, the following occurs:

  • vio_tg_status_first_err_bit, 0x8 is the corrupted bit
  • vio_tg_first_err_addr shows the address with the corrupted data as 0x678
Figure 1. VIO Write Error Waveform

The following figure shows a Read Error waveform. When vio_tg_status_err_type_valid is 1, vio_tg_status_err_type shows a READ ERROR (0). When vio_tg_status_first_err_bit_valid is 1, the following occurs:

  • vio_tg_status_first_err_bit, 0x60 is the corrupted bit
  • vio_tg_first_err_addr shows the address with the corrupted data as 0x1B0
Figure 2. VIO Read Error Waveform