Electronic – what is frequency divider and how does it work with d type flip flop circuit

flipflop

I am trying to learn about these things but I have very hard time to understand frequency divider and the leading edge and trailing edge of voltage.

Please, help is needed if someone explain it in easy way. Or could someone route me to any good resource of learning these things.

Currently I am reading the book named "CODE the hidden language of computer hardware and software" but I am stuck at chapter number 14.

Best Answer

Your question is actually pretty vague (without having that book in front of me anyway. You could be talking about digital or analog signals). But since you mentioned a flip flop I'll make the assumption that you're asking about taking a digital square wave of frequency N and realizing a square wave of frequency N/x, where x is an arbitrary number.

A d flip flop can be useful in realizing such a circuit especially if you want to divide the frequency by a power of two. The easiest way to visualize this stuff and get going is imagine a single flip flop with an inverter between the q output and d input clocked by the input square wave in question. The q output would change state (toggle) every other clock. In other words you'd be dividing your input signal by two. You could chain multiple flops together and divide by 4, etc.

That's useful if you want to divide by a power of two, but what about something else? Say, 3? Then you could use a counter and a magnitude comparator to drive the input of a flip flop. In this circuit you could have a free running counter with reset. You'd have a comparator that compares the count value to 2 (3-1 since you start counting at zero). A flip flop would register the output of your magnitude comparator. When that output of the comparator is true you'd get a pulse that's one clock period high. You could use the output of the comparator to reset the counter such that every three cycles you get a pulse. The duty cycle of your output signal wouldn't be 50% anymore (assuming the input signal is), but you'd have a signal that's 3 times slower (or whatever you're using as input to the comparator) than input. This can be really useful for enable logic or something where you want to do something every x cycles.

There are other "fancier" ways to divide a digital signal (or realize an "arbitrary" digital signal from an input one) that involve phase locked loops, DCMs, etc. These are frequently found on FPGAs, micros, and ASICs, but since you're asking the question it's 99.9999% certain that you wouldn't be in a position to build one of these, but rather control its parameters such that you get an output signal that meets your requirements.