This application discloses performing a static timing analysis on a circuit design with an unbalanced clock tree, for example, to determine data arrival timing and clock arrival timing at multiple clock-driven circuits in a circuit design, and then performing clock tree synthesis on the circuit design to initially balance the unbalanced clock tree based, at least in part, on the data arrival timing relative to the clock arrival timing at the multiple clock-driven circuits. The clock tree after initial balancing includes a clock signal path configured to provide a clock signal to each of the multiple clock-driven circuits with a new clock arrival timing that corresponds to the data arrival timing.
展开▼