restricciones de tiempo de FPGA SDC, entendiendo el retardo de salida

3

Tengo algunos problemas para entender la convención de tiempo de un comando SDC:

set_output_delay 1.0 -clock_fall -clock CLK2 –min {OUT1}
set_output_delay 1.4 -clock_fall -clock CLK2 –max {OUT1}

¿Significa esto que después del reloj de lanzamiento (flanco descendente CLK2), la señal de salida (OUT1) puede hacer la transición entre estas ventanas mín / máx (el borde de la señal se encuentra entre 1.0 ns y 1.4 ns después del borde descendente de CLK2) )?

Entonces, ¿es básicamente lo inverso de describir dónde una señal debe ser válida: donde se permite la transición / describir donde la señal puede no ser válida?

¿Mi entendimiento es correcto?

    
pregunta user2913869

2 respuestas

1

No, estas restricciones no significan que OUT1 tenga que transitar en esa ventana de tiempo. El retardo de salida está modelando el retardo entre el puerto de salida y un registro externo (imaginario).

El retraso de la ruta a través de OUT1 se puede pensar de la siguiente manera.

t_total_delay = t_clk-to-Q + t_comb_delay + t_output_delay - t_clk_skew

El valor máximo de t_output_delay (1.4 ns) se usa simplemente para el tiempo de configuración y el valor mínimo (1.0 ns) se usa para el tiempo de espera.

Pensemos en el tiempo de configuración. OUT1 tiene que transitar 1.4 ns antes (o antes) del borde descendente de CLK2 . Digamos que su período de reloj es de 10 ns y que el registro de origen también se desencadena por negedge En caso de que t_clk_skew sea cero, t_clk-to-Q + t_comb_delay debe ser menor o igual a 8.6 ns (10-1.4) para poder cumplir con el tiempo de configuración.

Para el tiempo de espera, t_total_delay tiene que ser mayor que cero. La parte crítica aquí es el sesgo del reloj . Si t_clk_skew es muy pequeño, es muy fácil cumplir el tiempo de espera. Incluso solo t_clk-to-Q suele ser mayor que tiempo de espera de la biblioteca , sin embargo, no necesitamos tiempo de espera de la biblioteca aquí, porque la ruta no va a un registro real.

Si queremos considerar ese tiempo de espera de la biblioteca , podemos establecer un menor retardo de salida . También es muy común establecer un valor negativo para estar en el lado seguro. Por ejemplo:

set_output_delay -1.0 -clock_fall -clock CLK2 –min {OUT1}
    
respondido por el ahmedus
0

Esa no es necesariamente una forma incorrecta de pensarlo, pero tampoco es la explicación completa. Lo que realmente está especificando son los retrasos de enrutamiento mínimos y máximos dentro del dispositivo desde la salida de datos del registro final al pin externo. Esto tiene dos usos:

1) Le brinda cierto control sobre la configuración / retención de ventanas en la salida. A veces es útil para solucionar problemas de tiempo extraños. 2) Más comúnmente, le permite ajustar los retrasos de propagación relativos entre múltiples señales síncronas para corregir las longitudes de traza desiguales en la PCB. Esto es para garantizar que todos lleguen al destino al mismo tiempo.

Tenga en cuenta que puede hacer lo mismo con las señales de entrada por los mismos motivos.

    
respondido por el Chris Iversen

Lea otras preguntas en las etiquetas