IP Library › Granted Patent US 10,614,191
Granted Patent B1
US 10,614,191 · App. 15/991,791 · Granted Apr 7, 2020

Performing placement and routing concurrently

Inventors: Henri Fraisse (Sunnyvale, CA); Dinesh D. Gaitonde (Fremont, CA)
Assignee: XILINX, INC.
G06F17/5077G06F17/504G06F17/5054G06F17/5068G06F17/5072G06F17/5081G06F2217/08
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,614,191
App. No.
15/991,791
Granted
Apr 7, 2020
Kind
B1
Abstract

Method and system relate generally to generating a physical design for a circuit design. In such a method, a logical network is obtained from a logical netlist for the circuit design. A physical network for an integrated circuit chip is obtained. The physical network is converted into a routing graph. The logical network and the routing graph are combined to build an extended network. Routing is performed on the extended network for the logical netlist to perform placement and the routing concurrently to provide the physical design.

Claims (62)

1. A method for generating a physical design for a circuit design, comprising:

obtaining a logical network from a logical netlist for the circuit design;

obtaining a physical network for an integrated circuit chip;

converting the physical network into a routing graph;

combining the logical network and the routing graph to build an extended network; and

routing on the extended network for the logical netlist to perform placement and the routing concurrently to provide the physical design.

2. The method according to claim 1 , wherein:

the converting comprises building the routing graph for the physical network having physical nodes; and

the combining comprises:

adding logical nodes of the logical network to the routing graph; and

interconnecting the logical nodes to the physical nodes.

3. The method according to claim 2 , wherein the interconnecting comprises:

interconnecting a first set of all combinations of interconnections of input nodes of the logical nodes to input nodes of the physical nodes;

the physical nodes representing wires of the physical network; and

interconnecting a second set of all combinations of interconnections of output nodes of the logical nodes to output nodes of the physical nodes.

4. The method according to claim 2 , wherein the interconnecting comprises:

interconnecting a first subset of combinations of interconnections of input nodes of the logical nodes to input nodes of the physical nodes;

the physical nodes representing wires of the physical network; and

interconnecting a second subset of combinations of interconnections of output nodes of the logical nodes to output nodes of the physical nodes.

5. The method according to claim 2 , wherein the interconnecting comprises for a source node of the logical nodes, adding an outgoing edge from the source node to at least one driver node of the physical nodes.

6. The method according to claim 5 , wherein the interconnecting comprises for a sink node of the logical nodes, adding an incoming edge to the sink node from at least one load node of the physical nodes.

7. The method according to claim 2 , wherein:

the interconnecting comprises:

for each source node of the logical nodes, adding an outgoing edge from the source node to each driver node of the physical nodes in the routing graph; and

for each sink node of the logical nodes, adding an incoming edge to the sink node from each load node of the physical nodes in the routing graph; and

the routing comprises:

determining valid routings for instantiation of the logical netlist in the extended network;

filtering out invalid placements from the valid routings; and

selecting a valid routing from the valid routings remaining after the filtering thereof.

8. The method according to claim 7 , wherein the filtering has a constraint of each circuit instance of the logical network must be mapped to a unique circuit instance in the physical network.

9. The method according to claim 8 , wherein the constraint is a first constraint, and wherein the filtering has a second constraint of limiting connection of each of the logical nodes to only one of the physical nodes.

10. The method according to claim 8 , wherein subsets of outgoing edges and incoming edges added for the interconnecting are culled for the determining of the valid routings.

11. A system, comprising:

a memory configured to store program code; and

a processor coupled to the memory, wherein the processor, in response to executing the program code, is configured to initiate operations for generating a physical design for a circuit design, including:

obtaining a logical network from a logical netlist for the circuit design;

obtaining a physical network for an integrated circuit chip;

converting the physical network into a routing graph including representing wires of the physical network as physical nodes in the routing graph;

combining the logical network and the routing graph to build an extended network; and

routing on the extended network for the logical netlist to perform placement and the routing concurrently to provide the physical design.

12. The system according to claim 11 , wherein the processor, in response to executing the program code, is configured to initiate operations for implementing performing of the combining, including:

adding logical nodes of the logical network to the routing graph; and

interconnecting the logical nodes to the physical nodes.

13. The system according to claim 12 , wherein the processor, in response to executing the program code, is configured to initiate operations for implementing performing of the interconnecting, including:

interconnecting a first set of all combinations of interconnections of input nodes of the logical nodes to input nodes of the physical nodes; and

interconnecting a second set of all combinations of interconnections of output nodes of the logical nodes to output nodes of the physical nodes.

14. The system according to claim 12 , wherein the processor, in response to executing the program code, is configured to initiate operations for implementing performing of the interconnecting, including:

interconnecting a first subset of combinations of interconnections of input nodes of the logical nodes to input nodes of the physical nodes; and

interconnecting a second subset of combinations of interconnections of output nodes of the logical nodes to output nodes of the physical nodes.

15. The system according to claim 12 , wherein the processor, in response to executing the program code, is configured to initiate operations for implementing performing of the interconnecting, including, for a source node of the logical nodes, adding an outgoing edge from the source node to at least one driver node of the physical nodes.

16. The system according to claim 15 , wherein the processor, in response to executing the program code, is configured to initiate operations for implementing performing of the interconnecting, including, for a sink node of the logical nodes, adding an incoming edge to the sink node from at least one load node of the physical nodes.

17. The system according to claim 12 , wherein:

the processor, in response to executing the program code, is configured to initiate operations for implementing performing of the interconnecting, including:

for each source node of the logical nodes, adding an outgoing edge from the source node to each driver node of the physical nodes in the routing graph; and

for each sink node of the logical nodes, adding an incoming edge to the sink node from each load node of the physical nodes in the routing graph; and

the processor, in response to executing the program code, is configured to initiate operations for implementing performing of the routing, including:

determining valid routings for instantiation of the logical netlist in the extended network;

filtering out invalid placements from the valid routings; and

selecting a valid routing from the valid routings remaining after the filtering thereof.

18. The system according to claim 17 , wherein the filtering has a constraint of each circuit instance of the logical network must be mapped to a unique circuit instance in the physical network.

19. The system according to claim 18 , wherein the constraint is a first constraint, and wherein the filtering has a second constraint of limiting connection of each of the logical nodes to only one of the physical nodes.

20. The system according to claim 18 , wherein subsets of outgoing edges and incoming edges added for the interconnecting are culled for the determining of the valid routings.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2018
From: FRAISSE, HENRI; GAITONDE, DINESH D.
To: XILINX, INC.
Reel/Frame 045925/0314 →
Cited By (2)
US 12,688,350 US 12,699,855