Restricción de una salida sincrónica de origen alineada en el perímetro

author-image

Por

En una interfaz de salida sincrónica de origen, el FPGA fuente el reloj para el dispositivo de destino. En una interfaz sincrónica de origen que está alineada en el borde, la transición de reloj se produce al mismo tiempo que la transición de datos. La Figura 1 muestra una interfaz de salida sincrónica de origen de muestra.

Figura 1. Interfaz de salida sincrónica de origen.

Siga estos pasos para restringir una interfaz de salida de origen síncrono alineada en el borde:

  1. Cree relojes base y generados
  2. Agregar restricciones de demora de salida
  3. 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 Restricción y análisis de interfaces sincrónicas de origen (PDF).

Relojes

Se requiere un reloj base en el puerto de entrada del FPGA.

Se requieren relojes generados en todas las salidas de ciclo bloqueado por fase (PLL). Una salida sincrónica de fuente alineada en el borde de la velocidad de datos doble alinea el reloj de salida con el reloj de datos.

Se requiere un reloj generado en el puerto de reloj de salida del FPGA. El reloj generado es la referencia de reloj para los valores de demora de salida para el bus de datos.

Restricciones de demora de salida

Puede utilizar una especificación de valor máximo de 100.000 personas para calcular los valores de demora de salida. La especificación máxima indica la variación de tiempo permitida para que los bits individuales de un bus de datos salgan del FPGA.

El valor de la demora máxima de salida es el período de reloj - valor máximo de inaplazación.

El valor de la demora mínima de salida es el valor máximo de valor de las propuestas.

Excepciones de ruta falsa

En este ejemplo alineado en el perímetro, los datos se transfieren en transiciones de reloj de origen y destino de rise-rise y fall-fall. Utilice excepciones de ruta falsa para reducir las transiciones de reloj de rise-fall y fall-rise, porque los datos no se transfieren en transiciones de reloj del borde opuesto.

Ejemplo de archivo SDC

# Cree un reloj base en el puerto de entrada del FPGA, con un período de 10 ns
create_clock -name input_clock -period 10 [get_ports clk_in]

# Crear relojes generados en las salidas PLL
# Output clk[0] drives the data register
# Output clk[1] drives the output clock port
create_generated_clock create_clock -name data_clock -source [get_pins pll|inclk[0]] \
[get_pins pll|clk[0]]
create_generated_clock -name clock_clock -source [get_pins pll|inclk[0] \
[get_pins pll|clk[1]]

# Cree el reloj generado en el puerto de reloj de salida del FPGA create_generated_clock
-name output_clock -source [get_pins pll|clk[1]] \ [[1] get_ports clk_out] # Añadir restricciones de demora de
salida

máximas y
mínimas suponiendo un requisito obligatorio de +/- 250ps # Utilice las ecuaciones para los valores de demora de
salida mencionados anteriormente set_output_delay
-max -clock output_clock [expr { 10 - 0.250 }] \
[get_ports data_out*]
set_output_delay -max -clock output_clock -clock_fall \
[expr { 10 - 0.250 }] [get_ports data_out*] -add
set_output_delay -min -clock output_clock 0.250 [get_ports data_out*]
set_output_delay -min -clock output_clock -clock_fall 0.250 \
[get_ports data_out*] -add

# Add false path exceptions for cross-clock transfers
set_false_path -setup -end -rise_from [get_clocks data_clock] \
-fall_to [get_clocks output_clock]
set_false_path -setup -end -fall_from [get_clocks data_clock] \
-rise_to [get_clocks output_clock]
set_false_path -hold -end -rise_from
[get_clocks data_clock] \ -fall_to [get_clocks output_clock]
set_false_path -hold -end -fall_from [get_clocks data_clock] \
-rise_to [get_clocks output_clock]

El contenido de esta página es una combinación de la traducción humana y automática del contenido original en inglés. Este contenido se ofrece únicamente para su comodidad como información general y no debe considerarse completa o precisa. Si hay alguna contradicción entre la versión en inglés de esta página y la traducción, prevalecerá la versión en inglés. Consulte la versión en inglés de esta página.