Patent ID: 6907592

Claim:
A method of routing a programmable logic device, comprising: reading a design containing connectivity information; assigning priorities to vector connections identified in the design based on the connectivity information; selecting a path for a vector connection using the assigned priorities; and searching for alternate paths using one or more iterative processes, wherein the iterative processes including choosing an alternate path and adjusting a cost of one or more elements used in the path, wherein the choosing an alternate path comprises: identifying one or more possible paths for an unsuccessful vector connection; identifying path elements in one of the identified possible paths: determining whether the path elements can be made available to a vector connection by searching for alternate paths for other vector connections that use the path elements; end performing the following if the path elements can be made available: selecting the possible path containing the available path elements; adjusting the cost of all path elements in the selected path; and selecting the alternate paths for the other vector connections that are using the required path elements.