Incremental routing for circuit designs using a SAT router
First Claim
1. A method of routing a circuit design for implementation within an integrated circuit, the method comprising:
- determining a set of candidate paths from available paths of the integrated circuit for connecting source-sink pairs of the circuit design, wherein the set of candidate paths is initially a subset of the available paths;
generating, using a processor, an expression having a plurality of variables expressed as a conjunction of routing constraints representing legal routes of the source-sink pairs using only the candidate paths;
determining, using the processor, a routing result for the circuit design by initiating execution of a SAT solver on the expression; and
in response to the routing result indicating that the expression is not satisfiable, expanding the set of candidate paths, extending the expression using the expanded set of candidate paths, and initiating further execution of the SAT solver on the extended expression.
1 Assignment
0 Petitions
Accused Products
Abstract
Routing a circuit design for implementation within an integrated circuit can include determining a set of candidate paths from available paths of the integrated circuit for connecting source-sink pairs of the circuit design, wherein the set of candidate paths is initially a subset of the available paths, and generating, using a processor, an expression having a plurality of variables expressed as a conjunction of routing constraints representing legal routes of the source-sink pairs using only the candidate paths. A routing result for the circuit design can be determined by initiating execution of a SAT solver on the expression using the processor.
27 Citations
20 Claims
-
1. A method of routing a circuit design for implementation within an integrated circuit, the method comprising:
-
determining a set of candidate paths from available paths of the integrated circuit for connecting source-sink pairs of the circuit design, wherein the set of candidate paths is initially a subset of the available paths; generating, using a processor, an expression having a plurality of variables expressed as a conjunction of routing constraints representing legal routes of the source-sink pairs using only the candidate paths; determining, using the processor, a routing result for the circuit design by initiating execution of a SAT solver on the expression; and in response to the routing result indicating that the expression is not satisfiable, expanding the set of candidate paths, extending the expression using the expanded set of candidate paths, and initiating further execution of the SAT solver on the extended expression. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for routing a circuit design for implementation within an integrated circuit, the system comprising:
-
a processor configured to initiate executable operations including; determining a set of candidate paths from available paths of the integrated circuit for connecting source-sink pairs of the circuit design, wherein the set of candidate paths is initially a subset of the available paths; generating a expression having a plurality of variables expressed as a conjunction of routing constraints representing legal routes of the source-sink pairs using only the candidate paths; determining a routing result for the circuit design by initiating execution of a SAT solver on the expression; and in response to the routing result indicating that the expression is not satisfiable, expanding the set of candidate paths, extending the expression using the expanded set of candidate paths, and initiating further execution of the SAT solver on the extended expression. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer program product comprising a computer readable storage medium having program code stored thereon for routing a circuit design for implementation within an integrated circuit, the program code executable by a processor to perform operations comprising:
-
determining a set of candidate paths from available paths of the integrated circuit for connecting source-sink pairs of the circuit design, wherein the set of candidate paths is initially a subset of the available paths; generating an expression having a plurality of variables expressed as a conjunction of routing constraints representing legal routes of the source-sink pairs using only the candidate paths; determining a routing result for the circuit design by initiating execution of a SAT solver on the expression; and in response to the routing result indicating that the expression is not satisfiable, expanding the set of candidate paths, extending the expression using the expanded set of candidate paths, and initiating further execution of the SAT solver on the extended expression. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification