¿Cómo se corrige el error 'restricciones de tiempo no cumplidas' causado por Xilinx Cordic IP?

0

Hice un generador de funciones de ventana IP en Xilinx Vivado. Funciona bien en la simulación. Cuando intenté implementarlo para Zedboard, se produce un error de tiempo. El error es causado por Cordic IP utilizado para la función de coseno

Esto es parte del informe de tiempo:

Max Delay Paths
--------------------------------------------------------------------------------------
Slack (VIOLATED) :        -2.636ns  (required time - arrival time)
  Source:                 design_1_i/axi_window_top_0/U0/design_inst/design_1_i/cordic_2QN_1QN/U0/i_synth/i_synth/gen_cordic.input_stage/gen_rotation.gen_rot_phase.gen_phase_cr/gen_rtl.gen_reg.d_reg_reg[36]/C
                            (rising edge-triggered cell FDRE clocked by clk_fpga_0  {[email protected] [email protected] period=10.000ns})
  Destination:            design_1_i/axi_window_top_0/U0/design_inst/design_1_i/cordic_2QN_1QN/U0/i_synth/i_synth/gen_cordic.cordic_engine/gen_para_arch.gen_iteration[0].eng/data_slice/x_plus_y_shift/inst/i_baseblox.i_baseblox_addsub/no_pipelining.the_addsub/i_lut6.i_lut6_addsub/i_q.i_simple.qreg/i_no_async_controls.output_reg[34]/D
                            (rising edge-triggered cell FDRE clocked by clk_fpga_0  {[email protected] [email protected] period=10.000ns})
  Path Group:             clk_fpga_0
  Path Type:              Setup (Max at Slow Process Corner)
  Requirement:            10.000ns  (clk_fpga_0 [email protected] - clk_fpga_0 [email protected])
  Data Path Delay:        12.482ns  (logic 6.040ns (48.392%)  route 6.442ns (51.608%))
  Logic Levels:           11  (CARRY4=10 LUT1=1)
  Clock Path Skew:        -0.062ns (DCD - SCD + CPR)
    Destination Clock Delay (DCD):    2.725ns = ( 12.725 - 10.000 ) 
    Source Clock Delay      (SCD):    3.016ns
    Clock Pessimism Removal (CPR):    0.229ns
  Clock Uncertainty:      0.154ns  ((TSJ^2 + TIJ^2)^1/2 + DJ) / 2 + PE
    Total System Jitter     (TSJ):    0.071ns
    Total Input Jitter      (TIJ):    0.300ns
    Discrete Jitter          (DJ):    0.000ns
    Phase Error              (PE):    0.000ns

Va así.

¿Cómo puedo solucionar este problema? ¿Debo ajustar algunos parámetros de Cordic IP o debo ejecutar múltiples Cordics en paralelo?

Mis configuraciones de IP de Cordic:

Architectural Configuration: Parallel
Pipelining Mode            : Maximum
Data Format                : SignedFraction
Phase Format               : Scaled Radians
Input/Output Width         : 32
Round Mode                 : Trunctate
Iterations                 : 0 (Default)
Precision                  : 0 (Default)
Coarse Rotation            : Yes
    
pregunta Alper

0 respuestas

Lea otras preguntas en las etiquetas