¿Cómo puedo evitar las infracciones de holgura del "Ancho de pulso mínimo" en la síntesis de Quartus FPGA?

Estoy sintetizando una aplicación de juguete en DE2, pero me encontré con un problema de sincronización (a pesar de que todas las entradas y salidas están sincronizadas en mi diseño). Estas violaciones están relacionadas con el "ancho mínimo de pulso"...

¿Cómo puedo evitar esa holgura negativa durante la síntesis de FPGA?

+----------------------------------------------------------------------------------------------------------------+
; 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  
Eso se relaciona con un reloj: ¿parece que es demasiado rápido?
No, no lo creo. Se trata de la forma de Clock_27
¿Qué restricciones dio para la frecuencia y el ciclo de trabajo de CLOCK_27? ¿Cuáles son la frecuencia real y el ciclo de trabajo que espera en su aplicación?
27 Mhz está configurado para la frecuencia. Los informes parecen decir que puedo ir mucho más alto. En cuanto al ciclo de trabajo, tengo 50/50 % y puedo cambiarlo, si me lo aconsejan.

Respuestas (1)

Creo que pjc50 tiene la idea correcta; ¿Ha editado la declaración "create_clock" del archivo .sdc? tiene una palabra clave de "forma de onda" que da un tiempo de subida y bajada para la forma de onda del reloj, y lo anterior puede suceder si están demasiado cerca (por ejemplo, "{ 0.000 1.000 }"). No es por insistir en lo obvio, pero debería ser más como "{ 0.000 18.519 }" para un ciclo de trabajo del 50 % y un reloj de 27 MHz.

Esa es la solución. Gracias !