Optimizing chain placement in a programmable logic device
First Claim
1. A method of implementing logical functions in a programmable logic device comprising the steps of:
- inputting design characteristics, said design characteristics defining a plurality of chains wherein a chain is a group of linked circuit elements, into a programmed digital computer;
in said programmed digital computer, solving a bin packing problem for said design characteristics after chain placement, each bin comprising a plurality of logic elements linked in a linear fashion, wherein a routing of said logic elements is predetermined;
programming said programmable logic device with a result of said solving step; and
using said programmable logic device to implement said logical functions.
1 Assignment
0 Petitions
Accused Products
Abstract
A technique is used to implement chains into a programmable logic device. In one embodiment, the method includes solving a bin packing problem (step 105), test-placing a chain in each logic element position (step 401), forming groups of unused logic element positions (step 405), determining whether future chains can be placed in these remaining unused logic element positions (step 410), comparing each placement against a previously stored placement, and storing the logic element position of the more efficient logic element positions have been checked (step 210). In the end, a substantially optimum placement for each chain is found.
-
Citations
27 Claims
-
1. A method of implementing logical functions in a programmable logic device comprising the steps of:
-
inputting design characteristics, said design characteristics defining a plurality of chains wherein a chain is a group of linked circuit elements, into a programmed digital computer; in said programmed digital computer, solving a bin packing problem for said design characteristics after chain placement, each bin comprising a plurality of logic elements linked in a linear fashion, wherein a routing of said logic elements is predetermined; programming said programmable logic device with a result of said solving step; and using said programmable logic device to implement said logical functions. - View Dependent Claims (2, 3, 4, 5, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
6. A method for programming a programmable logic device, having a plurality of logic array blocks, each logic array block comprising a plurality of logic elements, comprising the steps of:
-
inputting design characteristics, said design characteristics defining a plurality of chains, into a programmed digital computer; in said programmed digital computer, determining whether placing a chain of said design characteristics at one of a plurality of logic element positions in a logic array block of said plurality of logic array blocks will block future chains from being placed in said logic array block, wherein said logic array block comprises a plurality of logic element positions organized in a linear linked structure having predetermined routing; repeating said determining step for said plurality of logic element positions in said logic array block; and programming said programmable logic device with a result of said repeating step. - View Dependent Claims (7, 8)
-
-
9. A method of programming a programmable logic device comprising the steps of:
-
inputting design characteristics, said design characteristics comprising a plurality of chains, into a computing machine; forming groups of consecutive empty logic element chains for said logic array block when a chain of said plurality of chains is placed at a logic element position of a plurality of logic element positions in said logic array block; determining whether remaining carry chains of said plurality of chains can fit into said groups of consecutive empty logic element chains of said logic array block, wherein said logic array block comprises a plurality of logic element positions organized in a linear linked structure having predetermined routing; repeating said forming and determining steps until said plurality of logic element positions in said logic array block are substantially occupied; and programming said programmable logic device with a result of said repeating step.
-
-
21. A computer program product comprising computer usable medium having computer readable code embodied therein for causing the implementation of chains in a programmable integrated circuit, said computer program product comprising:
-
computer readable code device configured to cause a computer to effect inputting design characteristics defining a plurality of chains wherein a chain is a group of linked circuit elements; computer readable code device configured to cause a computer to effect solving a bin packing problem for said design characteristics after chain placement, each bin comprising a plurality of logic elements linked in a linear fashion, wherein a routing of said logic elements is predetermined; and computer readable code device configured to cause a computer to effect programming said programmable logic device with a result of solving said bin packing problem. - View Dependent Claims (22, 23, 24)
-
-
25. A computer program product comprising computer usable medium having computer readable code embodied therein for causing the implementation of chains in a programmable integrated circuit, said computer program product comprising:
-
computer readable code device configured to cause a computer to effect inputting design characteristics, said design characteristics defining a plurality of chains; computer readable code device configured to cause a computer to effect determining whether placing a chain of said design characteristics at one of a plurality of logic element positions in a logic array block of said plurality of logic array blocks will block future chains from being placed in said logic array block, wherein said logic array block comprises a plurality of logic element positions organized in a linear linked structure having predetermined routing; and computer readable code device configured to cause a computer to effect repeating said determining step for said plurality of logic element positions in said logic array block. - View Dependent Claims (26, 27)
-
Specification