I/O Bank Assignment Using Integer Linear Programming
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for assigning input/output (I/O) objects to banks in integrated circuits, such as heuristic-based approaches and Integer Linear Programming (ILP) formulations, often fail to find feasible solutions that are optimal in terms of wire length or other quality metrics, and may violate constraints by placing I/O objects with conflicting standards in the same bank.
Innovation Solution
A computer-implemented method using Integer Linear Programming that stores constraints and cost metrics to assign I/O objects to banks, minimizing a linear function that penalizes assignments different from a reference solution, ensuring compatibility and optimizing wire length and timing while adhering to constraints.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If heuristic-based techniques are used to assign I/O objects to banks, then the assignment process is automated and can be performed efficiently, but the techniques are not guaranteed to determine a feasible I/O placement solution and cannot identify infeasible circuit designs
Solution Approach 1:
The patent replaces heuristic-based automated assignment methods with an Integer Linear Programming (ILP) formulation. This substitution transforms the I/O placement problem into a mathematical optimization problem with explicit constraints, allowing the system to either find a feasible solution or definitively determine infeasibility, thereby providing reliability guarantees that heuristic methods cannot offer.
2Reliability
If Integer Linear Programming is used to find a feasible I/O placement solution, then a guaranteed feasible solution is obtained, but the solution is not optimal in terms of wire length or other quality metrics
Solution Approach 1:
The patent applies partial optimization by introducing a reference solution and optimizing only the deviation from it. The ILP formulation includes an objective function that minimizes the difference between the assigned I/O objects and the reference solution, rather than optimizing all possible quality metrics simultaneously. This allows the system to achieve a good enough solution that is both feasible and reasonably optimal without requiring complete optimization of all parameters.
3Manufacturing precision
If optimization focuses on minimizing wire length and timing, then the solution quality improves, but the solution becomes infeasible by placing I/O objects with conflicting I/O standards in the same bank
Solution Approach 1:
The patent segments the I/O objects into different groups based on their I/O standards and compatibility requirements. The ILP formulation includes constraints that ensure I/O objects with conflicting standards are assigned to different banks, while the objective function optimizes wire length and timing within those constraints. This segmentation allows the system to maintain feasibility while achieving optimization goals.
Solution Approach 2:
The patent applies local quality by allowing different banks to have different characteristics and assignments based on their capabilities and the requirements of I/O objects. The reference solution provides locally optimized assignments for each bank, and the ILP formulation preserves these local optimizations while ensuring global feasibility through constraint satisfaction.
Data Source
AI summary
A method of assigning a plurality of input/output (I/O) objects of a circuit design to banks of a programmable integrated circuit (IC) using integer linear programming can include storing a plurality of constraints that depend upon a plurality of variables, wherein the plurality of constraints regulate assignment of each of the plurality of I/O objects to banks of the programmable IC (125-184), and storing a linear function that depends upon the plurality of constraints and a plurality of cost metrics, wherein each cost metric imposes a penalty when a selected I/O object of the circuit design is assigned to a bank of the programmable IC that is different from a bank to which the selected I/O object is assigned within a reference solution that is infeasible (190). A result indicating whether a feasible solution exists for assignment of the plurality of I/O objects of the circuit design to banks of the target programmable IC can be determined by minimizing the linear function (192) subject to the plurality of constraints and outputting the result (196, 198).


