Encuentro: infracción de tiempo de espera en clkgate

4

Estoy tratando de deshacerme de una violación de tiempo clkgate. Tengo dos de ellos y esas son violaciones muy grandes, como puede ver en este informe:

+--------------------+---------+---------+---------+---------+---------+---------+
|     Hold mode      |   all   | reg2reg | in2reg  | reg2out | in2out  | clkgate |
+--------------------+---------+---------+---------+---------+---------+---------+
|           WNS (ns):|-157.134 |  0.001  |  0.751  |  0.013  |   N/A   |-157.134 |
|           TNS (ns):|-158.993 |  0.000  |  0.000  |  0.000  |   N/A   |-158.993 |
|    Violating Paths:|    2    |    0    |    0    |    0    |   N/A   |    2    |
|          All Paths:|  2951   |  2792   |   98    |   18    |   N/A   |   44    |
+--------------------+---------+---------+---------+---------+---------+---------+

Esas violaciones se deben a la sincronización del reloj si entendí bien la documentación pero no hay más información sobre la resolución de este tipo de violación. Las rutas violadas están relacionadas con una ruta de reloj entre un JTAG y una memoria.

Intenté usar la opción -clkGateAware para colocar las celdas de manera diferente, pero no sirvió de nada. Ya intenté compilar varias veces (10 veces seguidas en el bloque de optimización de retención) pero no resolvió el problema ...

¿Cuál puede ser la causa de una violación tan grande como esta? ¿Hay una opción simple que pueda usar para resolver este problema? ¿Alguien puede sugerir algo inteligente para deshacerse de este tipo de clkgate?

EDITAR: Para ser más claros: mi proyecto se compone de un ARM M0, dos SRAM, un HW Accelerator y un SPI. También hay un esclavo JTAG para programar la memoria con el código para el M0.

Todos esos periféricos están conectados al bus AHB y funcionan bien. La síntesis está bien sin ninguna ruta de violación. Sin embargo, cuando trato de ubicar y encaminar el diseño, la sincronización del reloj se produce para reducir el consumo de energía. Esto también agrega caminos de violación (dos). Así que mi pregunta está más relacionada con el Encuentro y los comandos de optimización: ¿Hay algo que pueda hacer para evitar esta ruta violada?

    
pregunta Gp2mv3

1 respuesta

1

La solución simple es reducir la velocidad del reloj. Una solución más compleja es usar tipos de puertas que no violen el tiempo de configuración, cámbielos si es posible. Moverlos físicamente más cerca en ruta y lugar también podría ser una opción.

    
respondido por el Robert Hana

Lea otras preguntas en las etiquetas