Altera_Forum
Honored Contributor
11 years agoProblem with Data Integrity & Clock between 2 FPGAs
Hi
I have a problem with data integriry & clock between 2 FPGAs. A scheme of my design is inserted at the end. My design consists of 2 Cyclone III FPGAs. Each FPGA has several clock domains, each feeding their own logic. In FPGA-2 there is a PLL which generates two 50 MHz clocks with 180-degree phase shift; i.e. clk2 = NOT clk1. The clk1 feeds FPGA-2 logic. The clk2 signal goes out from FPGA-2 using a normal IO pin and feeds FPGA-1 logic through a dedicated clock pin. FPGA-1 generates a 16-bit data using clk2 and sends it to FPGA-2. Both FPGAs use Fast Input/Output Register on this data bus pins in order to minimize t_co & t_su. FPGA-2 processes that data using clk1. I used two clocks with 180 degree phase shift and I hoped that half of clock cycle is sufficient for all delays, including t_co, t_su, PCB delay, etc. Now, using SignalTap it is evident that FPGA-1 has generated data correctly, but in FPGA-2 received data is corrupted. What could cause this problem?- sending out a clock from a normal IO with Fast Output Register option enabled? Is this a good design practice?
- Not setting IO delay constraints? Keep in mind that 50 MHz is not so high and PCB tracks are short, though with unequal lengths (less that 0.5 inch)
- Something else ??!!!