生成クロックの波形の各エッジは、-edge_shift
で正または負の値を指定することにより個別にシフトさせることもできます。位相シフトが必要な場合は、このオプションを使用します。
-edge_shift
オプションは、次のオプションと同時に使用することはできません。
-
-divide_by
-
-multiply_by
-
-invert
たとえば、clkin
というマスター クロックがあり、周期は 10 ns、デューティ サイクルは 50% であるとします。このクロックはセル mmcm0 に入力され、このセルによりデューティ サイクルが 25% で位相が 90 度シフトされたクロックが生成されます。生成クロックの定義には、マスター クロックのエッジ 1、2、および 3 が使用されています。これらのエッジは、それぞれ 0 ns、5 ns、および 10 ns で発生します。適切な波形を得るには、1 番目と 3 番目のエッジを 2.5 ns シフトします。
create_clock -name clkin -period 10 [get_ports clkin]
create_generated_clock -name clkshift -source [get_pins mmcm0/CLKIN] -edges {1 2 3} \
-edge_shift {2.5 0 2.5} [get_pins mmcm0/CLKOUT] # First rising edge: 0ns + 2.5ns = 2.5ns
# Falling edge: 5ns + 0ns = 5ns
# Second rising edge: 10ns + 2.5ns = 12.5ns
注記:
-edge_shift
には、正の値または負の値を指定できます。図 1. 生成クロックの例 3