- PCB skew between QSPIx_IO[3:0] and QSPIx_CS_b lines relative to QSPIx_CLK should be within 50 ps.
- For optimum performance, limit trace delays to 0.5 ns between the adaptive SoC and QSPI device.
- Keep QSPI_LPBK_CLK (MIO[6]) unconnected for higher operating QSPIx_CLK frequencies (>37.5 MHz). This is mandatory for the loopback feature to operate properly (loopback is required for frequencies >37.5 MHz).
- It is highly recommended to perform a signal integrity analysis on the QSPIx_CLK and QSPI_IO[0:3] lines for both read and write operations.
- Place 4.7 kΩ pull-up resistors to VCCO_500 on the QSPIx_IO[3], Write Protect/QSPIx_IO[2], and QSPIx_CS_b lines. QSPIx_IO[3] is shared with HOLD, and QSPIx_IO[2] is shared with the Write Protect function.
- Ensure proper signal integrity for traces:
- There should be no reflections at the near and far end of the Versal device.
- Ensure VIH/VIL
and VOH/VOL levels
are met for the Versal device:
- Values can be found in the PSIO Levels section of the Versal adaptive SoC data sheets.
- Be sure to choose the correct levels for the voltage used (i.e., LVCMOS18, LVCMOS33).
- For reads, ensure that the flash device drive strength matches
the load (resistive + capacitive) being driven for optimal read performance:
- This should especially be verified if adding series resistors on QSPI_CLK and/or QSPIx_IO[0:3] lines.
- For the intended frequency of operation, ensure that setup and hold times are met for the Versal adaptive SoC and QSPI device.
- Use the following formulas for determining if setup and hold
times are met, and likewise to determine maximum QSPI frequency of operation:
- Definitions:
- Clock_Period = The clock period of the QSPI interface clock QSPI_CLK (1/FQSPI_CLK)
- TQSPICKO_min/max = Versal adaptive SoC QSPI clock to output delay (see the Versal adaptive SoC data sheets)
- TQSPIDCK = Versal adaptive SoC QSPI setup time (see the Versal adaptive SoC data sheets)
- TQSPICKD = Versal adaptive SoC QSPI hold time (see the Versal adaptive SoC data sheets)
- Tsetup (flash) = QSPI device setup time (see QSPI device datasheet)
- Thold (flash) = QSPI device hold time (see QSPI device datasheet)
- CTO_max (flash) = QSPI device data clock to output delay (see QSPI device datasheet)
- Output_Hold (flash) = QSPI device output hold time before data begins changing (see QSPI device datasheet)
- Max_PCB_trace_delay = The maximum PCB trace delay among QSPI_CLK, QSPIx_IO[0:3]
- Min_PCB_trace_delay = The minimum PCB trace delay among QSPI_CLK, QSPIx_IO[0:3]
- Formulas:
- Write Setup/Hold (Data):
- Tsetup (flash) ≤ Clock_Period – TQSPICKO_max – (skew between QSPI_CLK PCB trace delay and maximum QSPIx_[0:3] PCB trace delay)
- Thold (flash) ≤ TQSPICKO_min – (skew between QSPI_CLK PCB trace delay
and minimum QSPIx_[0:3] PCB trace delay)Note: See first bullet in this section regarding skew guidelines.
- Read Setup/Hold (Data):
- TQSPIDCK ≤ Clock_Period – CTO_max (flash) – 2*Max_PCB_trace_delay
- TQSPICKD ≤ Output_Hold (flash) + 2 x Min_PCB_trace_delayNote: The 2X PCB trace delay in both equations is for round-trip time to/from the flash device.
- Command Setup/Hold:
- Tsetup (flash) ≤ Clock_Period – TQSPICKO_max – (skew between QSPI_CLK PCB trace delay and maximum QSPIx_[0:3] PCB trace delay)
- Thold (flash) ≤ TQSPICKO_min – (skew
between QSPI_CLK PCB trace delay and minimum QSPIx_[0:3]
PCB trace delay)Note: See first bullet in this section regarding skew guidelines.
- Write Setup/Hold (Data):
- Definitions: