Clock divider

1. Odd integer division(not 50% duty cycle)

Design Moore machine (take "7" as example)

2. Odd integer division with 50% duty cycle

Conceptually, the easiest way to create an odd divider with a 50% duty cycle is to generate two
clocks at half the desired output frequency with a quadrature-phase relationship (constant 90°
phase difference between the two clocks).
You can then generate the output frequency by exclusive-ORing the two waveforms together.
Because of the constant 90° phase offset, only one transition occurs at a time on the input of the
exclusive-OR gate, effectively eliminating any glitches on the output waveform.

For Divider that counts to odds N (take "3" as example)

<1>. Create a counter that counts from 0 to N-1. 

<2>. Define two toggle flip-flops and generate their enables as follows:

tff1_en: T FF1 enable when the counter value = 0;

tff1_en: T FF1 enable when the counter value = (N+1)/2;

<3>. div1: output of  FF1 (triggered by rising edge of clk)

        div2: output of  FF1 (triggered by falling edge of clk)

3. Non-integer division (duty cycle not 50%)

 Below circuit does not generate the output clock with 50% duty cycle. You cannot get anything better than 40%-60% with a digital circuit.

<1>. Divide by 1.5

Divide by 1.5 is generated by first generating a Divide by 3 circuit

<2>. Divide by 2.5

<3>. Divide by 3 with 50% duty cycle:

<4>. Divide by 5 with 50% duty cycle:

Reference: https://www.mikrocontroller.net/attachment/177198/Clock_Dividers_Made_Easy.pdf

猜你喜欢

转载自blog.csdn.net/weixin_40038116/article/details/81256547