A programming method efficiently programs programmable logic devices of the type
having specialized multiplier blocks that include multipliers and other arithmetic
function elements. Such blocks can be used to perform certain multiplication and
multiplication-related functions more efficiently than general-purpose programmable
logic. In order to efficiently program devices having such specialized multiplier
blocks, so that they are used to their full potential and so that the maximum number
of multiplier-related functions can be accommodated on a single programmable logic
device, the programming method pre-processes the netlist of function blocks in
a user's programmable logic design, grouping multiplication and multiplication-related
functions efficiently. The method takes into account limitations imposed by the
structure of the specialized multiplier blocks, in addition to location constraints
imposed by the user and location constraints dictated by the need for certain functions
be carried out near where certain other functions are carried out.