From: Jason Thibodeau on
I have a 5 inverter ring oscillator, with its output being fed to a
counter. This is run in a continuous process, that is to say it is run
at 'gate speed', it is not clocked. I have an enable signal to activate
the oscillator, which currently runs for 100ms. I can then clear the
counter, and run it again, for 100ms.

When I run this on my spartan 3e, I get different values for each and
every run. I would assume these values would stay the same. What
explanation is there for their differences? Power fluctuations?

Any insight would be great. This is just an experiment, so no practical use.

Thanks.
--
Jason Thibodeau
From: whygee on
Jason Thibodeau wrote:
> I have a 5 inverter ring oscillator, with its output being fed to a
> counter. This is run in a continuous process, that is to say it is run
> at 'gate speed', it is not clocked. I have an enable signal to activate
> the oscillator, which currently runs for 100ms. I can then clear the
> counter, and run it again, for 100ms.
>
> When I run this on my spartan 3e, I get different values for each and
> every run. I would assume these values would stay the same. What
> explanation is there for their differences? Power fluctuations?
>
> Any insight would be great. This is just an experiment, so no practical
> use.

Ring oscillators are VERY sensitive devices.
The same old trio applies : power variations,
process variations, temperature.
I would expect measurements to vary by 50% or more...

I'm even sure that the frequency will change
by putting your fingers on the chip's surface,
due to capacitive effects.

Now, i'll let the specialists speak^Wwrite ;-)

> Thanks.
yg

--
http://ygdes.com / http://yasep.org
From: glen herrmannsfeldt on
Jason Thibodeau <jason.p.thibodeau(a)gmail.com> wrote:

> I have a 5 inverter ring oscillator, with its output being fed to a
> counter. This is run in a continuous process, that is to say it is run
> at 'gate speed', it is not clocked. I have an enable signal to activate
> the oscillator, which currently runs for 100ms. I can then clear the
> counter, and run it again, for 100ms.

> When I run this on my spartan 3e, I get different values for each and
> every run. I would assume these values would stay the same. What
> explanation is there for their differences? Power fluctuations?

How big are the counts? If it runs at a few hundred megahertz,
which might be possible, your counts are on the orders of tens
of millions. If it changes by 1 part in 1e7 then the count will
be different. Do this a few hundred times and graph the distribution.
Also compute mean and standard deviation.

-- glen
From: John_H on
On Mar 24, 9:41 pm, Jason Thibodeau <jason.p.thibod...(a)gmail.com>
wrote:
> I have a 5 inverter ring oscillator, with its output being fed to a
> counter. This is run in a continuous process, that is to say it is run
> at 'gate speed', it is not clocked. I have an enable signal to activate
> the oscillator, which currently runs for 100ms. I can then clear the
> counter, and run it again, for 100ms.
>
> When I run this on my spartan 3e, I get different values for each and
> every run. I would assume these values would stay the same. What
> explanation is there for their differences? Power fluctuations?
>
> Any insight would be great. This is just an experiment, so no practical use.
>
> Thanks.
> --
> Jason Thibodeau

I'm surprised you're getting such a wide variation as long as your
enable guarantees one and only one edge is moving through the ring.
Start with a double-check there. It might take some time for a second
edge to go away.

How do you have a counter that's not clocked? I used a 3-bit Gray
count on the first stage of my 8-LUT ring, just in case, and my delays
were pretty stable. The values I got from the single-CLB ring were
around 450ps average (having spent some time to make sure the 8 inter-
LUT routing delays were lowest overall). The variation was
surprisingly only about 10% with freeze spray (and heat gun?); I
expected a bit more. Interesting item: the delay measurement could
turn the FPGA into a switch sensor: pressing the eraser tip of a
pencil against the top of the package produced a noticeable change in
the delay that came back when released, a change much larger than the
natural variation.

I used a Spartan3E starter kit and updated the LCD at probably 100ms
intervals (it's been a while) to deliver my delay values visually.
From: -jg on
On Mar 25, 1:41 pm, Jason Thibodeau <jason.p.thibod...(a)gmail.com>
wrote:
>
> When I run this on my spartan 3e, I get different values for each and
> every run. I would assume these values would stay the same. What
> explanation is there for their differences? Power fluctuations?

?? Err ?
'stay the same' - did you really mean what you wrote ?
Of course they will change.
Even an Atomic clock varies...


Smarter would be to post numbers on how much they changed, as
'different values' has no useful information.

A ring oscillator, is a Thermometer, and a Voltmeter,
and a process-quantifier - all coming out in one number.

-jg



 |  Next  |  Last
Pages: 1 2 3 4
Prev: EMC discussion
Next: USB 3.0 implementation on FPGA