Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20704 Discussions

Synchronization between multiple FPGAs (between boards)

kdntnk
Beginner
1,521 Views

Hello. everyone.

 

I am considering development with Cyclone IV or Cyclon V.

 

Can you tell me the best way to synchronize between multiple FPGAs (between boards)?

 

specification

· The external clock is 100 MHz or 250 MHz.

· The internal operating frequency is 1 GHz or 500 MHz.

 

Thanks for your help.

 

Best regards

0 Kudos
5 Replies
CheePin_C_Intel
Employee
498 Views
Hi, As I understand it, you have some inquiries related to interfacing between CIV and CV devices. Please allow me some time to look into your issue. I shall come back to you with findings. Thank you for your patience. Best regards, Chee Pin
0 Kudos
ak6dn
Valued Contributor III
498 Views

Best way is don't. Use source/embedded clock interfaces with receive FIFOs. Then you can pass data/commands between devices without high speed synchronization issues.

0 Kudos
kdntnk
Beginner
498 Views

Thank you for your reply.

 

I would like to operate multiple FPGAs with synchronized clocks.

 

I would like to know a better way.

 

Best regards,

0 Kudos
ak6dn
Valued Contributor III
498 Views

Well, it certainly can be done. You have to provide a central reference clock source, and route that with matched trace length to each of your FPGA(s). If they are on the same board this is much easier to control than if they are on different boards, but it can be done. This reference clock should be lower in frequency (ie, probably in the 25 to 100MHz range) for ease of distribution.

 

On chip you can use the PLL capability of the FPGA and generate a higher frequency internal clock (eg, 200-400MHz) for use. Using the external reference you can phase lock the internal PLL generated clocks to the external reference clock at each FPGA, so you get internal clocks that are phase synchronous across devices.

 

At this point there will be an internal clock in each FPGA that is frequency matched across devices, and phase matched to some tolerance, that will depend on the external trace length matching tolerances, any external buffer delays, and the timing differences across different FPGA devices. What this will mean is that, within devices, you can determine that positive going clock edges will be coincident within some tolerance, like +/-NNNns.

 

It is doubtful you would be able to pass data synchronized to the clock between devices, given the skew tolerance buildup.

 

Personally I would not go this way as getting it to work reliably all the time is going to be a significant issue.

0 Kudos
kdntnk
Beginner
498 Views

Thank you for your reply.

 

It was helpful.

 

Best regards,

0 Kudos
Reply