Zynq-7000 AP SoC and 7 Series FPGAs MIS v4.1
370
UG586 November 30, 2016
Chapter 2:
QDR II+ Memory Interface Solution
Margin Check
Debug signals are provided to move either clocks or data to verify functionality and to
confirm sufficient margin is available for reliable operation. These signals can also be used
to check for signal integrity issues affecting a subset of signals or to deal with trace length
mismatches on the board. To verify read window margin, enable the debug port when
generating a design in the MIG tool and use the provided example design. The steps to
follow are:
1. Open the Vivado hardware session and program the FPGA under test with generated BIT
and LTX files.
2. Verify that calibration completes (
init_calib_complete
should be asserted) and no
errors currently exist in the example design (both
tg_compare_error
and
dbg_cmp_err
should be Low).
3. To measure margin with PRBS8 pattern, set VIO signals with the listed values in the
traffic_gen_top
instance in
example_top
:
vio_modify_enable = 'd1
vio_data_mode_value = 'd7
vio_addr_mode_value = 'd3
vio_instr_mode_value = 'd4
vio_bl_mode_value = 'd2
vio_fixed_bl_value = 'd128
vio_fixed_instr_value = 'd1
vio_data_mask_gen = 'd0
4. Assert
vio_dbg_clear_error
or system reset.
5. Select a given byte lane using
dbg_byte_sel
.
6. Observe the tap values on PHASER_IN for the selected byte lane using
dbg_pi_counter_read_val
.
7. Increment the tap values on PHASER_IN until an error occurs (
tg_compare_error
should be asserted) using
dbg_pi_f_inc
. Record how many phaser taps it took to get
an error from the starting location. This value is the tap counts to reach one side of the
window for the entire byte lane.
8. Decrease the tap values on PHASER_IN using
dbg_pi_f_dec
back to the starting value.
9. Clear the error recorded previously by asserting
vio_dbg_clear_error
.