I am trying to interface an IC with an FPGA. Both the IC & FPGA run at 66 MHz with no clock skew between them and the propagation delay of the data lines is negligible, since the length of the PCB traces that connect the 2 chips is very short.

The IC has a setup time 1 ns and hold time 4.8 ns, while the sampling of the data is performed at the rising edge of the clock.

According to the I/O Timing Analysis report of the FPGA software, which is created after the Place & Route so I assume is the absolute final report, I have a Clock to Output delay of around 10 ns.

If the FPGA outputs data at the rising edge with the system clock period being 15 ns and the clock-to-output delay 10 ns, new data have arrive 3 ns before the required setup time so I respect the setup time, which is 1 ns. At the same time, in the next cycle, since the clock to output is 10 ns, the new data will become available after 10 ns, so I have respected the hold time as well, which is 4.8 ns.

Is my reasoning correct?

Thanks in advance.


FPGA is MachXO2 by Lattice (TQFP-144) while the IC in question is FT601 by FTDI, which is USB 3.0 to FIFO Bridge. Since clock-to-out is 10 ns, and the next output will become available when the rising edge comes, I assume to have a hold time of 10 ns (5 ns before the rising edge arrives plus 10 ns after the rising edge, which is the clock-to-output delay, totaling 15 ns).

  • \$\begingroup\$ You'll need to provide a bit more information: - What kind of IC are you driving with which FPGA? What's the general function of the circuit? - How long does the FPGA hold the output signal you're trying to send to/sample with the IC? A sketch of your planned timing diagram could be helpful too. \$\endgroup\$ – georgjz Mar 21 at 0:31
  • \$\begingroup\$ @georgjz Added the requested information. \$\endgroup\$ – Manos Mar 21 at 0:48
  • \$\begingroup\$ Can you give a more general description of your circuit and maybe a schematic? Your basic reasoning about timing could be right, but it's hard to tell without seeing all the other control signals. If you could provide a timing diagram, or better a print out of a scope/logic probe of your signals, that'd be helpful. \$\endgroup\$ – georgjz Mar 21 at 7:47
  • \$\begingroup\$ 10ns Tco seems a bit long for a MACHXO2 chip. Is the clock generated externally? Are you using the internal PLL? In general it is marginal to depend on a maximum Tco to meet a hold time, since the typical delay can be much less than the maximum. In your case, since the required hold time is less than half of the max Tco, you are probably OK. You can get an idea of how close the timing is by looking at the actual Tco with a scope. \$\endgroup\$ – crj11 Mar 21 at 12:38
  • \$\begingroup\$ @georgjz I don't have the actual circuit yet, it is fabricated as we speak. I am currently writing the controller in advance so I have it ready when it arrives. \$\endgroup\$ – Manos Mar 21 at 17:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.