There are registers in the IOB or IOLOGIC structures. The input register (register connected to the input pad) and output register (register connected to the output pad) can be packed into IOB or IOLOGIC. The IOB registers have the minimal routing delay to the I/O pads and provide fixed setup and clock-to-out times. So, using IOB register helps to improve the input/output timing performance. However, it may negatively affect the internal timing because the routing delays to internal logic can be lengthened.
The IOB constraint of XST controls the IOB register usage in Synthesis process. The default value of IOB constraint is auto, which means XST takes into account timing constraints and automatically decides to push or not to pushregisters into IOBs.It can beapplied globally or specifically to an entity, module or register. For help applying XST constraints, please refer to Xilinx Answer39749.
There are some restrictionswhich prevent registers from being packed into IOB/IOLOGIC: