Multi-priority placement for configuring programmable logic devices
First Claim
Patent Images
1. A computer-implemented method of configuring a programmable logic device (PLD), the method comprising:
- based on an initial mapping into the PLD of a netlist, performing a global routing analysis of all netlist connections;
based on the analysis, assigning to each netlist connection a routing score determined by the connection'"'"'s routing resource usage;
categorizing the netlist connections into at least two routing priority groups based on each connection'"'"'s routing score;
calculating a slack-to-target ratio for each netlist connection, wherein the ratio=(estimated delay−
target delay)/target delay;
categorizing the netlist connections into at least two timing priority groups based on each connection'"'"'s slack-to-target ratio;
categorizing a certain percentage of the highest slack-to-target ratios into a timing critical group;
swapping the logical function of at least one logical resource with the logical function of at least one other logical resource within the PLD; and
calculating, by a computer, three cost function values in parallel based on the routing priority groups, the timing priority groups, and the timing critical group, respectively; and
evaluating whether to accept or reject the swap using a simulated annealing process and at least the three cost function values.
4 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment of the invention, a computer-implemented method of configuring a programmable logic device (PLD) includes placing logical functions within logical resources of the PLD to implement a desired netlist; swapping the logical function of at least one logical resource with the logical function of at least one other logical resource within the PLD; and evaluating whether to accept or reject the swap using a simulated annealing process that calculates at least three cost function values based upon routing priority groups, timing priority groups, and a timing critical group.
19 Citations
10 Claims
-
1. A computer-implemented method of configuring a programmable logic device (PLD), the method comprising:
-
based on an initial mapping into the PLD of a netlist, performing a global routing analysis of all netlist connections; based on the analysis, assigning to each netlist connection a routing score determined by the connection'"'"'s routing resource usage; categorizing the netlist connections into at least two routing priority groups based on each connection'"'"'s routing score; calculating a slack-to-target ratio for each netlist connection, wherein the ratio=(estimated delay−
target delay)/target delay;categorizing the netlist connections into at least two timing priority groups based on each connection'"'"'s slack-to-target ratio; categorizing a certain percentage of the highest slack-to-target ratios into a timing critical group; swapping the logical function of at least one logical resource with the logical function of at least one other logical resource within the PLD; and calculating, by a computer, three cost function values in parallel based on the routing priority groups, the timing priority groups, and the timing critical group, respectively; and evaluating whether to accept or reject the swap using a simulated annealing process and at least the three cost function values. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A non-transitory computer readable medium on which are stored computer readable instructions for performing the following:
-
based on an initial mapping into a programmable logic device (PLD) of a netlist, performing a global routing analysis of all netlist connections; based on the analysis, assigning to each netlist connection a routing score determined by the connection'"'"'s routing resource usage; categorizing the netlist connections into at least two routing priority groups based on each connection'"'"'s routing score; calculating a slack-to-target ratio for each netlist connection, wherein the ratio=(estimated delay−
target delay)/target delay;categorizing the netlist connections into at least two timing priority groups based on each connection'"'"'s slack-to-target ratio; categorizing a certain percentage of the highest slack-to-target ratios into a timing critical group; swapping the logical function of at least one logical resource with the logical function of at least one other logical resource within the PLD; and calculating three cost function values in parallel based on the routing priority groups, the timing priority groups, and the timing critical group, respectively; and evaluating whether to accept or reject the swap using a simulated annealing process and at least the three cost function values. - View Dependent Claims (8, 9, 10)
-
Specification