Patent ID: 8891725

Claim:
A frequency divider for dividing a frequency of an oscillation signal, comprising: a first input to receive an input clock signal CKin; a second input to receive a digital representation of a frequency division ratio D, wherein D is an integer; an output to generate an output clock signal CKout; a multi-modulus prescaler to perform frequency division by a modulus M, wherein M is an integer between N and 2*N−1 and N is a power of 2, the multi-modulus prescaler comprising: a first input to receive CKin; a second input to receive a digital representation of M; and an output to generate an output clock signal CKpr, wherein a frequency of CKpr is lower than a frequency of CKin; wherein: the multi-modulus prescaler to generate a first edge of CKpr triggered by a first edge of CKin; the multi-modulus prescaler to sample the digital representation of M from the second input of the multi-modulus prescaler with each edge of CKin that triggers an edge of CKpr; and the multi-modulus prescaler to use the sampled value of M to generate a second edge of CKpr with the M-th edge of CKin after the first edge of CKin; a programmable counter, comprising: a first input coupled to the multi-modulus prescaler to receive CKpr; a second input to receive the digital representation of D; a first output to generate an output clock signal CKouti, wherein a frequency of CKouti is lower than the frequency of CKin; and a second output coupled to the multi-modulus prescaler and to generate the digital representation of M; wherein: the counter to sample the digital representation of D from the second input of the frequency divider with a first edge of CKpr; the counter to use the sampled value of D to sample the next value of D with an edge of CKpr D\N edges after the first, wherein D\N equals an integer portion of D divided by N; the counter to output the digital representation of M with each edge of CKpr; wherein: M equals N plus D minus D\N for each edge of CKpr wherein the counter samples the digital representation of D; and M equals N for each subsequent edge of CKpr wherein the counter does not sample the digital representation of D.