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