Skip to Main Content
We consider the placement of FPGA designs with multiple I/O standards on modern FPGAs that support multiple I/O standards. We propose an efficient approach to solve the constrained I/O placement problem by 0-1 integer linear programming within a high performance placement flow. We derive an elegant 0-1 integer linear program formulation which is applicable not only for devices with symmetric I/O banks but also for devices with asymmetric I/O banks (i.e., different banks may have different sizes and/or support different subsets of I/O standards). Moreover, it is capable of handling user's prelocked I/Os. We also show that additional restrictions such as conditional usage of Vref pins can be easily incorporated. Our formulation involves only a small number of 0-1 integer variables independent of the device size or the number of I/O objects, hence our approach can comfortably handle very large problem instances. Extensive experimentation showed that the 0-1 integer linear program corresponding to a feasible instance of the constrained I/O placement problem can be solved in seconds.