Calibration Overview - 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

The final stage of Write DQS-to-DQ/DBI centering that is completed before normal operation is repeating the steps performed during Write DQS-to-DQ/DBI centering but with a difficult/complex pattern. The purpose of using a complex pattern is to stress the system for SI effects such as ISI and noise while calculating the write DQS center and write DQ positions. This ensures the write center position can reliably capture data with margin in a true system.

  1. Turn on DBI on the write path, turn off DM on the write path, and DBI on the read path (MRS setting in the DRAM and fabric switch).
  2. Write complex pattern into the DRAM memory and read back.
  3. Find the left margin of the write data window by incrementing each DQ ODELAY and DBI ODELAY(if enabled) by step size of 10 taps until invalid data pattern is detected. Once completed, decrement each DQS ODELAY and DBI ODELAY (if enabled) by step size of 10 taps. At the end of this stage, left margin value is saved as BRAM_WRCMPLX_LEFT_MARGIN_FCRSE.
  4. Find the left margin of the write data window again by incrementing each DQ ODELAY and DBI ODELAY (if enabled) by one fine tap at a time until invalid data pattern is detected. At the end of this stage, left margin values are saved as BRAM_WRCMPLX_LEFT_MARGIN.
  5. Find the right margin of the write data window by incrementing DQS ODELAY by step size of 10 taps until invalid data pattern is detected. At the end of this stage, right margin values are saved as BRAM_WRCMPLX_RIGHT_MARGIN_FCRSE.
  6. Find the right margin of the write data window by incrementing DQS ODELAY by one fine tap at a time until invalid data pattern is detected. At the end of this stage, right margin values are saved as BRAM_WRCMPLX_RIGHT_MARGIN.
  7. Calculate the center tap location for the DQS ODELAY, based on left margin and right margin. Final DQS, DQ and DBI ODELAY values are calculates as:
    • Right Margin > Left Margin
      • DQS ODELAY = initial ODELAY - [(Left Margin + Right Margin) / 2
      • DQ ODELAY = No change
      • DBI ODELAY = No change
    • Left Margin > Right Margin
      • DQS ODELAY = No change
      • DQ ODELAY = initial ODELAY + [(Left Margin - Right Margin) / 2]
      • DBI ODELAY = initial ODELAY + [(Left Margin - Right Margin) / 2]