Relocation of components for post-placement optimization
AssigneeXilinx, Inc.
InventorsKamal Chaudhary, Krishnan Anandh, Sudip K. Nag, Guenter Stenz
Life of this patent
Estimating the term…
Abstract
Method and apparatus for post-placement optimization of resources for connections is described. To optimize resource placement, search windows are generated responsive to driver and load components, as well as to a connection between the driver and load components. Adding in a straight-line path search window may be used as an alternative where a bypassed resource is to be relocated. Using connection-based optimization in combination with driver- and resource-based optimization results in improved optimization with negligible impact on runtime.
Claims24
A method for simulating relocation of a component of an integrated circuit having a plurality of components to be coupled to one another via interconnects where the interconnects have associated delays, comprising:
- identifying at least one connection, the at least one connection having a driver component and a load component;
- generating a first component sample window in response to the driver component;
- generating a second component sample window in response to the load component;
- generating a connection window in response to the at least one connection;
- generating a driver window in response to overlap between the connection window and the first component sample window;
- generating a load window in response to overlap between the connection window and the second component sample window;
- determining a site for relocating the driver component or the load component;
- and
- relocating the driver component or the load component to the site.
A method for simulating relocation of a component of an integrated circuit having a plurality of components to be coupled to one another via interconnects where the interconnects have associated delays, comprising:
- identifying a path between components;
- selecting a driver component, a load component and a bypass component;
- generating a first component sample window in response to the driver component;
- generating a second component sample window in response to the load component;
- generating a connection window in response to the at least one connection;
- generating a path window responsive to the driver component and the load component;
- generating a driver window in response to overlap between the connection window and the first component sample window;
- generating a load window in response to overlap between the connection window and the second component sample window;
- determining a site for relocating the bypass component;
- and
- relocating the bypass component to the site.
A post-placement optimization process for location of components of an integrated circuit, comprising:
- providing a simulation of an integrated circuit, the simulation of the integrated circuit having simulated connections, the simulated connections having associated delays;
- collecting critical connections from the simulated connections, the critical connections having associated negative slack times;
- ranking the critical connections responsive to the negative slack times;
- selecting a critical connection from the ranking, the connection having a driver component and a load component associated therewith;
- generating component windows for the critical connection selected;
- generating a connection window for the critical connection selected;
- determining overlaps between the connection window and each of the component windows to provide a first and a second search windows;
- selecting a proposed driver location in the first search window for the driver component;
- selecting a proposed load location in the second search window for the load component;
- determining cost of the proposed driver location;
- comparing cost of the proposed driver location with a cost for the current driver location;
- retaining one of the cost of the proposed driver location and the cost of the current driver location;
- retaining one of the proposed driver location and the current driver location responsive to the cost retained;
- determining cost of the proposed load location;
- comparing cost of the proposed load location with a cost for the current load location;
- retaining one of the cost of the proposed load location and the cost of the current load location;
- and
- retaining one of the proposed load location and the current load location responsive to the cost retained.
A computer readable recording medium having instructions, which when executed by a computer system having access to a simulated integrated circuit with resources and connections, cause a method for location of components of an integrated circuit to be performed, the method comprising:
- identifying at least one connection from the connections, the at least one connection having a driver component and a load component;
- generating a first component sample window in response to the driver component;
- generating a second component sample window in response to the load component;
- generating a connection window in response to the at least one connection;
- generating a driver window in response to overlap between the connection window and the first component sample window;
- generating a load window in response to overlap between the connection window and the second component sample window;
- determining a site for relocating the driver component or the load component;
- and
- relocating the driver component or the load component to the site.
A computer readable recording medium having instructions, which when executed by a computer system having access to a simulated integrated circuit with resources and connections, cause a method for location of components of an integrated circuit to be performed, the method comprising:
- identifying a path between components;
- selecting a driver component, a load component and a bypass component;
- generating a first component sample window in response to the driver component;
- generating a second component sample window in response to the load component;
- generating a connection window in response to the at least one connection;
- generating a path window responsive to the driver component and the load component;
- generating a driver window in response to overlap between the connection window and the first component sample window;
- generating a load window in response to overlap between the connection window and the second component sample window;
- determining a site for relocating the bypass component;
- and
- relocating the bypass component to the site.
A computer readable recording medium having instructions, which when executed by a computer system having access to a simulated integrated circuit with connections having delays for connecting resources, cause a method for location of components of an integrated circuit to be performed, the method comprising:
- collecting critical connections from the simulated connections, the critical connections having associated negative slack times;
- ranking the critical connections responsive to the negative slack times;
- selecting a critical connection from the ranking, the connection having a driver component and a load component associated therewith;
- generating component windows for the critical connection selected;
- generating a connection window for the critical connection selected;
- determining overlaps between the connection window and each of the component windows to provide a first and a second search windows;
- selecting a proposed driver location in the first search window for the driver component;
- selecting a proposed load location in the second search window for the load component;
- determining cost of the proposed driver location;
- comparing cost of the proposed driver location with a cost for the current driver location;
- retaining one of the cost of the proposed driver location and the cost of the current driver location;
- retaining one of the proposed driver location and the current driver location responsive to the cost retained;
- determining cost of the proposed load location;
- comparing cost of the proposed load location with a cost for the current load location;
- retaining one of the cost of the proposed load location and the cost of the current load location;
- and
- retaining one of the proposed load location and the current load location responsive to the cost retained.
A method for simulating relocation a component of an integrated circuit having a plurality of components to be coupled to one another via interconnects where the interconnects have associated delays, comprising:
- identifying at least one connection, the at least one connection having a driver component and a load component;
- generating a first component sample area in response to the driver component;
- generating a second component sample area in response to the load component;
- generating a connection area in response to the at least one connection;
- generating a driver area in response to overlap between the connection area and the first component sample area;
- generating a load area in response to overlap between the connection area and the second component sample area;
- determining a site for relocating the driver component or the load component;
- and
- relocating the driver component or the load component to the site.
A post-placement optimization process for location of components of an integrated circuit, comprising:
- providing a simulation of an integrated circuit, the simulation of the integrated circuit having simulated connections, the simulated connections having associated delays;
- collecting critical connections from the simulated connections, the critical connections having associated negative slack times;
- ranking the critical connections responsive to the negative slack times;
- selecting a critical connection from the ranking, the connection having a driver component and a load component associated therewith;
- generating component areas for the critical connection selected;
- generating a connection area for the critical connection selected;
- determining overlaps between the connection area and each of the component areas to provide a first and a second search areas;
- selecting a proposed driver location in the first search area for the driver component;
- selecting a proposed load location in the second search area for the load component;
- and
- determining cost of the proposed driver location;
- comparing cost of the proposed driver location with a cost for the current driver location;
- retaining one of the cost of the proposed driver location and the cost of the current driver location;
- retaining one of the proposed driver location and the current driver location responsive to the cost retained;
- determining cost of the proposed load location;
- comparing cost of the proposed load location with a cost for the current load location;
- retaining one of the cost of the proposed load location and the cost of the current load location;
- and
- retaining one of the proposed load location and the current load location responsive to the cost retained.
Dependencies are inferred from the claim text.