FC2カウンター FPGAの部屋 set_clock_groups -asynchronous 制約

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

set_clock_groups -asynchronous 制約

HDMI入力XGA表示回路3(インプリメント)”で、BUFR_pixel_clk_io/O と clk_fpga_0 の 2 つのクロック間の依存関係を set_false_path で無効にしていたが、set_clock_groups -asynchronous の方が良いという情報があった。

Vivado Design Suite ユーザー ガイド 制約の使用 UG903 (v2015.1) 2015 年 4 月 1 日”の 41 ページを見るとTiming Constraints Wizard の Asynchronous Clock Domain Crossing の図があって、その下に、以下のように書いてある。

どちらの方向のタイミングも無視するのが安全な場合 - set_clock_groups (-asynchronous)
一方向のパスを無視するのが安全な場合 - set_false_path


これを見ると、set_false_path でも、set_clock_groups (-asynchronous) でも同じ気がするが、”HDMI入力XGA表示回路3(インプリメント)”で設定した set_false_path を set_clock_groups -asynchronous に変更した。

やり方を示す。なお、set_false_path をコメントアウトした状態にしてある。

Implemented Design を開いて、Edit Timing Constraints をクリックする。

Timing Constraints タブが開く。

Clocks -> Set Clock Groups をクリックする。

Double click to create a Set Clock Groups constraint をダブルクリックする。
ZYBO_1_XGA_test_34_151217.png

Set Clock Groups ダイアログが立ち上がる。

Group name を pixel_clk2clk_fpga_0 に設定して、Group 1 に BUFR_pixel_clk_io/O を、Group 2 に clk_fpga_0 を指定して、OKボタンをクリックする。
ZYBO_1_XGA_test_35_151217.png

制約ファイルに、set_clock_groups (-asynchronous) 制約が設定された。

set_clock_groups -name pixel_clk2clk_fpga_0 -asynchronous -group [get_clocks [list [get_clocks -of_objects [get_pins ZYBO_1_XGA_test_i/bitmap_disp_cntrler_axi_master_0/inst/dvi_disp_i/BUFR_pixel_clk_io/O]]]] -group [get_clocks clk_fpga_0]


制約をセーブして、再度、論理合成、インプリメント、ビットストリームの生成を行って成功した。制約は問題無いようだ。
  1. 2015年12月19日 18:45 |
  2. 制約
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog19.fc2.com/tb.php/3336-879c1ace
この記事にトラックバックする(FC2ブログユーザー)