Electronic – IO clock pin far from design, reduce propagation delay

clockiotiming-analysis

My design is deployed around a particular tile in the FPGA, mainly because of a gigabit transceiver that is located there.

However one of the clocks needed for the gigabit transceiver has to come from a pin that is on the far end of the die.The propagation delay of that clock causes timing errors.

What would be a way to reduce the propagation delay of a clock in such an arrangement?

Best Answer

Two key concepts:

  • FPGAs in general (and Xilinx FPGAs in particular) have clock distribution networks that are designed to deliver clocks with low skew across the entire chip.
  • A PLL (or DCM) can be used as a zero-delay clock buffer.

Combining these concepts gets your clock across the chip with essentially zero delay.

schematic

simulate this circuit – Schematic created using CircuitLab

The PLL adds enough delay so that the total delay through it and the clock distribution network is exactly one clock period. Since that means there is essentially zero delay between the PLL inputs, and there is zero delay among the loads of the clock tree, the transceiver gets a clock that has essentially zero delay from the input pad on the other side of the chip.