Patent ID: 8181139

Claim:
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.