Electronic – Running VHDL process off an input clock higher than the FPGA clock

clockfpga

I have the following dev FPGA board:

Altera Cyclone II EP2C5T144 FPGA Dev Board

This FPGA has a 50mhz clock. However I want to interface with an external FTDI device that runs at 60mhz. I am driving my VHDL process off the 60mhz clock as an input.

My question is can this safely work? I'm thinking its not safe because the FPGA flip flops are running at 50mhz but its being "forced" to run at 60mhz since the process is driven off this input clock pin?

Should I be removing the FPGA oscillator and connecting it to the existing FTDI oscillator? I'm still very new to this so sorry if this is really silly question :).

Best Answer

Most FPGAs have multiple clock capable pins, and you decide which one drives which registers (usually with some constraints, see your parts reference manual).

Just because you have a clock hooked to one of the clock capable pins does not mean you have to use it....

I would hook your 60MHz to a clock capable IO pin and then run all your logic off that clock and just ignore the 50Mhz one. Note that typically NOT all IO pins are clock capable but there are usually a few per IO bank that are (In various ways, again see the device manual), fpga clocking is usually slightly separate routing wise from the logic itself.

The reason to ignore the 50Mhz one is that due to something called metastability running signals between logic working at different clock frequencies is something of an advanced subject, not usually hard, just not something you need to be dealing with if clocking is still a mystery.

60MHz is basically DC in FPGA clock terms, but you do still need to define your clocks and constrain timing for the new rate. Unless you have a STUPID amount of combinatorial stuff between the registers, 60MHz is unlikely to cause you serious problems closing timing.