ATG Debug Watchdog Hang - 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 expects the application interface to accept a command within a certain wait time. ATG also looks for the application interface to return data within a certain wait time after a read command is issued. If either case is violated, ATG flags a Watchdog Hang.

When WatchDogHang is asserted, if vio_tg_status_state is in “*Wait” states, ATG is waiting for read data return. If vio_tg_status_state is in “Exe” state, ATG is waiting for the application interface to accept the next command.

Example 3: The following example shows that ATG asserts WatchDogHang. This example shares the same VIO control setting as Example 2. In this example, ATG vio_tg_status_state shows a “DNWait” state. Hence, ATG is waiting for read data return.

Figure 1. ATG Debug Watchdog Hang Waveform

To further debug, vio_tg_instr_data_mode is updated to Linear data for better understanding in data return sequence.

.vio_tg_err_chk_en                  (1'b0), // 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_LINEAR),
.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),

With Linear data, the following figure shows that when an error is detected, read data (vio_tg_status_read_bit) is one request ahead of expected data (vio_tg_status_exp_bit). One possibility is read command with address 0x1B0 is dropped. Hence, the next returned data with read address 0x1B8 is being compared against the expected data of read address 0x1B0.

Figure 2. ATG Debug Watchdog Hang Waveform with Linear Data