A system that reduces power consumption in an integrated circuit. During
operation the system receives a placement for the integrated circuit. The
system then groups registers in the placement into clusters and builds a
temporary clock tree for the registers within the placement. Next the
system assigns net weights to clock wires in the temporary clock tree and
signal wires between the rest of the cells of the circuit, and uses the
assigned net weights to optimize placement of the cells of the circuit by
minimizing a sum of the weighted costs of the wires, wherein the weighted
cost of a wire is a product of the net weight of the wire and the length
of the wire.