Estoy intentando conectar la interfaz y la placa FPGA con el chip puente USB FT601 y estoy teniendo problemas con las restricciones de tiempo. En resumen, el FT601 tiene una interfaz de fuente sincrónica con un canal de datos bidireccional, y proporciona el fpga con un reloj de 100 MHz. La hoja de datos proporciona los siguientes requisitos de tiempo para el chip:
salida: T_setup = 3.0 ns, T_hold = 3.5 ns
entrada: T_setup = 1.0 ns, T_hold = 4.8 ns
A partir de esto asumí que las restricciones correctas, ignorando los retrasos de rastreo, serían algo como esto:
set_input_delay -clock clk -add_delay -min 3.5
set_input_delay -clock clk -add_delay -max 7.0
set_output_delay -clock clk -add_delay -min -4.8
set_output_delay -clock clk -add_delay -max 1.0
Pero la herramienta no puede cumplir con esos tiempos (y en la implementación tengo redes muy largas en los pines de salida). Al buscar en el sitio web de FTDI, encontré un fpga diseño de ejemplo con las siguientes restricciones:
set_input_delay -clock clk -add_delay -min 6.5
set_input_delay -clock clk -add_delay -max 7
set_output_delay -clock clk -add_delay -min 4.8
set_output_delay -clock clk -add_delay -max 1.0
Siento que me estoy perdiendo algo realmente básico sobre las restricciones o el tiempo en general; ¿Cómo puede el retraso de salida máximo ser mayor que el mínimo? Entiendo que es posible tener un tiempo de espera negativo, y como -min se establece en -T_hold, puedo tener un valor de -min positivo, pero no estoy seguro de cómo esta cifra podría ser más grande que el tiempo de configuración.