infracción del tiempo de espera durante la simulación de rutas y lugares de FPGA en modelosim

0

Estoy diseñando un circuito de encriptación simple en Xilinx Virtex-5 FPGA. He dado la restricción de tiempo en la UCF de la siguiente manera:

NET "clk" TNM_NET = clk;
TIMESPEC TS_clk = PERIOD "clk" 25 ns HIGH 50%;

Mi diseño no tiene ningún error en el informe de análisis de tiempo estático después del lugar y la ruta. A continuación se muestra parte del informe:

Timing errors: 0  Score: 0

Constraints cover 191219 paths, 0 nets, and 38438 connections

Design statistics:
   Minimum period:   9.954ns{1}   (Maximum frequency: 100.462MHz)

Sin embargo, cuando ejecuto un lugar de publicación y una simulación de tiempo de ruta en modelsim. Me da este error y el diseño no genera el resultado adecuado en la simulación.

# ** Error: /home/rex/opt/Xilinx/10.1/ISE/verilog/mti_se/simprims_ver/simprims_ver_source.v(121020): $hold( posedge CLK:650974 ps, negedge I &&& (in_clk_enable1 != 0):651125 ps, 153 ps );
#    Time: 651125 ps  Iteration: 0  Instance: /tb/aes_wrapper_0/\aes_fwd_0/aes_fwd_core_inst/CIPHER_RND_1_ARK_ROW_1_4_ARK_COL_1_3_xor_itm_1_sg1 
# ** Error: /home/rex/opt/Xilinx/10.1/ISE/verilog/mti_se/simprims_ver/simprims_ver_source.v(121020): $hold( posedge CLK:650974 ps, negedge I &&& (in_clk_enable1 != 0):651125 ps, 153 ps );
#    Time: 651125 ps  Iteration: 0  Instance: /tb/aes_wrapper_0/\aes_fwd_0/aes_fwd_core_inst/CIPHER_RND_1_ARK_ROW_1_4_ARK_COL_1_2_xor_itm_1_sg3_0 
# ** Error: /home/rex/opt/Xilinx/10.1/ISE/verilog/mti_se/simprims_ver/simprims_ver_source.v(121020): $hold( posedge CLK:650974 ps, negedge I &&& (in_clk_enable1 != 0):651125 ps, 153 ps );
#    Time: 651125 ps  Iteration: 0  Instance: /tb/aes_wrapper_0/\aes_fwd_0/aes_fwd_core_inst/CIPHER_RND_1_ARK_ROW_1_4_ARK_COL_1_3_xor_itm_1_sg3_0 
# ** Error: /home/rex/opt/Xilinx/10.1/ISE/verilog/mti_se/simprims_ver/simprims_ver_source.v(121019): $hold( posedge CLK:650974 ps, posedge I &&& (in_clk_enable1 != 0):651125 ps, 153 ps );
#    Time: 651125 ps  Iteration: 0  Instance: /tb/aes_wrapper_0/\aes_fwd_0/aes_fwd_core_inst/CIPHER_RND_1_ARK_ROW_1_4_ARK_COL_1_2_xor_itm_1_sg3_2 
# ** Error: /home/rex/opt/Xilinx/10.1/ISE/verilog/mti_se/simprims_ver/simprims_ver_source.v(121020): $hold( posedge CLK:650974 ps, negedge I &&& (in_clk_enable1 != 0):651125 ps, 153 ps );
#    Time: 651125 ps  Iteration: 0  Instance: /tb/aes_wrapper_0/\aes_fwd_0/aes_fwd_core_inst/CIPHER_RND_1_ARK_ROW_1_4_ARK_COL_1_3_xor_itm_3 

Solo sé que esto es una infracción de tiempo de espera. ¿Cómo interpreto esta información de error de manera más precisa? ¿Cómo resolver este problema?

Actualizaciones: Seguí las señales que causan la violación del tiempo de espera. El pad de entrada está conectado a alguna lógica combinacional antes de ir al DFF que tiene una violación del tiempo de espera. Supongo que agregar la restricción OFFSET IN resolverá este problema. ¿Cómo puedo determinar el valor correcto (?? ns) en la restricción OFFSET IN?

OFFSET = IN ??ns BEFORE "clk";
    
pregunta drdot

1 respuesta

2

Si no obtiene una infracción en el análisis de tiempo, pero sí en la simulación, es probable que su análisis de tiempo sea incompleto. Revisar el cruce de reloj y TIG (ignorar) en particular. Consulte Xilinx answer 38348 para obtener más detalles sobre TIG.

    
respondido por el Brian Carlton

Lea otras preguntas en las etiquetas