Una interfaz de entrada sincrónica de origen está limitada de una forma similar a la de una interfaz de entrada sincrónica del sistema. El FPGA recibe un reloj y lo utiliza para atapar los datos de entrada. En una interfaz sincrónica de origen que está alineada en el centro, la transición del reloj se produce en el centro de la ventana válida de datos. La Figura 1 muestra una interfaz de entrada sincrónica de origen de muestra.
Siga estos pasos para restringir una interfaz de entrada sincrónica de origen alineada en el centro:
- Cree relojes virtuales, básicos y generados
- Agregar restricciones de demora de entrada
- Agregue excepciones de ruta falsa para excluir rutas no válidas del análisis e informes de temporización
Para obtener más información acerca de cualquiera de estos pasos, o los cálculos y restricciones descritos a continuación, consulte AN 433: Restricción y análisis de interfaces de origen síncronos (PDF).
Relojes
Un reloj virtual modela el reloj en el dispositivo externo que impulsa los registros de datos para transmitir datos al FPGA.
Se requiere un reloj base en el puerto de entrada del FPGA. El reloj base describe las características del reloj en la entrada de reloj del FPGA. Si el reloj de entrada está alineado con el centro de los datos, debe utilizar la opción para especificar los bordes del reloj de ascenso y descenso que corresponden al cambio de fase de reloj.
Se requieren relojes generados en todas las salidas de ciclo bloqueado por fase (PLL).
Restricciones de demora de entrada
Puede utilizar una especificación de valor máximo de 100.000 personas para calcular los valores de demora de entrada. La especificación máxima indica la variación de tiempo permitida para que los bits individuales de un bus de datos lleguen al FPGA.
El valor de la demora máxima de entrada es el valor máximo de valor de los propuestas.
El valor de la demora mínima de entrada es -valor máximo de inaplazación.
Excepciones de ruta falsa
En este ejemplo alineado con el centro, los datos se transfieren en transiciones de reloj de origen y destino de aumento y otoño. Utilice excepciones de ruta falsa para reducir las transiciones de reloj de subida y caída a mayor, porque los datos no se transfieren en transiciones de reloj del borde opuesto.
Ejemplo de archivo SDC
# Cree un reloj virtual para describir el reloj de datos en el número del dispositivo externo. create_clock -name virt_clk -period 10 # Cree un reloj base en el puerto de entrada del FPGA, con un ns de período de 10 ns y un cambio de fase de 90 grados porque la interfaz está alineada en el centro create_clock -name input_clock -period 10 -waveform { 2.5 7.5 } [get_ports clk_in] # Creación generada relojes en las salidas PLL create_generated_clock -name data_clock -source [get_pins pll|inclk[0]] \ [ get_pins pll|clk[0]] # Agregar máximo y restricciones de demora de entrada mínimas n.º que asumen un requisito obligatorio de +/- 250ps. Utilice las piezas para los valores de demor de entrada mencionados anteriormente set_input_delay -max -clock virt_clk 20 0.250 [get_ports data_in*] set_input_delay -min-clock virt_clk -0.250 [get_ports data_in*] set_input_delay -max -clock virt_clk -clock_fall \ 0.250 [get_ports data_in*] -add set_input_delay -min-clock virt_clk -clock_fall \ -0.250 [get_ports data_in*] -add # Agregar excepciones de ruta falsa para transferencias de reloj cruzado set_false_path -setup -end -rise_from [get_clocks virt_clk] \ -fall_to [get_clocks data_clock] set_false_path -setup -end -fall_from [get_clocks virt_clk] \ -rise_to [rise_to get_clocks data_clock] set_false_path -hold -end -rise_from [get_clocks virt_clk] \ -rise_to [get_clocks data_clock] set_false_path -hold -end -fall_from [get_clocks virt_clk] \ -fall_to [get_clocks data_clock]