[time-nuts] Harmonics suppression in ring oscillators

Florian Teply usenet at teply.info
Tue Mar 17 17:04:49 EDT 2015


funnily I stumbled across that very question just a few weeks ago while
doing my very first ring oscillator designs myself.

The explanation I have come to is essentially the following: In
principle, you're right, a ring oscillator CAN oscillate at a number of
frequencies. Given the way the ring oscillator works, the list of
possible fundamental frequencies (not considering the spectrum due to
the rectangular waveform with some duty cycle) is essentially given by
(1+2k)/(2*n*td), with n being the number of stages (odd integer), td
being the time delay of one stage (assuming all stages are identical),
and k being any integer between 0 and (n-1)/2.

So, an 11 stage ring oscillator could in principle support
fundamental frequencies of 1/(22*td), 3/(22*td), 5/(22*td), 7/(22*td),
9/(22*td) and finally 11/(22*td). Which mode actually is triggered
depends mainly on circumstances that are pretty hard to tell a priori:
How is power applied, what is the mismatch between stages. In the end
it boils down to noise triggering one mode or another upon powerup,
with some modes being more likely than others due to minute
imperfections in manufacturing.

The trick here is to have one element in the chain that can be used to
create a steady internal state from which oscillation can be started
predictably. In the 11 stage ring oscillator mentioned above, that
might be a NAND or NOR gate together with 10 inverters. With one input
of that NAND or NOR being tied to the output of the chain and the other
one being tied to a reset input, which can be used to enable or disable
oscillation. A steady state would be reached within 11 gate delays in
the sample oscillator mentioned above after DISABLING oscillation. One
oscillation is reenabled, it will ONLY oscillate at 1/(22*td).

So, as said, the trick is to have the ring oscillator start oscillation
from a predetermined state.

Does that answer your question? Most likely it answered one and turned
up three more ;-)

Best regards,

Am Tue, 17 Mar 2015 11:28:59 +0100
schrieb Attila Kinali <attila at kinali.ch>:

> Hi,
> I stumbled over something that does not seem to be properly documented
> anywhere. A ring oscillator (like any delay line oscillator) has an
> infinte number of poles (on the complex plane), which are on a
> straight line (disregarding the effect that the transistor acts like
> a first order low pass filter, as f_t is usually a lot higher than
> the oscillation frequency). This means that a ring oscillator will
> always excite more than just one mode and oscillate on multiple
> frequencies. 
> While for (optical/electrical) delay line oscillators, the way to go
> is to add a frequency selective element, this is not done for ring
> oscillators.
> So, how do people keep ring oscillators from oscillating at higher
> modes?
> So far, my google skills have failed me to turn up any answer.
> 			Attila Kinali

More information about the time-nuts mailing list