Go Back   Velocity Reviews > Newsgroups > VHDL
User Name
Password
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

Reply

VHDL - Odd Oversampling

 
Thread Tools Search this Thread
Old 04-18-2005, 11:03 AM   #1
Default Odd Oversampling


Hi newsgroup,

maybe someone of you out there has faced some similar problem:

I want to sample 16MHz data with a 125MHz clock.

But 125/16 = 7.8125

Is there some tricky method to perform this kind of oversampling ?

The only thing I know is the Bresenham algorithm, but could that
be the solution ?

Thank you in advance.

Rgds


ALuPin
  Reply With Quote
Old 04-18-2005, 02:58 PM   #2
Mike Treseler
 
Posts: n/a
Default Re: Odd Oversampling
ALuPin wrote:

> I want to sample 16MHz data with a 125MHz clock.
> Is there some tricky method to perform this kind of oversampling ?


There's a simple one if you have both clocks.
Write a synchronous process using 125MHz
as the clock and 16MHz as an input named "rate"
Synchronize "rate" and use it to generate a
rate_rising clock enable pulse.

-- Mike Treseler


Mike Treseler
  Reply With Quote
Old 04-19-2005, 11:16 AM   #3
ALuPin
 
Posts: n/a
Default Re: Odd Oversampling
"Symon" <> wrote in message news:<>...
> "Jonathan Bromley" <> wrote in message
> news:...
> > If you don't have access to the original 16MHz clock, you can
> > either try to recover it by locking a digital PLL on to the
> > data transitions (7x oversampling is *just* about enough
> > to be able to do this easily)

>
> It's easy enough with just 4 times oversampling. XAPP224 shows how to do it
> at 400Mb+ data rates.
> Cheers, Syms.

Please correct me if I got the problem wrong.

Is it right that I could define a counter (clocked with 125MHz)
and define one counter position as the sample point which is located
in the middle position neighborhood of the bit to sample ?
The counter would be quasi started if the first transition is
recognized. This transition could be recognized with a two stage flip
flop chain in the 125Mhz
clock domain.
The problem would be that the following sample points would walk
because
125/16 is a fraction number. Is that right ?

Could that sample point walk even then if the oversample factor 125/x
would
be an integer number for example 120MHz/12MHz when 120MHz having 0.05%
tolerance
and 20MHz having 0.02% tolerance ?


If I have 7 times oversampling would I need then an input stage
with seven stages (XAPP224)? What additional clocks would I need then
?
Or are four clocks sufficient?

Thank you in advance.

Rgds
André


ALuPin
  Reply With Quote
Old 04-19-2005, 03:28 PM   #4
ALuPin
 
Posts: n/a
Default Re: Odd Oversampling
One more question:

The quasi "oversample" solution in XAPP224 does imply that the sample
clock is the same as the clock from the incoming data stream.

But in my situation I have a clock that is 7-8 times faster.

Please clarify ...

Thank you.

Rgds
André


ALuPin
  Reply With Quote
Old 04-19-2005, 04:35 PM   #5
Symon
 
Posts: n/a
Default Re: Odd Oversampling
Hi André,
I'd probably do it like this.
Have a 7 bit counter that counts modulo 125 on your 125MHz clock. Call it
'counter'. If you get a transition on the data (which you've already sampled
into the 125MHz clock domain, right?), reset it to 0. When the counter says
4 | 12 | 19 | 27 | 35 | 43 | 51 | 58 | 66 | 74| 82 | 90 | 97 | 105 | 113 |
121 sample the data. (I'd check those numbers for yourself, my arithmetic
isn't what it used to be..) Of course with half the bits there will be a
transition so you'll only be sampling at big counts if you get a lot of
consecutive equal bits. Remember if the count gets to 124 the next count
should be 0, i.e. modulo 125.
Have fun, Syms.

"ALuPin" <> wrote in message
news: om...
> Hi newsgroup,
>
> maybe someone of you out there has faced some similar problem:
>
> I want to sample 16MHz data with a 125MHz clock.
>
> But 125/16 = 7.8125
>
> Is there some tricky method to perform this kind of oversampling ?
>
> The only thing I know is the Bresenham algorithm, but could that
> be the solution ?
>
> Thank you in advance.
>
> Rgds





Symon
  Reply With Quote
Old 04-19-2005, 04:48 PM   #6
Peter Alfke
 
Posts: n/a
Default Re: Odd Oversampling
Here is a circuit that generates 16 MHz from a 125 MHz clock:
Use a Xilinx DCM with simultaneous multiply by 16 and division by 25.
That gives you 80 MHz, which might be convenient for 5x oversampling.
Peter Alfke, Xilinx Applications



Peter Alfke
  Reply With Quote
Old 04-19-2005, 06:46 PM   #7
Symon
 
Posts: n/a
Default Re: Odd Oversampling
Personally I probably wouldn't do this, depending on the situation. I find
that having as few clocks as possible is the best strategy for FPGAs. I use
enables instead. So, if Andre already has a 125MHz system clock in his
device that he's using, he should stick with it rather than generating a new
clock domain. If, however, the 125MHz is only used in this circuit, I guess
making it into 80MHz might work.
YMMV, Syms.
p.s. I think all my numbers in that previous post were 1 too big for a
proper sync design.
"Peter Alfke" <> wrote in message
news: oups.com...
> Here is a circuit that generates 16 MHz from a 125 MHz clock:
> Use a Xilinx DCM with simultaneous multiply by 16 and division by 25.
> That gives you 80 MHz, which might be convenient for 5x oversampling.
> Peter Alfke, Xilinx Applications
>





Symon
  Reply With Quote
Old 04-19-2005, 07:30 PM   #8
Mike Treseler
 
Posts: n/a
Default Re: Odd Oversampling
ALuPin wrote:

> But in my situation I have a clock that is 7-8 times faster.
> Please clarify ...


Please reread my posting.
The idea is as clear as I have time to make it.

-- Mike Treseler


Mike Treseler
  Reply With Quote
Old 04-19-2005, 07:43 PM   #9
Symon
 
Posts: n/a
Default Re: Odd Oversampling
I just reread your post. Where does the 16 MHz clock come from? Rereading
Andre's original post, he only has 16 MHz (sic) data.
Cheers, Syms.
"Mike Treseler" <> wrote in message
news:...
> ALuPin wrote:
>
> > But in my situation I have a clock that is 7-8 times faster.
> > Please clarify ...

>
> Please reread my posting.
> The idea is as clear as I have time to make it.
>
> -- Mike Treseler





Symon
  Reply With Quote
Old 04-20-2005, 08:06 AM   #10
ALuPin
 
Posts: n/a
Default Re: Odd Oversampling
The 16MHz stands for an external data stream. I have no direct clock
recovery of that data stream. The 125MHz comes from a PLL. The input
clock of the PLL
is not the source clock of the data stream.

I will think about your suggestions.

Thank you to all.

Rgds
André


ALuPin
  Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off




SEO by vBSEO 3.3.2 ©2009, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46