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

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

Este es un concepto digital, no solo un concepto de FPGA.

Respuestas (3)

Los caminos falsos son caminos de temporización que nunca se ejercitarán realmente en el diseño final. Supongamos 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 cada vez que el conteo es igual a 9, esa ruta lenta nunca se verá en el diseño real. Usted etiqueta la ruta lenta como una ruta falsa para que el compilador no pierda tiempo ni agregue ninguna lógica adicional en un esfuerzo por hacer que la ruta falsa se ejecute más rápido.

Huh, y pensé que la ruta falsa tenía que ver con el uso de Atmels en lugar de PIC o algo así.
Creo que un tipo más significativo de ruta falsa 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 lugar cerca del momento en que cambia el segundo reloj, o si cambia nada le importará su valor. Las herramientas de análisis de tiempo probablemente fallarían a menos que se agregara un sincronizador doble que fuera controlado por el segundo reloj, pero agregar dicho sincronizador podría romper totalmente el diseño. Por ejemplo, el primer reloj puede funcionar a 1 MHz y el segundo a 32 KHz, pero...
...el dispositivo que genera la señal puede cambiarla tres ciclos de 1 MHz después de ver un flanco ascendente en el reloj de 32 KHz. En consecuencia, se puede garantizar que la señal bloqueada por el reloj de 32 kHz cumpla con los requisitos de muestra/retención del bloqueo de 32 kHz sin ninguna sincronización adicional. Si la lógica en el lado de 1 MHz generó sus datos en función de lo que estaba haciendo el lado de 32 KHz, tal diseño podría permitir que la información generada en un ciclo en el lado de 32 Khz se filtre en ambos sentidos en el próximo ciclo. Agregar sincronización doble al lado de 32Khz rompería eso.

Una ruta falsa es una ruta que existe en el diseño pero no juega un papel en la operación, por lo que no es necesario incluirla en el análisis de tiempo.
Puede haber varias razones para que esto sea así, pero como la herramienta de análisis de tiempos no suele saber (aunque hay algunas herramientas que pueden detectarlos) qué caminos se pueden usar o no, hay que decírselo. Es similar a una ruta de varios ciclos, donde puede indicarle que una determinada ruta puede usar más de un ciclo para completarse.

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

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

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 la sincronización funcione, solo que la sincronización no se verifica. Depende del diseñador asegurarse manualmente de que se utilice la lógica de sincronización correcta para estas rutas de señal ignoradas.