3.9. Timing Specification
In the Active Serial configuration scheme, the FPGA initiates the configuration process after POR. During the configuration process, the FPGA issues flash operation commands such as read device ID, normal read, and sector erase.
As such, you must ensure that the FPGA is able to correctly read data from the configuration devices. This is done by ensuring the setup time, tDSU, and hold time, tDH, meets the requirements explained in the respective FPGA device datasheet.
The FPGA device drives control signals on the falling edge of DCLK, and latches configuration data on the subsequent falling edge of DCLK. Dual and Quad SPI instructions use the bidirectional IO pins to serially write instructions, addresses, or data to the device on the rising edge of DCLK, and read data or status from the device on the falling edge of DCLK.
The data setup timing slack must be equal or larger than the minimum data setup time needed by FPGA, tDSU.
Therefore; tDCLK – (tBT_DCLK + tCLQV + tBT_DATA) ≥ tDSU
The data hold timing slack must be equal or larger than the minimum data hold time, tDH.
Therefore; tBT_DCLK + tCLQX + tBT_DATA ≥ tDH
- tDCLK = Period for a DCLK cycle
- tBT_DCLK = Board trace propagation delay for DCLK from FPGA to QSPI Flash
- tCLQV = DCLK falling edge to DATA valid 1
- tCLQX = Output hold time1
- tBT_DATA = Board trace propagation delay for DATA from QSPI Flash to FPGA
- tDSU = Minimum DATA setup time required by FPGA 2
- tDH = Minimum DATA hold time required by FPGA2
Example: Calculating Valid Delay
- DCLK frequency: 50 MHz (Period 20 ns)
- Cyclone® V AS timing specifications:
- Minimum tDSU: 1.5 ns
- Minimum tDH: 2.9 ns
- Altera EPCQ64ASI16N flash specifications:
- tCLQV: 6 ns
- tCLQX: 1.5 ns
tDCLK - (tBT_DCLK + tCLQV + tBT_DATAmax) ≥ tDSU = (tBT_DCLK + tBT_DATAmax) ≤ tDCLK - tCLQV - tDSU = (tBT_DCLK + tBT_DATAmax) ≤ 20 ns - 6 ns - 1.5 ns = (tBT_DCLK + tBT_DATAmax) ≤ 12.5 ns
Therefore, the allowed maximum extra delay is 12.5 ns.
tBT_DCLK + tCLQX + tBT_DATAmin ≥ tDH = tBT_DCLK + tBT_DATAmin ≥ tDH - tCLQX = tBT_DCLK + tBT_DATAmin ≥ 2.9 ns - 1.5 ns = tBT_DCLK + tBT_DATAmin ≥ 1.4 ns
Therefore, the allowed minimum extra delay is 1.4 ns.
In conclusion, the calculated range for extra delay is from 1.4 ns to 12.5 ns to meet the required FPGA data hold time, tDH, while not violating the data setup time specification, tDSU.