set_min_delay -from [get_pins ff1_reg/C] -to [get_pins ff2_reg/D] 2.000 //设置clk2的周期 create_clock -period 10.000 -name clk1 -waveform {0.000 5.000} [get_ports clk1] //max_delay值为5 create_clock -period 7.000 -name clk2 -waveform {0.000 3.500} [get_ports clk2] //min...
约束内容如下,对经过clk4端口的时序弧和经过触发器引脚ff2_reg/Q的时序弧设置无效约束 create_clock -period 10.000 -name clk1 -waveform {0.000 5.000} [get_ports clk1] create_clock -period 7.000 -name clk2 -waveform {0.000 3.500} [get_ports clk2] create_clock -period 8.000 -name clk3 -wave...
set period 8.000 create_clock -period $period \ -name clk_in \ [get_ports clk_in] derive_pll_clocks set_output_delay -add_delay \ -clock ddr_pll_1_inst|altpll_component|pll|CLK[0] \ -reference_pin [get_ports clk_out] \ -min -2.000 \ [get_ports data_out*] set_output_delay ...
还需对out端口设置set_output_delay约束,否则无时序路径进行分析。 create_clock-period10.000-name clk-waveform{0.0005.000}[get_ports clk]set_output_delay-clock[get_clocks*]0.500[get_ports-filter{NAME=~"*"&&DIRECTION=="OUT"}]set_data_check-setup-from[get_pins out_OBUF_inst_i_1/I0]-to[get...
但是当我们通过以上的命令设置了 3 个 cycle 的 multicycle path 的约束之后,launch clk 的沿推到了 T=30ns。因此,两个寄存器之间那段组合逻辑的 delay 要求就放松到了近三个时间 cycle。这种情况下 setup 是比较容易满足的。对应的 setup 检查时序报告如下图 2 所示。
create_clock-period5.000-name src_clk-waveform{0.0002.500}[get_ports src_clk]create_clock-period2.500-name dest_clk-waveform{0.0001.250}[get_ports dest_clk]set_max_delay-from[get_cells src_send_reg]-through[get_cells{{out_reg[0]}{out_reg[1]}}]10.000set_bus_skew-from[get_cells{{src...
set_multicycle_path -hold 1 -from CLK1 -to CLK2 这样hold检查向后(左)移动(延迟)1个period,由于-hold默认移动launch_clk,也就是launch_clk向前(向右)移动了1个时钟周期(也可看做capture_clk向左移动了1个时钟周期),如下图(这种情景设置只适用于多周期采样,例如存在图中的使能信号Clock Enable): ...
set_multicycle_path -setup 7 -to [clk]你⼜必须保证path_delay⾜够⼤,不会产⽣hold-time violation,DC⼏乎不可能做到这⼀点。加register-enabling logic解决亚稳态 ⾸先:⽆论是单周期还是多周期,hold检查都默认为setup的前⼀个时钟。你写了set_multicycle_path -setup 7 -to [clk]之后...
setperiod8.000 create_clock-period$period\ -nameclk_in\ [get_portsclk_in] derive_pll_clocks set_output_delay-add_delay\ -clockddr_pll_1_inst|altpll_component|pll|CLK[0]\ -reference_pin[get_portsclk_out]\ -min-2.000\ [get_portsdata_out*] ...
create_clock -name TS_ipclk -period 31.000ns [get_ports {ipclk}] create_clock -name TS_clk -period 50.00ns [get_ports {clk}] set_clock_groups -asynchronous -group TS_ipclk -group TS_clk I pass the TS_clk signal through a pll, and its output clock eventually touche...