Method of placement for iterative implementation flows
AssigneeXilinx, Inc.
InventorsRaymond Kong, Sandor S. Kalman
Life of this patent
Estimating the term…
Abstract
A method of implementing a circuit design in a target device can include identifying routing information for a circuit design that has been at least partially implemented. A plurality of empty sites of the target device within which the circuit design is to be implemented can be identified. The method also can include determining whether each of the plurality of empty sites of the target device has a routing conflict according to the routing information of the circuit design and generating a list specifying each empty site of the target device that has a routing conflict.
Claims16
A computer-implemented method of implementing a circuit design in a target device, the method comprising:
- executing a program by a computer system to perform functions including:
- identifying routing information for a circuit design that has been at least partially implemented;
- identifying a plurality of empty sites of the target device within which the circuit design is to be implemented;
- determining whether each of the plurality of empty sites of the target device has a routing conflict according to the routing information of the circuit design;
- wherein determining whether each of the plurality of empty sites of the target device has a routing conflict further includes determining whether at least one pin of each of the plurality of empty sites has a blockage;
- determining that a pin does not have a blockage when, while traversing a directed acyclic graph representing routing information with respect to the pin, a node is identified that is not used and has an incoming degree of at least two;
- generating a list specifying each of the plurality of empty sites of the target device that has a routing conflict;
- and
- outputting the generated list.
A computer-implemented method of implementing a circuit design in a target device, the method comprising:
- executing a program by a computer system to perform functions including:
- representing routing information for a circuit design that has been at least partially implemented as a directed acyclic graph (DAG);
- identifying empty sites of the target device;
- for each empty site, traversing a path in the DAG starting from at least one pin of the empty site and determining whether a node within the path, having an incoming degree of at least one, is used and is associated with a routing attribute indicating that the node is locked;
- when the path is used and is associated with the routing attribute indicating that the node is locked, determining that the empty site has a routing conflict and adding the empty site to a list of empty sites to be excluded during placement;
- and
- outputting the list of empty sites.
A computer program product, comprising:
- a computer-usable storage device having computer-usable program code that implements a circuit design in a target device, the program code that when executed by a processor causing the processor to perform operations including:
- identifying routing information for a circuit design that has been at least partially implemented;
- identifying a plurality of empty sites of a target device within which the circuit design is to be implemented;
- determining whether each of the plurality of empty sites of the target device has a routing conflict according to the routing information of the circuit design;
- wherein the determining whether each of the plurality of empty sites of the target device has a routing conflict includes determining whether at least one pin of each of the plurality of empty sites has a blockage;
- determining that a pin does not have a blockage when, while traversing a directed acyclic graph representing routing information with respect to the pin, a node having an incoming degree of at least two, which is not used, is identified;
- and
- generating and storing a list specifying each of the plurality of empty sites of the target device that has a routing conflict.
Dependencies are inferred from the claim text.