I/O Block Placement Optimizing Wire Length and Bank Count

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The placement of input/output (I/O) blocks on integrated circuit devices is challenging due to varying I/O standards and their integration into buses, affecting routing within the device and on connected circuit boards, with existing methods struggling to optimize placement while adhering to banking rules and minimizing wire length.

Innovation Solution

A method that modifies I/O standards to include bus information, creates I/O groups, and uses Integer Linear Programming (ILP) to assign I/O blocks to sites, optimizing placement to minimize the number of I/O banks and adhere to banking rules, while utilizing simulated annealing to generate a legal and efficient I/O placement.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If I/O blocks are placed without considering bus information, then placement process is simpler, but routing complexity increases and wire length increases

Engineering Contradiction:
Improveplacement process complexityVSAvoidrouting complexity
Core Design Contradiction:
Device complexityVSEase of operation

Solution Approach 1:

The patent applies preliminary action by modifying I/O standards to include bus information before the placement process begins. This allows the placement algorithm to pre-identify which I/O blocks belong to the same bus and should be grouped together, thereby simplifying subsequent routing operations and reducing wire length without making the placement process itself overly complex.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If I/O blocks are placed to minimize wire length, then routing efficiency improves, but adherence to banking rules becomes more difficult

Engineering Contradiction:
Improverouting efficiencyVSAvoidadherence to banking rules
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent changes the parameters of the I/O standard by adding bus information (bus ID, bus name) to each I/O block. This parameter enrichment enables the placement algorithm to simultaneously optimize for wire length minimization while maintaining compliance with banking rules, as the additional parameters provide the constraints needed to guide the optimization process.

Inventive Principle:
Principle #35Parameter changes

3Area of stationary object

If I/O blocks with different I/O standards are placed together, then I/O site utilization increases, but routing complexity on circuit board increases

Engineering Contradiction:
ImproveI/O site utilizationVSAvoidcircuit board routing complexity
Core Design Contradiction:
Area of stationary objectVSEase of operation

Solution Approach 1:

The patent applies segmentation by dividing I/O blocks into distinct groups based on their bus affiliation. By creating I/O groups where blocks belonging to the same bus are clustered together, the patent reduces circuit board routing complexity while still achieving high I/O site utilization through the use of Integer Linear Programming to optimize the overall placement configuration.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8312405B1Method of placing input/output blocks on an integrated circuit device
Publication Date: 2012.11.13 XILINX INC
  • US8312405B1 patent drawing
  • US8312405B1 patent drawing
  • US8312405B1 patent drawing

AI summary

A method of placing input/output blocks on an integrated circuit device is described. The method may comprise receiving a circuit design having a plurality of input/output blocks to be placed at input/output sites of the integrated circuit device; modifying, for each input/output block of the circuit design, an input/output standard for the input/output block to include bus information; assigning, for each input/output block of the circuit design, an input/output site for the input/output block; and generating an input/output placement for the input/output blocks of the circuit design. A computer product is also disclosed.