4
\$\begingroup\$

I am synthesizing a toy application on DE2, but I hit a timing problem (despite every inputs and outputs are clocked in my design). These violations are related to "minimum pulse width"...

How can I avoid such negative slack during FPGA synthesis ?

+----------------------------------------------------------------------------------------------------------------+
; Slow Model Minimum Pulse Width: 'CLOCK_27'                                                                     ;
+--------+--------------+----------------+------------------+----------+------------+----------------------------+
; Slack  ; Actual Width ; Required Width ; Type             ; Clock    ; Clock Edge ; Target                     ;
+--------+--------------+----------------+------------------+----------+------------+----------------------------+
; -0.500 ; 0.500        ; 1.000          ; High Pulse Width ; CLOCK_27 ; Rise       ; HEX0[0]~reg0  
\$\endgroup\$
4
  • 2
    \$\begingroup\$ That relates to a clock - it looks like it's too fast? \$\endgroup\$
    – pjc50
    Commented Jan 28, 2013 at 16:17
  • \$\begingroup\$ No, I don't think so. It is about the shape of Clock_27 \$\endgroup\$
    – JCLL
    Commented Jan 28, 2013 at 16:52
  • \$\begingroup\$ What constraints did you give for the frequency and duty cycle of CLOCK_27? What are the actual frequency and duty cycle you expect in your application? \$\endgroup\$
    – The Photon
    Commented Jan 28, 2013 at 16:54
  • \$\begingroup\$ 27 Mhz is set for frequency. The reports seem to say I can go much higher. Concerning duty cycle, I have 50/50 % and I can change this, if advised. \$\endgroup\$
    – JCLL
    Commented Jan 28, 2013 at 17:23

1 Answer 1

5
\$\begingroup\$

I think pjc50 has the right idea; have you edited the .sdc file "create_clock" statement? it has a "waveform" keyword that gives a rise and fall time for the clock waveforem, and the above can happen if these are too close together (e.g. "{ 0.000 1.000 }"). Not to belabor the obvious, but it should be more like "{ 0.000 18.519 }" for a 50% duty cycle and a 27 MHz clock.

\$\endgroup\$
1
  • 2
    \$\begingroup\$ That is the solution. Thx ! \$\endgroup\$
    – JCLL
    Commented Jan 29, 2013 at 8:37

Your Answer

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

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