0
\$\begingroup\$
  1. Let's say I have a 5-bit integer frequency divider first.
  • Does this mean that I can divider my input frequency anywhere from 1 to 2^5 (or 2 to 2^5+1 as dividing by 1 doesn't make much sense)?
  • Now let's say I have a 100 MHz input frequency signal and set a divider value of 3. Will the output be 33 MHz or 33.33 MHz?
  1. Now let's look at the 5.5 bit fractional frequency divider.
  • Here what does 5.5 mean? I read somewhere(but not sure of the source) that a x.y fractional divider means x bits for the integer part of division of y bits for the fractional part. What does this mean exactly? What value will I be dividing my input frequency by exactly?

Sorry if my questions are not clear. I am really confused about this.

\$\endgroup\$
2
  • \$\begingroup\$ Integer dividers are usually power-of-2 dividers. Because they are basically counters. So if you have 5-bit counter, it can divide by 2, 4, 8, ... , 32 \$\endgroup\$
    – Eugene Sh.
    Commented Nov 28, 2023 at 16:14
  • \$\begingroup\$ @EugeneSh. ... except when you have a non-binary integer divider, like the /5 in a 74HC390 package for instance, or make a programmable one from a HC163, divide by 1 to 16. But binary ones are simpler. \$\endgroup\$
    – Neil_UK
    Commented Nov 28, 2023 at 16:53

3 Answers 3

1
\$\begingroup\$

Let's say I have a 5-bit integer frequency divider first.

Does this mean that I can divider my input frequency anywhere from 1 to 2^5 (or 2 to 2^5+1 as dividing by 1 doesn't make much sense)?

If you have a programmable divider, then yes, it can divide by any number within its programming range. For instance, a down counter could be reloaded with N every time it counts down to 0. This would then divide by N (or N-1 or N+1 depending on how you pipelined the detect-0 to reload-with-N logic).

Dividing by 1 makes perfect sense with this type of divider, it generates a reload pulse for every input pulse. This makes more sense in an FPGA where it might be generating a clock enable signal for a process that did not have to execute every clock cycle. You're right that it would make no sense if you wanted a lower frequency squarewave out.

Now let's say I have a 100 MHz input frequency signal and set a divider value of 3. Will the output be 33 MHz or 33.33 MHz?

Neither, it would be 33.3 recurring, more easily written in rational form as 100/3.

Now let's look at the 5.5 bit fractional frequency divider.

Here what does 5.5 mean? I read somewhere(but not sure of the source) that a x.y fractional divider means x bits for the integer part of division of y bits for the fractional part. What does this mean exactly? What value will I be dividing my input frequency by exactly?

A divide by 5.5 (decimal, five and a half) would be done by having a divider that divided by 5 for one output cycle, then 6 for the next. That way, you would have two output cycles for every 11 input cycles. This can be generalised to any value of modulus.

If you are using 5.5 notation to mean 5 integer and 5 fractional binary bits, then you would have a 5 bit binary divider, whose division ratio could be altered every cycle, in a sequence of either exactly 32 cycles, or up to 32 cycles, depending on whether the fractional modulus was programmable.

Typically, a fractional divider only makes sense when doing frequency synthesis.

To get low noise synthesis, you need a high reference frequency. The resolution of a conventional integer divider digital PLL is always a multiple of the reference frequency, which might be inconveniently high for your application.

Fractional synthesis creates unwanted sidebands at the longest divider sequence repeat. The 11/2 divider would have sidebands at half the reference frequency.

When a fractional divider is used with a small modulus to get lower phase/multiplication noise, then usually these sidebands can be arranged to be outside the loop bandwidth, and so filtered out. For instance, if you wanted 1kHz resolution, with a 10 kHz reference, then you could use a fractional divider with a modulus of 10, and filter the 1 kHz sidebands out with a loop filter of 100 Hz bandwidth or less.

When a fractional divider is used with a large modulus to get fine resolution, it's no longer possible to filter out the sidebands. They could be cancelled, a process that is now largely obsolete, using DACs to inject cancelling signals into the PLL. More common today is to use noise shaping to move the energy up to high frequencies where it can be filtered out by the loop filter. This involves using more ratios than we would expect, and requires the PLL and phase detector to be exceptionally linear, to avoid distortion down-converting this shifted energy back down into the loop.

What is the difference between an integer frequency divider and a fractional frequency divider?

To answer specifically the question of your title - an integer frequency divider divides by the same count every output cycle. A fractional divider selects a new count value every output cycle, according to some algorithm.

\$\endgroup\$
0
1
\$\begingroup\$

(Numbers rounded to nearest 1kHz)

  1. The output frequency would be 33.333 MHz with a divisor of 3

  2. A 5.5 fractional divider has 5 bits on either side of the radix point.

Ideally to get 30.000 MHz from a 100 MHz clock you'd want 3.5555 (in hex, C repeating) but with only 5 bits of fraction we can round it to (in binary):

00011.01010 which gives us 30.189 MHz

\$\endgroup\$
5
  • \$\begingroup\$ Thanks for the answer! How do you find the hexadecimal(3.4CCC) for a recurring number(3.33...). I googled it but did not get any help. \$\endgroup\$
    – sj1234
    Commented Nov 29, 2023 at 11:32
  • \$\begingroup\$ Actually, that's wrong, not sure where that came from. The binary number is correct. It should be 3.5555 repeating in hex. I wrote a program to make fixed point 16:16 calculations easy, because that's useful internally for various embedded systems. \$\endgroup\$ Commented Nov 29, 2023 at 12:03
  • \$\begingroup\$ To get n fractional bits of a decimal number, multiply the fractional part by 2^n. For example, 5 bits of 3.14 is 0.14 * 2^5 = 4.48. And 4 is 00100 (round here how you like). Thus 11.00100 binary. \$\endgroup\$
    – TypeIA
    Commented Nov 29, 2023 at 12:38
  • \$\begingroup\$ To look at another way, divide the n-bit fractional part by 2^n and add that to the integer part to convert to decimal. \$\endgroup\$ Commented Nov 29, 2023 at 14:53
  • \$\begingroup\$ The same way that 0.123123... == 123 / 999 in decimal, 0.123123... = 123 / FFF in hex (as many 9s or Fs as there are digits in the repeating section). So 1/3 = 5/F = 0.5 repeating. \$\endgroup\$
    – hobbs
    Commented Nov 29, 2023 at 15:41
0
\$\begingroup\$
  1. It depends on the divider, sometimes dividing by 1 means no dividing so divider is bypassed, but that's just semantics, the frequency coming out of a "black box" can still be thought to be divided by some number even if the number is 1. And yes, if the "black box" is set to divide by 3, feeding in 100 MHz ends uo 33.33 MHz coming out, because you can't divide 100 MHz by a simple divider which would end up having 30 MHz coming out, as you would need to divide by 3.3333... for that.

  2. If you have a 5.5 bit fractional divider, it depends on the description of the divider what it means, as there is no single explanation for what a 5.5 bit fractional integer means. If you gave a specific example this could be answred based on the specific divider. But it literally means you have 5 bits for the integer part and 5 bits for the fractional part, which means 10 bits of precision to have finer grained control which frequency output you end up with.

For example modern MCUs may have UARTs with fractional baud rate divider. But it does not really output clock pulses evenly at specific frequency, it simply outputs clock pulses at uneven rate but so that on a time scale for the baud rate the data bit sampling is accurate enough on average even if it contains some jitter.

\$\endgroup\$
2
  • \$\begingroup\$ Thanks for the answer! On point 2, I actually came across a datasheet that says they have a 24.5 bit fractional divider available for their clocks and they do not give any more info on this. In such a case can I assume the x.y thing(x -> integral part, y-> fractional part)? \$\endgroup\$
    – sj1234
    Commented Nov 29, 2023 at 11:36
  • \$\begingroup\$ @sj1234 Then if you have a data sheet, link to it. For example the PSoC6 has a 24.5 bit fractional divider, and surely how it works must be documented in order for anyone to use it. You can certainly assume in your case it allows for 24-bit integer and the fractional in units of 1/32 but it may or may not be the correct assumption. \$\endgroup\$
    – Justme
    Commented Nov 29, 2023 at 12:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.