108 which in turn sends a clock source request to clock source interface 124 clock source interface 124 uses the clock request to select a clock source from a plurality of clock sources 104 which has clock characteristics needed by clock consumer 106 e g frequency duty cycle accuracy in the example shown the clock consumer request is used to close clock gate 130 allowing the selected clock source to provide a waveform to clock generator 108 the waveform e g a symmetrical square wave with 50 duty cycle is provided as input perhaps with other waveforms to multiplexer 120 in clock generator 108 clock source selector 116 selects one of n waveforms provided by clock sources 104 the waveform generated by the selected clock source may be divided down by clock divider 118 or multiplied by a factor using a clock multiplier to generate a clock the clock is sent to clock enable circuit 110 the selected clock source continues to run as long as at least one clock consumer is requesting the selected clock source having the selected clock source continuously run even if there is no demand from clock consumers will waste power when there are no longer any clock consumers requesting the selected clock source the request for the selected clock source is released and the selected clock source is stopped by for.