Placement processing for programmable logic devices
First Claim
1. A method of mapping a plurality of circuit elements onto a plurality of configurable logic blocks (CLBs) in a programmable logic device (PLD), comprising:
- generating a mapping of the circuit elements to the CLBs in the PLD;
selecting a critical path in the PLD corresponding to the mapping; and
for at least one node of the critical path, changing node assignment from a current location to a different location based on change of circuit performance corresponding to the change in node assignment.
4 Assignments
0 Petitions
Accused Products
Abstract
A method for placing configurable logic blocks (CLBs) in a PLD, such as an FPGA. In one embodiment, after packing gates/clusters into blocks and then assigning those blocks to CLBs to generate an initial placement, the packing and/or placement of CLBs is changed prior to performing CLB routing. For each node of the most critical of the K most critical paths in the initial placement, moving the node to a different CLB is considered in order to reduce the criticality of that path. A move is applied if certain acceptability conditions are met. After the most critical path is improved, the criticality of the K paths is updated, and the procedure is repeated for the new most critical of the K updated paths. The method, which can be automated to reduce human intervention in the design process, improves circuit performance, e.g., by enabling higher circuit operation frequencies.
-
Citations
23 Claims
-
1. A method of mapping a plurality of circuit elements onto a plurality of configurable logic blocks (CLBs) in a programmable logic device (PLD), comprising:
-
generating a mapping of the circuit elements to the CLBs in the PLD;
selecting a critical path in the PLD corresponding to the mapping; and
for at least one node of the critical path, changing node assignment from a current location to a different location based on change of circuit performance corresponding to the change in node assignment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A circuit mapping generated by implementing a method of mapping a plurality of circuit elements onto a plurality of configurable logic blocks (CLBs) in a programmable logic device (PLD), the method comprising:
-
generating an initial mapping of the circuit elements to the CLBs in the PLD;
selecting a critical path in the PLD corresponding to the initial mapping; and
for at least one node of the critical path, changing node assignment from a current location to a different location based on change of circuit performance corresponding to the change in node assignment.
-
-
16. A programmed PLD having a plurality of circuit elements mapped onto a plurality of CLBs, the PLD generated by implementing a method comprising:
-
generating a mapping of the circuit elements to the CLBs in the PLD;
selecting a critical path in the PLD corresponding to the mapping; and
for at least one node of the critical path, changing node assignment from a current location to a different location based on change of circuit performance corresponding to the change in node assignment.
-
-
17. A machine-readable medium, having encoded thereon program code, wherein, when the program code is executed by a machine, the machine implements a method of mapping a plurality of circuit elements onto a plurality of configurable logic blocks (CLBs) in a programmable logic device (PLD), the method comprising:
-
generating a mapping of the circuit elements to the CLBs in the PLD;
selecting a critical path in the PLD corresponding to the mapping; and
for at least one node of the critical path, changing node assignment from a current location to a different location based on change of circuit performance corresponding to the change in node assignment. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
Specification