Component placement with repacking for programmable logic devices
First Claim
Patent Images
1. A method comprising:
- receiving in a processor, a design identifying operations to be performed by a programmable logic device (PLD), with logic blocks in pre-determined physical locations of the PLD;
packing, in the processor, each of a plurality of components of the PLD into a respective one of a plurality of logic groups;
determining, in the processor, a layout comprising assigned positions of the plurality of logic groups of the PLD configured to perform the operations;
routing connections between the plurality of components;
performing, in the processor, a timing analysis on the layout comprising both the assigned positions of the plurality of logic groups and the routed connections;
selectively adjusting, in the processor, assigned positions of the plurality of components in the determined layout by repacking at least one of the plurality of components into another logic group of the plurality of logic groups using the timing analysis;
generating an adjusted layout comprising the adjusted assigned positions of the plurality of components of the PLD, for configuring the PLD to perform the operations;
storing the adjusted layout for configuring the PLD to perform the operations; and
providing the PLD programmed based on the adjusted layout.
4 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are disclosed herein to provide improved placement of components in programmable logic devices (PLDs). In one example, a computer-implemented method includes receiving a design identifying operations to be performed by a PLD. The method also includes determining a layout comprising positions of components of the PLD configured to perform the operations. The method also includes performing a timing analysis on the layout. The method also includes selectively adjusting the positions of the components using the timing analysis. Related systems and non-transitory machine-readable mediums are also provided.
8 Citations
20 Claims
-
1. A method comprising:
-
receiving in a processor, a design identifying operations to be performed by a programmable logic device (PLD), with logic blocks in pre-determined physical locations of the PLD; packing, in the processor, each of a plurality of components of the PLD into a respective one of a plurality of logic groups; determining, in the processor, a layout comprising assigned positions of the plurality of logic groups of the PLD configured to perform the operations; routing connections between the plurality of components; performing, in the processor, a timing analysis on the layout comprising both the assigned positions of the plurality of logic groups and the routed connections; selectively adjusting, in the processor, assigned positions of the plurality of components in the determined layout by repacking at least one of the plurality of components into another logic group of the plurality of logic groups using the timing analysis; generating an adjusted layout comprising the adjusted assigned positions of the plurality of components of the PLD, for configuring the PLD to perform the operations; storing the adjusted layout for configuring the PLD to perform the operations; and providing the PLD programmed based on the adjusted layout. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system comprising:
-
a processor; and a memory adapted to store a plurality of computer readable instructions which when executed by the processor are adapted to cause the system to perform a computer-implemented method comprising; receiving a design identifying operations to be performed by a programmable logic device (PLD), with logic blocks in pre-determined physical locations of the PLD, packing each of a plurality of components of the PLD into a respective one of a plurality of logic groups, determining a layout comprising assigned positions of the plurality of logic groups of the PLD configured to perform the operations, routing connections between the plurality of components, performing a timing analysis on the layout comprising both the assigned positions of the plurality of logic groups and the routed connections, selectively adjusting assigned positions of the plurality of components in the determined layout by repacking at least one of the plurality of components into another logic group of the plurality of logic groups based on the timing analysis, generating an adjusted layout comprising the adjusted assigned positions of the plurality of components of the PLD, for configuring the PLD to perform the operations, storing the adjusted layout for configuring the PLD to perform the operations, and programming the PLD with the adjusted layout. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A method comprising:
-
receiving in a processor, a design identifying operations to be performed by a programmable logic device (PLD), with logic blocks in pre-determined physical locations of the PLD; packing, in the processor, each of a plurality of components of the PLD into a respective one of a plurality of logic groups; determining, in the processor, a layout comprising assigned positions of the plurality of logic groups of the PLD configured to perform the operations; routing connections between the plurality of components; performing, in the processor, a timing analysis on the layout comprising both the assigned positions of the plurality of logic groups and the routed connections; selectively adjusting, in the processor, assigned positions of the plurality of components in the determined layout by repacking at least one of the plurality of components into another logic group of the plurality of logic groups using the timing analysis; generating an adjusted layout comprising the adjusted assigned positions of the plurality of components of the PLD, for configuring the PLD to perform the operations; storing the adjusted layout for configuring the PLD to perform the operations; and programming the PLD with the adjusted layout. - View Dependent Claims (18, 19, 20)
-
Specification