restricciones SDC para dos sincronizadores de flop

3

Tengo dudas, cuál debería ser la restricción SDC adecuada para el módulo CDC, es decir, dos sincronizadores de flop. entre " dat conduciendo por aclk a bdat1 conduciendo por bclk " Nota: aclk y bclk no son lo mismo, también pregunta si, ¿qué pasa si también?

¿Es una ruta falsa?

A continuación se encuentra el archivo de restricciones SDC que he usado,

# Input ports
# -----------------------------------------------------------------------------
set_input_delay $ACLK_IN_DELAY  -clock $SCLK [get_ports dat ]  

set_input_delay $V_CLK_1_IN_DELAY     -clock $V_CLK_1    [get_ports srst_ni]  
set_input_delay $V_CLK_1_IN_DELAY     -clock $V_CLK_1    [get_ports drst_ni]  

# Output ports
# -----------------------------------------------------------------------------
set_output_delay $BCLK_OUT_DELAY  -clock $DCLK [get_ports bdat2] 
    
pregunta Prakash Darji

2 respuestas

1

Como su reloj de origen es aclk y el reloj de destino es bclk , adat debería ser la única ruta falsa aquí. Otras rutas son válidas y no requieren ninguna restricción especial.

La ruta falsa se puede definir para el pin de entrada de datos del segundo registro (el que está entre adat y bdat1 ). No sé cómo su herramienta trata los nombres de registro, pero utilicé la convención de nomenclatura de Synopsys en el siguiente ejemplo.

set_false_path -to bdat1_reg/D

Hay una segunda forma de definir esta ruta falsa. Si los relojes se definen de forma asíncrona entre sí, adat será una ruta falsa automáticamente. Supongo que ACLK y BCLK son relojes definidos previamente.

set_clock_groups -asynchronous -group ACLK -group BCLK
    
respondido por el ahmedus
1

Se pueden restringir dos sincronizaciones de flip-flop con las siguientes líneas XDC. XDC es un sabor de Xilinx para los conocidos archivos de Restricción de diseño de Sinopsis (SDC).

set_property ASYNC_REG true [get_cells -regexp {gen\[\d+\]\.Sync/FF2}]
set_property ASYNC_REG true [get_cells -regexp {gen\[\d+\]\.Sync/FF1_METASTABILITY_FFS}]
set_false_path -from [all_clocks] -to [get_pins -regexp {gen\[\d+\]\.Sync/FF1_METASTABILITY_FFS/D}]

Fuente: sync_Bits_Xilinx.xdc

FF1_METASTABILITY_FFS es el primer flip-flop (el meta estable) y FF2 es el segundo flip-flop.

Puede encontrar una implementación de sincronizador 2-FF genérico en nuestra PoC-Library como PoC.misc.sync.Bits , así como dos implementaciones optimizadas por el proveedor para Xilinx y Altera . El código XDC anterior se aplica relativamente a todas las instancias de PoC.misc.sync.Bits al establecer la propiedad de archivo SCOPED_TO_REF a sync_Bits_Xilinx .

    
respondido por el Paebbels

Lea otras preguntas en las etiquetas