HSWAPEN does not really requires a solid 1 or 0 value, but it is recommended to have it stable to avoid any potential side effect.
There are some scenarios that need to be checked to be sure the toggling on HSWAPEN does not affect configuration, for example:
- A board signal depends on the internal SelectIO pull-up to keep a signal high. (Instead use an external pull-up to assure the High level)
- A marginal signal being affected by the internal pull-up toggling ON-OFF (for example a board signal held Low by a weak external pull-down that the internal pull-up might sufficiently override to change the logic level, if turned on by HSWAPEN=0)
- Current consumption on switching I/Os terminated externally with pull UPs or DOWNs
The HSWAPEN pin does not directly affect any internal config logic.
Before and during configuration, it only directly controls the global internal pull-up enable signal that turns ON or OFF the SelectIO internal pull-ups.
Note: In the case of the Virtex family, the HSWAPEN does not affect the internal pull-ups on the dedicated pins in bank 0.
Also, the internal pull-up is quite weak.
The toggling of the internal pull-up ON and OFF could slightly affect a signal, but the only critical signals are the clocks, TCK and CCLK.
Neither of those clock pins have internal pull-ups that are controlled by HSWAPEN.
The rest of the config interface signals are either static inputs or synchronously registered at a clock edge so minor effects of internal pull-up activity on those signals are not enough to change their static logic states or registered levels.