A system and method improves the effectiveness of logic duplication
optimizations by dynamically allocating the usage of logic duplicates.
Duplicate atoms in the user design are identified. Atoms satisfying
heuristics can also be duplicated and added to the user design. During
placement, a duplicate-aware cost function is used to determine the
location on the programmable device of atoms driven by a duplicate atom.
The duplicate-aware cost function evaluates the suitability of a
potential location of a driven atom with respect to a source atom and any
duplicates of the source atom. Following placement of the atoms of the
user design, a rewiring phase establishes a connection between each
driven atom and one of the duplicated source atoms. The duplicate-aware
cost function can be used to evaluate sets of duplicate source atoms to
optimize the operating speed, power consumption, and/or routability of a
user design.