PCIe pld_clk conflicting coreclkout statements
I'm using a Cyclone V GT with PCIe ST core. The app works fine when I drive pld_clk with coreclockout, but fails when I drive pld_clk with a 150 MHz external clock. I used 150 MHz instead of 125 MHz since it says you must use a 0 ppm accuracy clock at 125 MHz and I don't know how to do that!
According to "Cyclone V Streaming Interface for PCIe Solutions User Guide", I should be able to do this (Table 4-5):
But according to "Cyclone V Hard IP for PCI Express User Guide":
This seems contradictory. And the latter seems wrong since if you must drive it with coreclkout, why did they not just do that internally?
So can I drive pld_clk from a PLL? This would save alot of clock domain crossing inside my App.
Hi @corestar,
Thanks for sharing your objective.
My apologies for the delayed response, I took some time to gather the information.
In this case, it is suggested that you drive the pld_clk with coreclkout_hip, as using a single clock simplifies timing.
In the situation that you wish to drive the pld_clk with an other clock source, the following clock frequencies of the clock source could be used:
1.When coreclkout_hip is 62.5 MHz:
Try to use 125 MHz, or 250 MHz.
2. When coreclkout_hip is 125 MHz:
Try to use 250 MHz.
Please note that not all frequencies of other clock source within the specified range can be used to drive the pld_clk.
Thanks.
Best Regards,
VenTingT