Patent ID: 7610573

Claim:
A computer-implemented method of implementing a circuit design within a target integrated circuit (IC), the method comprising: executing a program on a computer system, wherein execution of the program causes the computer system to perform operations including: during technology mapping of the circuit design, determining a respective plurality of implementations of a plurality of sub-circuits of the circuit design; retaining each respective plurality of implementations; for each sub-circuit having the respective plurality of implementations, selecting a primary implementation from the retained respective plurality of implementations; placing the circuit design on the target IC using each primary implementation of each sub-circuit having the respective plurality of implementations; after the placing, identifying a portion of the circuit design that does not conform to a design constraint; selecting from the identified portion the sub-circuit having a respective plurality of implementations; selecting a respective alternate implementation of the selected sub-circuit from the retained respective plurality of implementations; replacing the primary implementation of the selected sub-circuit with the selected alternate implementation, wherein determining the respective plurality of implementations comprises determining the respective plurality of implementations for each of the plurality of sub-circuits of a selected region of the circuit design, and wherein replacing the primary implementation comprises replacing each primary implementation of each sub-circuit of the selected region with a respective alternate implementation of the sub-circuit; and outputting the placed circuit design after the replacing.