Hi Daixiwen,
my Quartus design is composed mostly by a block generated with Synopsys Synphony.
The timing violations I get in timequest (slack of -6ns) for many many signals are related to the Synphony generated block.
I feed the Synphony generated block with a 150MHz clock produced by a FPGA PLL and then inside it I use this clock to generate other 3 slower frequencies.
Synopsys Synphony generates the following timing constraints:
define_clock -name {n:clkDiv1875} -freq 0.080000 -clockgroup default_dsp_clkgroup
define_clock -name {n:clk} -freq 150.000000 -clockgroup default_dsp_clkgroup
define_clock -name {n:clkDiv15} -freq 10.000000 -clockgroup default_dsp_clkgroup
define_clock -name {n:clkDiv5} -freq 30.000000 -clockgroup default_dsp_clkgroup
define_input_delay -disable {tx_fifo_empty} 0 -ref clk:r
define_input_delay -disable {tx_fifo_Q_data[15:0]} 0 -ref clk:r
define_input_delay -disable {tx_fifo_I_data[15:0]} 0 -ref clk:r
define_input_delay -disable {fifo_control_empty} 0 -ref clk:r
define_input_delay -disable {fifo_control_data[49:0]} 0 -ref clk:r
define_input_delay -disable {Data_from_ADC[13:0]} 0 -ref clk:r
define_output_delay -disable {tx_fifo_rdreq} 0 -ref clk:r
define_output_delay -disable {rx_fifo_strobe} 0 -ref clk:r
define_output_delay -disable {rx_fifo_q_data[15:0]} 0 -ref clk:r
define_output_delay -disable {rx_fifo_i_data[15:0]} 0 -ref clk:r
define_output_delay -disable {fifo_control_rdreq} 0 -ref clk:r
define_output_delay -disable {debug[13:0]} 0 -ref clkDiv1875:r
define_output_delay -disable {Data_to_DAC[13:0]} 0 -ref clk:r# Do not pack registers in IO pads# This will be relevant if designer inserts IO
define_global_attribute syn_useioff {0}
define_multicycle_path -through {n:ti_sincgars_wrapper_model_Tx.DDC_WF_block.myDDC_WF.DDC_WF_filter_Q_block.myDDC_WF_filter_Q.CIC_DDC_block.myCIC_DDC.N_6[0:36]} -start 124
define_multicycle_path -through {n:ti_sincgars_wrapper_model_Tx.DDC_WF_block.myDDC_WF.DDC_WF_filter_I_block.myDDC_WF_filter_I.CIC_DDC_block.myCIC_DDC.N_6[0:36]} -start 124
define_multicycle_path -through {n:ti_sincgars_wrapper_model_Tx.Freq_translation_and_DDC_Platform_block.myFreq_translation_and_DDC_Platform.DDC_filter_I_block.myDDC_filter_I.FIR_Rate_Converter_DDC_block.myFIR_Rate_Converter_DDC.N_Downsample_RG3_1_294[0:15]} -start 2
define_multicycle_path -through {n:ti_sincgars_wrapper_model_Tx.Freq_translation_and_DDC_Platform_block.myFreq_translation_and_DDC_Platform.DDC_filter_I_block.myDDC_filter_I.CIC_DDC_block.myCIC_DDC.N_6[0:22]} -start 4
define_multicycle_path -through {n:ti_sincgars_wrapper_model_Tx.Freq_translation_and_DDC_Platform_block.myFreq_translation_and_DDC_Platform.DDC_filter_Q_block.myDDC_filter_Q.FIR_Rate_Converter_DDC_block.myFIR_Rate_Converter_DDC.N_Downsample_RG0_1_287[0:15]} -start 2
define_multicycle_path -through {n:ti_sincgars_wrapper_model_Tx.Freq_translation_and_DDC_Platform_block.myFreq_translation_and_DDC_Platform.DDC_filter_Q_block.myDDC_filter_Q.CIC_DDC_block.myCIC_DDC.N_6[0:22]} -start 4
that are different from how Quartus want them. Maybe there is a difference between a SDC file for synopsys and a SDC for quartus.
Anyway the 3 slower frequencies are not listed in the clock list, I have somehow to constrain them in quartus.