FPGA Central - World's 1st FPGA / CPLD Portal

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > FPGA

FPGA comp.arch.fpga newsgroup (usenet)

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 09-22-2004, 10:14 AM
Leroy Tanner
Guest
 
Posts: n/a
Default How To Synchronize FPGAs

Hello newsreaders,

For a while I have been confronted with the following task which I find
quite challenging but unfortuantely didn't manage to solve it, yet.
What I want to do is to use 2-4 FPGAs (Xilinx Virtex 2 Pro) together on one
printed circuit board (PCB). They are used to process a large amount of
incoming serial data (data rates of several GHz's). My idea is to handle
that data parallel by the 2-4 FPGAs. But now there arises the problem how to
adequately split the data and how to synchronize the FPGAs among one
another, in particular?
Is it possible or first of all a realistic idea to synchronize multiple
FPGAs in the GHz range? How can this be done without much protocoll
overhead? I would like to do it without applying an extra transfer protocoll
among the FPGAs just for that purpose! Up to this date I didn't find a
proper solution, yet.
Maybe someone can give me a hint? Any ideas how to solve that problem?

Regards, Leroy Tanner


Reply With Quote
  #2 (permalink)  
Old 09-22-2004, 02:51 PM
Don Golding
Guest
 
Posts: n/a
Default Re: How To Synchronize FPGAs

Maybe I am missing something, but wouldn't you just drive all the chips with
one onboard clock then in your code trigger the processes on the rising
edge?

Don

"Leroy Tanner" <[email protected]> wrote in message
news:[email protected]
> Hello newsreaders,
>
> For a while I have been confronted with the following task which I find
> quite challenging but unfortuantely didn't manage to solve it, yet.
> What I want to do is to use 2-4 FPGAs (Xilinx Virtex 2 Pro) together on
> one
> printed circuit board (PCB). They are used to process a large amount of
> incoming serial data (data rates of several GHz's). My idea is to handle
> that data parallel by the 2-4 FPGAs. But now there arises the problem how
> to
> adequately split the data and how to synchronize the FPGAs among one
> another, in particular?
> Is it possible or first of all a realistic idea to synchronize multiple
> FPGAs in the GHz range? How can this be done without much protocoll
> overhead? I would like to do it without applying an extra transfer
> protocoll
> among the FPGAs just for that purpose! Up to this date I didn't find a
> proper solution, yet.
> Maybe someone can give me a hint? Any ideas how to solve that problem?
>
> Regards, Leroy Tanner
>
>



Reply With Quote
  #3 (permalink)  
Old 09-22-2004, 03:24 PM
Josh Model
Guest
 
Posts: n/a
Default Re: How To Synchronize FPGAs

Post Below...

"Don Golding" <[email protected]> wrote in message
news:[email protected] om...
> Maybe I am missing something, but wouldn't you just drive all the chips

with
> one onboard clock then in your code trigger the processes on the rising
> edge?
>
> Don
>
> "Leroy Tanner" <[email protected]> wrote in message
> news:[email protected]
> > Hello newsreaders,
> >
> > For a while I have been confronted with the following task which I find
> > quite challenging but unfortuantely didn't manage to solve it, yet.
> > What I want to do is to use 2-4 FPGAs (Xilinx Virtex 2 Pro) together on
> > one
> > printed circuit board (PCB). They are used to process a large amount of
> > incoming serial data (data rates of several GHz's). My idea is to handle
> > that data parallel by the 2-4 FPGAs. But now there arises the problem

how
> > to
> > adequately split the data and how to synchronize the FPGAs among one
> > another, in particular?
> > Is it possible or first of all a realistic idea to synchronize multiple
> > FPGAs in the GHz range? How can this be done without much protocoll
> > overhead? I would like to do it without applying an extra transfer
> > protocoll
> > among the FPGAs just for that purpose! Up to this date I didn't find a
> > proper solution, yet.
> > Maybe someone can give me a hint? Any ideas how to solve that problem?
> >
> > Regards, Leroy Tanner
> >
> >

>
>

Start Post....

It gets tricky when you have multiple FPGAs clocked at hundred(s) of MHz. I
don't have any direct expeience there, but I think looking for appnotes on
vendor sites that address "Board Level De-skew" (using FPGA clocking
resources to account for clock distribution headaches) and specifically for
Xilinx, "Channel bonding" (using multiple RocketIO transceivers to receive
data in parallel). The RocketIO transceivers are difficult beasts, at
least if you're not using a standard protocol. I'm not sure if the channel
bonding can span multiple V2pro devices, but I know it can span multiple
transceivers.

Not sure on your budget, or application requirements, but it may be
worthwhile going to a single, larger part that contains the resources you
need. It at least partially removes the headache of high-speed PCB
design/layout.


--Josh Model



Reply With Quote
  #4 (permalink)  
Old 09-22-2004, 05:36 PM
Symon
Guest
 
Posts: n/a
Default Re: How To Synchronize FPGAs

....or at least take all the high speed serial stuff into one FPGA and
distribute it from that one to the others at a slower parallel rate. Also,
it looks like V4 could take care of this with its ChipSync thingy for source
synchronous application.
Cheers, Syms.
"Josh Model" <[email protected]> wrote in message news:iWf4d.45>
> Not sure on your budget, or application requirements, but it may be
> worthwhile going to a single, larger part that contains the resources you
> need. It at least partially removes the headache of high-speed PCB
> design/layout.
>
>
> --Josh Model




Reply With Quote
  #5 (permalink)  
Old 09-22-2004, 09:46 PM
rickman
Guest
 
Posts: n/a
Default Re: How To Synchronize FPGAs

Yes, you *are* missing something...

Don Golding wrote:
>
> Maybe I am missing something, but wouldn't you just drive all the chips with
> one onboard clock then in your code trigger the processes on the rising
> edge?
>
> Don
>
> "Leroy Tanner" <[email protected]> wrote in message
> news:[email protected]
> > Hello newsreaders,
> >
> > For a while I have been confronted with the following task which I find
> > quite challenging but unfortuantely didn't manage to solve it, yet.
> > What I want to do is to use 2-4 FPGAs (Xilinx Virtex 2 Pro) together on
> > one
> > printed circuit board (PCB). They are used to process a large amount of
> > incoming serial data (data rates of several GHz's). My idea is to handle
> > that data parallel by the 2-4 FPGAs. But now there arises the problem how
> > to
> > adequately split the data and how to synchronize the FPGAs among one
> > another, in particular?
> > Is it possible or first of all a realistic idea to synchronize multiple
> > FPGAs in the GHz range? How can this be done without much protocoll
> > overhead? I would like to do it without applying an extra transfer
> > protocoll
> > among the FPGAs just for that purpose! Up to this date I didn't find a
> > proper solution, yet.
> > Maybe someone can give me a hint? Any ideas how to solve that problem?
> >
> > Regards, Leroy Tanner
> >
> >


--

Rick "rickman" Collins

[email protected]
Ignore the reply address. To email me use the above address with the XY
removed.

Arius - A Signal Processing Solutions Company
Specializing in DSP and FPGA design URL http://www.arius.com
4 King Ave 301-682-7772 Voice
Frederick, MD 21701-3110 301-682-7666 FAX
Reply With Quote
  #6 (permalink)  
Old 09-22-2004, 10:02 PM
glen herrmannsfeldt
Guest
 
Posts: n/a
Default Re: How To Synchronize FPGAs



Leroy Tanner wrote:

> But now there arises the problem how to
> adequately split the data and how to synchronize the FPGAs among one
> another, in particular?


> Is it possible or first of all a realistic idea to synchronize multiple
> FPGAs in the GHz range? How can this be done without much protocoll
> overhead?


I believe most important is to first latch the signals in the IOB
to minimize clock skew problems. Otherwise, an external shift
register to generate bit parallel signals for input to the FPGA.

-- glen

Reply With Quote
  #7 (permalink)  
Old 09-24-2004, 01:32 PM
Leroy Tanner
Guest
 
Posts: n/a
Default Re: How To Synchronize FPGAs


"Symon" <[email protected]>:
> ...or at least take all the high speed serial stuff into one FPGA and
> distribute it from that one to the others at a slower parallel rate.


ok, I agree on that and it might be a good approach to minimize skewing in
the first section. but nevertheless I must synchronize the other FPGAs to
each other, not at a rate of several GHz but say at ca. 300 MHz. In my
opinion a central clock isn't an appropriate solution!?


Reply With Quote
  #8 (permalink)  
Old 09-24-2004, 04:18 PM
Josh Model
Guest
 
Posts: n/a
Default Re: How To Synchronize FPGAs

Think about what a central clock entails from purely a routing perspective.
Let's assume you're an SI wizard, and have no issues there.

300 MHz would be ~ 3.3 ns per clock cycle. If I remember my rule of thumb,
you've got about 6 inches per 1 ns for the speed of an electrical signal in
FR-4 material. So the worst case match between all your data lines and all
clock lines for all FPGA's will be the skew that eats into your timing
budget.

Just as an example (I'm not really a layout person, so it's my posterior
speaking), matching all lines to 4 FPGAs +/- 3 inches seems relatively
tricky, but not completely unreasonable. So now ~1/3 of your entire clock
cycle is wasted (more, if you were assuming DDR) before you even get to the
FPGA fabric. it makes laying out your design that much more tricky.

Now, in the slightly more real world you've got to throw in the jitter
present on a 300 MHz clock, impedance mismatches causing reflections,
crosstalk on your board with all that data zipping around (because GHz and
even 300 MHz lines are really antennae) and you've got a lot to deal with.

Anyhow, synchronzing dataflow at those speeds on a PCB is not nearly as
simple as just plopping down a clock. It's a hard design, but you get to
choose where to place the burden. If you've got really good PCB people,
maybe they can match and terminate the really well. If you've got the DCM/
DLL (or their altera, or "insert brand" counterpart) hardware to de-skew the
board clock, you could let the FPGA do it (though I don't recall at what
frequencies the DCM's top out). If you've got neither, you might want to
consider going to a single chip serial interface, because you're going to
get into trouble otherwise.

--Josh


"Leroy Tanner" <[email protected]> wrote in message
news:[email protected]
>
> "Symon" <[email protected]>:
> > ...or at least take all the high speed serial stuff into one FPGA and
> > distribute it from that one to the others at a slower parallel rate.

>
> ok, I agree on that and it might be a good approach to minimize skewing in
> the first section. but nevertheless I must synchronize the other FPGAs to
> each other, not at a rate of several GHz but say at ca. 300 MHz. In my
> opinion a central clock isn't an appropriate solution!?
>
>



Reply With Quote
  #9 (permalink)  
Old 09-24-2004, 06:03 PM
Symon
Guest
 
Posts: n/a
Default Re: How To Synchronize FPGAs

Hi Leroy,
Say you've got 4 FPGAs A, B, C & D. Each gets fed the 300MHz clock, so on
the fabric of each FPGA is CLK_A, CLK_B etc. When you send data from (say)
FPGA B to FPGA D, send a clock with the data, generated by FPGA B from its
internal CLK_B, called (say) CLK_B_TO_D. Use this source synchronous clock
with a DCM in FPGA D to get the data into a BRAM FIFO inside FPGA D. Get the
data out from this FIFO into the fabric of FPGA D using CLK_D. Repeat for
all the other paths. Any good?
Cheers, Syms.

"Leroy Tanner" <[email protected]> wrote in message
news:[email protected]
>
> "Symon" <[email protected]>:
> > ...or at least take all the high speed serial stuff into one FPGA and
> > distribute it from that one to the others at a slower parallel rate.

>
> ok, I agree on that and it might be a good approach to minimize skewing in
> the first section. but nevertheless I must synchronize the other FPGAs to
> each other, not at a rate of several GHz but say at ca. 300 MHz. In my
> opinion a central clock isn't an appropriate solution!?
>
>



Reply With Quote
  #10 (permalink)  
Old 09-25-2004, 12:19 PM
dave
Guest
 
Posts: n/a
Default Re: How To Synchronize FPGAs

On Wed, 22 Sep 2004 11:14:39 +0200, Leroy Tanner wrote:

> For a while I have been confronted with the following task which I find
> quite challenging but unfortuantely didn't manage to solve it, yet.
> What I want to do is to use 2-4 FPGAs (Xilinx Virtex 2 Pro) together on one
> printed circuit board (PCB). They are used to process a large amount of
> incoming serial data (data rates of several GHz's). My idea is to handle
> that data parallel by the 2-4 FPGAs. But now there arises the problem how to
> adequately split the data and how to synchronize the FPGAs among one
> another, in particular?


There are two ways to approach this problem: (1) have each FPGA perform a
part of the process on the entire data stream or (2) have each FPGA
perform the entire process on part of the data stream. We once
implemented (2) for a bandwidth expander where each chip did the complete
process (one clock cycle Huffman decoding, translation of the code to a
value, then arithmetic processing) for a portion of the incoming data
stream. Each chip was provided a chunk of the incoming data (e.g., in a
two-chip system, chip one processed chunks 1,3,5,... of the data and
chip two was processed chunks 2,4,6,... of the data). We actually used two
on the board because of I/O bandwidth limitations, but the chip was
designed to allow for 1,2,4,or 8 chip operation.


-=Dave=-


Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

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

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


Similar Threads
Thread Thread Starter Forum Replies Last Post
[ANN] DSP for FPGAs 4-Day Course Ken FPGA 0 05-04-2004 10:54 AM
Why not DDR in FPGAs? itsme FPGA 4 07-05-2003 03:29 PM


All times are GMT +1. The time now is 10:59 AM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved