正相移将源时钟沿向前移动,导致时钟沿延迟。负相移将源时钟沿向后移动。修改时钟波形导致静态时序分析可能对源时钟和捕获时钟使用不同的时钟沿。
在以下示例中,时钟 clkout0
(周期为 10 ns)由 MMCM 自动衍生。
- 无相移
vivado% set_property CLKOUT0_PHASE 0.000 [get_cells qpll/plle2_adv_inst] vivado% report_timing ... (clock clkout0 rise edge) 0.000 0.000 r ... MMCME2_ADV (Prop_mmcme2_adv_CLKIN1_CLKOUT0) -5.411 5.903 r mmcm_inst/mmcm_adv_inst/CLKOUT0 ...
源时钟沿为 0.0 ns。
- 正相移为 12.0 且
PHASESHIFT_MODE
=WAVEFORM
vivado% set_property CLKOUT0_PHASE 12.000 [get_cells qpll/plle2_adv_inst] vivado% report_timing ... (clock clkout0 rise edge) 0.333 0.333 r ... MMCME2_ADV (Prop_mmcme2_adv_CLKIN1_CLKOUT0) -5.411 5.903 r mmcm_inst/mmcm_adv_inst/CLKOUT0 ...
源时钟沿发生 0.333 ns (10 ns / 360 * 12.0) 的延迟。
- 正相移为 12.0 且
PHASESHIFT_MODE
=LATENCY
vivado% set_property CLKOUT0_PHASE 12.000 [get_cells qpll/plle2_adv_inst] vivado% report_timing ... (clock clkout0 rise edge) 0.000 0.000 r ... MMCME2_ADV (Prop_mmcme2_adv_CLKIN1_CLKOUT0) -5.078 6.236 r mmcm_inst/mmcm_adv_inst/CLKOUT0 ...
MMCM 插入延迟增加 0.333 ns (10 ns / 360 * 12.0)。源时钟沿为 0.0 ns。
- 负相移为 -15.0 且
PHASESHIFT_MODE
=WAVEFORM
vivado% set_property CLKOUT0_PHASE -15.000 [get_cells qpll/plle2_adv_inst] vivado% report_timing ... (clock clkout0 rise edge) -0.417 -0.417 r ... MMCME2_ADV (Prop_mmcme2_adv_CLKIN1_CLKOUT0) -5.411 5.903 r mmcm_inst/mmcm_adv_inst/CLKOUT0 ...
源时钟沿向后移动 -0.417 ns (10 ns / 360 * -15.0)。
- 负相移为 -15.0 且
PHASESHIFT_MODE
=LATENCY
vivado% set_property CLKOUT0_PHASE -15.000 [get_cells qpll/plle2_adv_inst] vivado% report_timing ... (clock clkout0 rise edge) 0.000 0.000 r ... MMCME2_ADV (Prop_mmcme2_adv_CLKIN1_CLKOUT0) -5.828 5.486 r mmcm_inst/mmcm_adv_inst/CLKOUT0 ...
MMCM 插入延迟减少 0.417 ns (10 ns / 360 * -15.0)。源时钟沿为 0.0 ns。