Forum Discussion
Altera_Forum
Honored Contributor
12 years agoI modifyed my constraint as follows.
create_clock -add -name {Ext_LVDSClkA} -period 15.384 -waveform {0 8.790} [get_ports {LVDS_A_CK}] create_generated_clock -name {Int_PCLKA} -divide_by 1 -multiply_by 1 -duty_cycle 50 -phase 0 -source [get_pins u_ClkGen|u_Rx0PLL|altpll_component|auto_generated|pll1|inclk[0]] [get_pins {u_ClkGen|u_Rx0PLL|altpll_component|auto_generated|pll1|clk[0]}] -add create_generated_clock -name {Int_PCLKA_2X} -divide_by 1 -multiply_by 2 -duty_cycle 50 -phase 0 -source [get_pins u_ClkGen|u_Rx0PLL|altpll_component|auto_generated|pll1|inclk[0]] [get_pins {u_ClkGen|u_Rx0PLL|altpll_component|auto_generated|pll1|clk[1]}] -add # #create_generated_clock -name {Int_IOCLKA} -divide_by 2 -multiply_by 7 -duty_cycle 50 -phase 78.75 -source [get_pins u_ClkGen|u_Rx0PLL|altpll_component|auto_generated|pll1|inclk[0]] [get_pins {u_ClkGen|u_Rx0PLL|altpll_component|auto_generated|pll1|clk[2]}] -add create_generated_clock -name {Int_IOCLKA} -divide_by 2 -multiply_by 7 -duty_cycle 50 -phase 56.25 -source [get_pins u_ClkGen|u_Rx0PLL|altpll_component|auto_generated|pll1|inclk[0]] [get_pins {u_ClkGen|u_Rx0PLL|altpll_component|auto_generated|pll1|clk[2]}] -add set LVDSA_tCO_max 0.5 set LVDSA_tCO_min -0.5 set_input_delay -add_delay -clock [get_clocks {Ext_LVDSClkA}] -max [expr $LVDSA_tCO_max] [get_ports {LVDS_A_CK}] set_input_delay -add_delay -clock [get_clocks {Ext_LVDSClkA}] -min [expr $LVDSA_tCO_min] [get_ports {LVDS_A_CK}] set_input_delay -add_delay -clock [get_clocks {Ext_LVDSClkA}] -max [expr $LVDSA_tCO_max + 2.197] [get_ports {LVDS_A_D[*]}] set_input_delay -add_delay -clock [get_clocks {Ext_LVDSClkA}] -min [expr $LVDSA_tCO_min + 2.197] [get_ports {LVDS_A_D[*]}] set_input_delay -add_delay -clock [get_clocks {Ext_LVDSClkA}] -clock_fall -max [expr $LVDSA_tCO_max + 2.197] [get_ports {LVDS_A_D[*]}] set_input_delay -add_delay -clock [get_clocks {Ext_LVDSClkA}] -clock_fall -min [expr $LVDSA_tCO_min + 2.197] [get_ports {LVDS_A_D[*]}] set_multicycle_path -setup -rise_from [get_clocks {Ext_LVDSClkA}] -fall_to [get_clocks {Int_IOCLKA}] -end 2 set_multicycle_path -setup -fall_from [get_clocks {Ext_LVDSClkA}] -fall_to [get_clocks {Int_IOCLKA}] -end 2 set_multicycle_path -setup -rise_from [get_clocks {Ext_LVDSClkA}] -rise_to [get_clocks {Int_IOCLKA}] -end 2 set_multicycle_path -setup -fall_from [get_clocks {Ext_LVDSClkA}] -rise_to [get_clocks {Int_IOCLKA}] -end 2 # ##set_multicycle_path -setup -rise_from [get_clocks {Ext_LVDSClkA}] -through [get_pins {*u_lvds_rx0|r_LVDSClk[0]|d}] -rise_to [get_clocks {Int_IOCLKA}] -end 1 # ##set_multicycle_path -setup -fall_from [get_clocks {Ext_LVDSClkA}] -through [get_pins {*u_lvds_rx0|r_LVDSClk[0]|d}] -rise_to [get_clocks {Int_IOCLKA}] -end 1 # #set_multicycle_path -from {LVDS_A_CK} -to {LVDSRxTop:u_LVDSRxTop|lvds_rx:u_lvds_rx0|r_LVDSClk[0]} -setup -end 1 # #set_multicycle_path -from {LVDS_A_CK} -to {LVDSRxTop:u_LVDSRxTop|lvds_rx:u_lvds_rx0|r_LVDSClk[0]} -hold -end 0 set_max_delay -from {LVDS_A_CK} -to {LVDSRxTop:u_LVDSRxTop|lvds_rx:u_lvds_rx0|r_LVDSClk[0]} [expr 0.686 + 2.197] set_min_delay -from {LVDS_A_CK} -to {LVDSRxTop:u_LVDSRxTop|lvds_rx:u_lvds_rx0|r_LVDSClk[0]} [expr 0.686 - 2.197] I found that it is hard to meet the timing for clock skew of setup and hold differ big(difference is about 0.5ns).For this case,what ways are there? And I have no confidence on my constraint,is there any problem in my constraint?