¿Qué es una restricción de tiempo de ruta falsa?

10

En el mundo FPGA, ¿cuáles son exactamente las restricciones de ruta falsa para un compilador HDL? ¿Por qué son útiles?

Randomblue
fuente
1
Este es un concepto digital, no solo un concepto FPGA.
W5VO

Respuestas:

14

Las rutas falsas son rutas de tiempo que nunca se ejercerán realmente en el diseño final. Suponga que está diseñando un contador de 4 bits y resulta que hay una ruta de retardo muy lenta cuando se incrementa de 12 a 13. Si su diseño siempre restablece el contador cuando el recuento sea igual a 9, esa ruta lenta nunca se verá en el diseño actual Usted etiqueta la ruta lenta como una ruta falsa para que el compilador no pase tiempo, o agregue ninguna lógica adicional, en un esfuerzo por hacer que la ruta falsa se ejecute más rápido.

Joe Hass
fuente
55
Huh, y pensé que el camino falso tenía que ver con el uso de Atmels en lugar de PIC o algo así.
Olin Lathrop
Creo que un tipo de ruta falsa más significativo es una señal que cambia en el borde de un reloj y se muestrea en el borde de un reloj diferente, pero la señal nunca cambiará en ningún momento cerca del momento en que cambia el segundo reloj, o si no cambia nada le importará su valor. Las herramientas de análisis de temporización probablemente fallarían a menos que se agregue un sincronizador doble controlado por el segundo reloj, pero agregar un sincronizador de este tipo podría romper por completo el diseño. Por ejemplo, el primer reloj podría funcionar a 1MHz y el segundo a 32KHz, pero ...
supercat
... el dispositivo que genera la señal podría cambiarlo tres ciclos de 1MHz después de ver un flanco ascendente en el reloj de 32KHz. En consecuencia, se puede garantizar que la señal bloqueada por el reloj de 32 kHz cumple con los requisitos de muestreo / retención del bloqueo de 32 kHz sin ninguna sincronización adicional. Si la lógica en el lado de 1MHz generó sus datos en función de lo que estaba haciendo el lado de 32KHz, dicho diseño podría permitir que la información generada en un ciclo en el lado de 32Khz se filtre en ambos sentidos en el siguiente ciclo. Agregar doble sincronización al lado de 32Khz rompería eso.
supercat
8

Una ruta falsa es una ruta que existe en el diseño pero que no desempeña un papel en la operación, por lo que no es necesario incluirla en el análisis de temporización.
Podría haber varias razones para que este sea el caso, pero dado que la herramienta de análisis de temporización generalmente no sabe (aunque hay algunas herramientas que pueden detectarlas) qué rutas se pueden usar o no, debe decirlo. Es similar a una ruta de varios ciclos, donde puede decirle que una determinada ruta puede usar más de un ciclo para completar.

Un ejemplo (de una ruta falsa) es un registro que podría escribirse una vez al encender, pero luego permanece en el mismo estado.

Oli Glaser
fuente
1

Simplemente, una ruta falsa es una ruta lógica que desea excluir de la verificación para ver si cumple con el tiempo durante el análisis de tiempo. Hay dos razones para excluir rutas, primero porque la ruta falsa hará que las herramientas trabajen más duro para cumplir con el tiempo de esa señal, lo que a su vez afectará las rutas de señal legítimas, posiblemente causando errores de tiempo adicionales y porque hará que la verificación de tiempo informe fallas posiblemente distrayendo al diseñador de errores legítimos de sincronización.

Las rutas falsas son causadas por rutas lógicas entre relojes asíncronos no relacionados o relojes de la misma frecuencia pero con una relación de fase desconocida o una ruta que nunca se activaría durante la operación normal del circuito. Decirle a la herramienta que ignore una ruta no hace que el tiempo funcione solo que el tiempo no está marcado. Depende del diseñador asegurarse manualmente de que se use la lógica de sincronización correcta para estas rutas de señal ignoradas.

Ray Haynes
fuente