A serious problem in microchip design is the distribution of clock signals. There are many latches scattered about the chip which must recieve a clock signal simultaneously, and one clock generator which generates the signal. Simply stringing a wire between this source and all of the latches is not feasable, since there are limits on how much capacitance can be on a single wire before any signals on that wire are degraded due to noise, and the capacitance is proportional to the amount of wire present. Therefore, a number of repeaters must be inserted to copy the clock signal and break up the single large net into a number of smaller ones, each connecting a smaller set of latches. These nets are still possibly too large, so this process must be repeated a number of times, forming a tree structure which will allow the clock signal to remain strong enough to be noise-free as it travels from the signal generator to the latches. Unfortunately, the signal must arrive simultaneously at all of the latches, and the propigation time of a signal across a net is determined by the size of the net. Thus, all branches of the tree must be balanced, otherwise some latches will recieve the signal too early or too late relative to their neighbors.
In addition, this tree structure will contain an immense amount of wire and a large number of repeaters. This will cause unacceptably large power consumption unless the tree is made as small as possible, subject to the balance constraint, and a number of other constraints on individual nets within the tree which guarantee signal integrity. The following picture illustrates a miniature version of this problem. The green dot is the clock source, and the red dots are the latches that need to recieve the clock signal. The signal travels from the source through a net (green line) to the first level repeater (blue square) to a second level net (blue line) to the latches. In practice, a tree would have far more latches (tens of thousands), and would therefore be several levels deep to satisfy the size constraints on all levels. This tree needs to be optimized, because the single blue net is too large; it goes to a large number of destinations, and they are widely scattered so it requires a lot of wire, both of which are problems.