”
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 を開いてタイミング違反を見た。

Inter-Clock Paths にタイミング違反があるのが見える。
最初に clk_out1_desgin_1_clk_wiz_1_0 から clk_pl_0 のパスにタイミング違反があるようだ。

2番めに 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 のパスにタイミング違反がある。

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

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

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

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

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

こちらは Unsafe がたんまりあるのだが、ila は関係ないし、リセット回路から vtc への Max Delay の Unsafe なので、(リセットは確かめてないけど、複数クロック・リセットしているだろうし)無視することにした。
更に、クロック間のタイミング・エラーも vtc へのが無いし大丈夫だろう。

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

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

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

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 を設定することができた。

io.xdc ファイルに制約をセーブした。
もう一度、インプリメンテーション、ビットストリームの生成を行ったところ、マイナス・スラックが無くなった。
- 2020年08月29日 10:54 |
- Genesys_ZU
-
| トラックバック:0
-
| コメント:0