11. A non-transitory machine readable medium storing a program for placement of a plurality of cells of a user design on an integrated circuit (IC), the program executable by at least one processing unit, the program comprising: a set of instructions for building a set of timing constraints for placement of the plurality of cells on a plurality of sites on the IC; a set of instructions for sending the set of timing constraints to a satisfiability solver with a placer; and a set of instructions for receiving a placement that satisfies the set of timing constraints for the plurality of cells from the satisfiability solver; and a set of instructions for configuring the integrated circuit with configuration data that includes the placement that satisfies the set of timing constraints.
14. The non-transitory machine readable medium of claim 11 , wherein the set of timing constraints is a first set of timing constraints, the program further comprising: a set of instructions for determining, after receiving the placement that satisfies the set of timing constraints, whether a set of user design goals for a set of user design clock domains are satisfied; a set of instructions for increasing a target frequency of at least one clock domain when the set of user design goals for the set of user design clock domains are not satisfied; a set of instructions for building a second set of timing constraints based on the increased target frequency; a set of instructions for sending the second set of timing constraints to the satisfiability solver; and a set of instructions for receiving a placement for the plurality of cells from the satisfiability solver that satisfies the second set of timing constraints built based on the increased target frequency.