ALTDQ_DQS2 IP Core User Guide

ID 683742
Date 5/08/2017
Document Table of Contents

Dynamic Reconfiguration for ALTDQ_DQS2

When static timing closure is challenging (for example, high frequency, high board trace skew, and high timing uncertainty), dynamically reconfiguring the ALTDQ_DQS2 IP core may provide additional timing margin. Arria V, Cyclone V, and Stratix V devices contain reconfigurable logic, allowing you to adjust the delay of several datapaths at runtime.

The I/O configuration block and the DQS configuration block are shift registers that you can use to dynamically change the settings of various device configuration bits. The shift registers are configured with the rest of the device when the Programmer Object File (.pof). In dynamic mode, you can override the static values at runtime with a scan chain. You can reconfigure the I/Os by turning on the Use dynamic configuration scan chains option.

The following figure shows the Use dynamic configuration scan chains option.

Figure 5. Use Dynamic Configuration Scan Chains Option

The following figure shows the dynamic reconfiguration scan chain implementation.

Figure 6. Reconfiguration Scan Chain

Each I/O contains a scan chain block. The DQS logic also contains its own scan chain block. You can use I/O scan chain blocks to configure DQ and DQS I/O configuration registers (for example, delay chain) and you can use the DQS logic scan chain to configure DQS logic configuration (for example, DQS postamble phase). You can serially scan configuration bits into each scan chain block with the following operating sequence:

The ALTDQ_DQS2 dynamic configuration interface is made of four input ports:

  • config_clock_in—This is the clock signal. All other input signals must be treated as synchronous to this clock. The typical frequency is 25 MHz.
  • config_data—This is the 1-bit serial input through which data is scanned into the calibration blocks. This is common to all configuration blocks, but it will only be scanned into calibrations blocks whose enable input is asserted. For Stratix V GX and Arria V GZ, the configuration data must be input in LSB first ordering. For example, the Stratix V I/O configuration block data must start with padtoinputregisterdelaysetting[0]. For Arria V and Cyclone V devices, the configuration data must be input in MSB first ordering.
  • config_enable—In a generic ALTDQ_DQS2 IP core, the following three config_enable inputs are available:
    • config_io_ena[]—Controls the enable input on the DQ I/Os
    • config_dqs_io_ena[]—Controls the enable input on the DQS I/Os
    • config_dqs_ena[]—Controls the enable input on the DQS logic
    Note: Each of these inputs is wide to control all the scan chain blocks instantiated in the ALTDQ_DQS2 IP core. In a general application, you must assert only one enable input at a time to scan the desired data in the corresponding scan chain block. The enable input must be held high for the entire duration of the scanning process. All other inputs must be held at 0.
    Note: You must deassert the config_enable signal after the last bit of config_data to prevent further data from scanning in. Then, assert the update signal whenever you are ready to copy the scanned in data to the configuration registers.
  • config_update—After scanning all the bits into the desired scan chain blocks, copy them into the configuration register by asserting the config_update signal for one clock cycle.