4
\$\begingroup\$

I have basic knowledge in static timing analysis. I understand concepts about setup and hold time of bistables and that failure to meet these two timing constraints can lead to metastability where output of such bistables can become unpredictable (as transients have not died).

What are different techniques to address issues of setup and hold time violations for FPGA's and ASIC designs ?

\$\endgroup\$
1
  • \$\begingroup\$ Are you asking about ways to detect/identify them or was to fix them or both? \$\endgroup\$
    – FarhadA
    Jun 21, 2013 at 8:32

2 Answers 2

7
\$\begingroup\$

This answer is more geared to an ASIC than an FPGA, but some will still apply.

To address setup time violations, you can:

  • Use larger/stronger cells to drive paths with high capacitance, which can reduce the time needed to transition on sluggish net.
  • Adjust the skew of the clock to the start or endpoint of the path which is violating. (time borrowing).
  • Move gates around to make the total distance between different cells in the violating path smaller (less capacitance to drive = faster transitions)
  • Insert retiming flops on the path, if the design will allow for it (try to do an operation in two clock cycles instead of one)
  • Reduce the overall clock frequency.

For hold time violations:

  • Skew the clock to the start/endpoint (reverse of how to fix setup) to make the endpoint clock arrive earlier.
  • Insert cells along the path to increase the propogation time (insert chains of buffers)
  • Reduce the drive strength of cells on the path to make the transition time increase.
\$\endgroup\$
3
  • \$\begingroup\$ Retiming is moving existing flops. Are you referring to pipelining the combinational path before the Flop with setup violation ? \$\endgroup\$
    – nurabha
    Jun 20, 2013 at 23:07
  • \$\begingroup\$ Yes, that's what I'm referring to. \$\endgroup\$
    – Tim
    Jun 20, 2013 at 23:17
  • \$\begingroup\$ In this which all we can apply for FPGA ? \$\endgroup\$ Aug 30, 2016 at 11:48
0
\$\begingroup\$

FPGA and ASIC tools that can calculate the various timing paths over Process/Temp/Voltage and identify and flag any timing violations. Additionally, these same tools will factor in timing constraints during Place & Route, to help assure that the constraints will be met.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.