FC2カウンター FPGAの部屋 Genasys ZU で Adam Taylor さんの”High Performance Imaging”をやってみる8(マイナス・スラックを解消する)
FC2ブログ

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

FPGAの部屋

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

Genasys ZU で Adam Taylor さんの”High Performance Imaging”をやってみる8(マイナス・スラックを解消する)

Genasys ZU で Adam Taylor さんの”High Performance Imaging”をやってみる7(Vivado HLSでラプラシアン・フィルタを実装する4)”の続き。

Genasys ZU で Adam Taylor さんの”High Performance Imaging”をやってみる7(Vivado HLSでラプラシアン・フィルタを実装する4)”でラプラシアン・フィルタを”High Performance Imaging”の Vivado 2019.1 プロジェクトに追加したのだが、やはりマイナス・スラックが出ている。今回は、これを解消したい。最初に何処でマイナス・スラックが出ているかを確認して、クロック間のタイミング違反だったら Clock Domain Closing 解析を行って問題ないようだったら False Path を設定しよう。

最初に、 Open Implementation Design を開いてタイミング違反を見た。
genasys_zu_filter_25_200828.png

Inter-Clock Paths にタイミング違反があるのが見える。

最初に clk_out1_desgin_1_clk_wiz_1_0 から clk_pl_0 のパスにタイミング違反があるようだ。
genasys_zu_filter_26_200828.png

2番めに clk_out1_desgin_1_clk_wiz_1_0 から mipi_phy_if_0_clk_p_FIFO_WRCLK_OUT のパスにタイミング違反がある。
genasys_zu_filter_27_200828.png

clk_pl_0 から clk_out1_design_1_clk_wiz_0_0 のパスにタイミング違反がある。
genasys_zu_filter_28_200828.png

これらのクロック間の処理が適切かどうかを確認する。
確認方法はVviado の Open Implementation Design を開いている状態で、Reports メニューから Timing -> Report CDC... を選択する。
Report CDC ダイアログが開く。
From に clk_out1_desgin_1_clk_wiz_1_0 を設定し、To に clk_pl_0 を設定した。
genasys_zu_filter_29_200828.png

Unsafe が 1 個あるが ila へのパスだから問題ない。
genasys_zu_filter_30_200828.png

次に、同様に、From に clk_out1_desgin_1_clk_wiz_1_0 を設定し、To に mipi_phy_if_0_clk_p_FIFO_WRCLK_OUT を設定した。
genasys_zu_filter_31_200828.png

このパスには Unsafe が無いので問題ない。
genasys_zu_filter_32_200828.png

最後に、From に clk_pl_0 を設定し、To に clk_out1_desgin_1_clk_wiz_0_0 を設定した。
genasys_zu_filter_33_200828.png

こちらは Unsafe がたんまりあるのだが、ila は関係ないし、リセット回路から vtc への Max Delay の Unsafe なので、(リセットは確かめてないけど、複数クロック・リセットしているだろうし)無視することにした。

更に、クロック間のタイミング・エラーも vtc へのが無いし大丈夫だろう。
genasys_zu_filter_35_200828.png

Open Implementation Design の Edit Timing Constrains をクリックして False Path を設定する。(今は False Path を設定するのが正規な方法ではないかも知れない?)
genasys_zu_filter_36_200828.png

まずは、 clk_out1_desgin_1_clk_wiz_1_0 から clk_pl_0 のパスに False Path を設定する。
genasys_zu_filter_37_200828.png

clk_out1_desgin_1_clk_wiz_1_0 から clk_pl_0 のパスに False Path を設定できた。
genasys_zu_filter_38_200828.png

clk_out1_desgin_1_clk_wiz_1_0 から mipi_phy_if_0_clk_p_FIFO_WRCLK_OUT のパスと clk_pl_0 から clk_out1_design_1_clk_wiz_0_0 のパスに False Path を設定することができた。
genasys_zu_filter_39_200828.png

io.xdc ファイルに制約をセーブした。

もう一度、インプリメンテーション、ビットストリームの生成を行ったところ、マイナス・スラックが無くなった。
genasys_zu_filter_40_200828.png
  1. 2020年08月29日 10:54 |
  2. Genesys_ZU
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/4987-4acf956e
この記事にトラックバックする(FC2ブログユーザー)