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 as0x678
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 as0x1B0