Acerca del tema del diseño de restricciones de reloj set_multicycle_path en vivado
Mi comprensión de la pregunta es que el tiempo de configuración es el tiempo antes del flip-flop D que la lógica combinacional necesita calcular, incluido el tiempo de viaje de la línea.
El tiempo de retención se refiere a cuánto tiempo se tarda en mantener los datos estables después de que llega el flanco ascendente, de modo que los datos relevantes puedan generarse de manera estable y precisa.
?En el comando set_multicycle_path, hay dos conceptos que deben aclararse. Uno es el establecimiento de requisitos. Una es mantener los requisitos. El requisito de configuración se entiende bien como el tiempo necesario para transferir datos entre el registro de control del reloj de origen y el registro del reloj de destino. Sin embargo, el flanco ascendente del reloj de origen que envía datos debe corresponder al único flanco ascendente del reloj de destino que recibe datos. Esto requiere mantener un requisito de retención. Los requisitos de retención tienen los dos principios siguientes:
1) Los datos enviados en el borde del reloj de origen actual no pueden ser capturados por el borde de captura anterior.
2) El borde de captura actual no puede capturar los datos enviados por el siguiente borde de inicio.
Como se muestra en la figura siguiente, la combinación de tiempos de configuración y espera limita el rango de datos que el reloj de destino puede capturar.
Comandos de restricción:
?set_multicycle_path -from [get_clocks clk1] -to [get_clocks clk2] -setup -end 3
set_multicycle_path -from [get_clocks clk1] -to [get_clocks clk2] -hold -end 2
De las dos restricciones anteriores, una (-setup) es el tiempo de construcción y la otra (-holf) es el tiempo de espera.
-end usa el reloj del puerto de destino como referencia de conteo de ciclos de reloj. Si es -start, significa usar el reloj de origen como estándar de conteo de ciclos de reloj.
Enlace original:/lipf207/article/details/83012898