AR# 59484

Vivado - カスケードされた BUFGMUX で駆動されるクロックに制約を設定する方法

説明

(UG949) の「Overlapping Clocks Driven by a Clock Multiplexer」セクションには、2 つの異なる使用ケースで、クロック グループ制約を適用する方法が説明されています。

しかし、カスケードされた BUFGMUX が関わっているケースがあります。

次のクロック供給構造を例にとって説明します。

                Clk1 ----
                                |---- BUFGMUX1 ---- POINT1 ----
                Clk2 ----                                                                |
                                                                                                |---- BUFGMUX3 ---- POINT3
                                                                                                |
                Clk3 ----                                                                |
                                |---- BUFGMUX2 ---- POINT2 ----
                Clk4 ----
 


この使用ケースは、入力クロックが直接マルチプレクサで選択されたクロックと関わりあう、(UG949) の 2 番目のケースに当てはまるとします。

POINT1 で、clka (clk1 により駆動) および clkb (clk2 により駆動) という 2 つの生成クロックを定義しました。 

POINT2 では clkc/clkd も定義しました。


すべてのクロック (a/b/c/d) が BUFGMUX3 に伝搬される可能性があるので、POINT3 でクロックに制約をつけるにはどうしたらよいでしょうか。

 

 

 

ソリューション

clka/clkb の 2 つ、そして clkc/clkd の 2 つと、POINT3 で 4 つの生成クロックを定義する必要があります。

次の構文を参照してください。

create_generated_clock -name clk1mux -divide_by 1 -add -master_clock clk1 -source [get_pins BUFGMUX_inst1/I0] [get_pins BUFGMUX_inst1/O]
create_generated_clock -name clk2mux -divide_by 1 -add -master_clock clk2 -source [get_pins BUFGMUX_inst1/I1] [get_pins BUFGMUX_inst1/O]
set_clock_groups -physically_exclusive -group clk1mux -group clk2mux
 
create_generated_clock -name clk3mux -divide_by 1 -add -master_clock clk3 -source [get_pins BUFGMUX_inst2/I0] [get_pins BUFGMUX_inst2/O]
create_generated_clock -name clk4mux -divide_by 1 -add -master_clock clk4 -source [get_pins BUFGMUX_inst2/I1] [get_pins BUFGMUX_inst2/O]
set_clock_groups -physically_exclusive -group clk3mux -group clk4mux
 
create_generated_clock -name clk1mux_cas -divide_by 1 -add -master_clock clk1mux -source [get_pins BUFGMUX_inst3/I0] [get_pins BUFGMUX_inst3/O]
create_generated_clock -name clk2mux_cas -divide_by 1 -add -master_clock clk2mux -source [get_pins BUFGMUX_inst3/I0] [get_pins BUFGMUX_inst3/O]
create_generated_clock -name clk3mux_cas -divide_by 1 -add -master_clock clk3mux -source [get_pins BUFGMUX_inst3/I1] [get_pins BUFGMUX_inst3/O]
create_generated_clock -name clk4mux_cas -divide_by 1 -add -master_clock clk4mux -source [get_pins BUFGMUX_inst3/I1] [get_pins BUFGMUX_inst3/O]
set_clock_groups -physically_exclusive -group clk1mux_cas -group clk2mux_cas -group clk3mux_cas -group clk4mux_cas

 
 
AR# 59484
日付 12/17/2014
ステータス アクティブ
種類 一般
ツール