Vivado HLS 2014.4 で合成したラプラシアンフィルタIPの高速化16(性能が最大になる設定を探る8、追加2)”で、60 fps を超える速度でラプラシアンフィルタ処理を行うことができた。しかし、Vivado 2014.4 でインプリメントを行ったところタイミング制約のエラーが出てしまった。タイミング制約のエラーを無くしてみようと思う。

タイミング制約のエラーを無くす方法だが、少しくらいのタイミング制約エラーならば、インプリメント時のStrategy を変更してインプリメントを行う方法があるので、試してみた。(なお、twitter で hiyuh さんがつぶやいていたので、わかったのだった。 hiyuh さん、いつもお世話になっております。。。)

まず、そのやり方を説明しよう。

最初に、Vivado のFlow Navigator のImprementation -> Run Implementation を右クリックして右クリックメニューから Creater Implementaion Runs... を選択する。
feefc6b6.png


Create New Runs ダイアログが開く。
dc125576.png


Configure Implementaion Runs で、Strategy をクリックすると下にリストが出てくるので、適当なStrategy を選ぶ。
e10048f7.png


Strategy を選択した。
151816e3.png


Launchi Options はデフォルトのままとした。
d1d78fa9.png


Create New Runs Summary が表示された。Finish ボタンをクリックした。
e73775e4.png


Design Runs ウインドウを見ると、インプリメントが始まっている。
ffb662e1.png


これで、25のStrategy が全て終了した。その結果だ。3つタイミング制約を満たしているStrategy がある。
64214262.png


それは、Performance_ExplorePostRoutePhysOpt、Performance_ExploreSLLs、Performance_Retiming だった。
Strategy のカテゴリは、

Performance (パフォーマンス)
Area (エリア)
Power (消費電力)
Flow (フロー)
Congestion (密集)

の5つに分かれるようだ。
Vivado のインプリメントのStrategy については、”Vivado Design Suite ユーザーガイド インプリメンテーシ ョ ン UG904 (v2014.4) 2014 年 11 月 19 日”の124ページ、”インプリメンテーシ ョ ンのカテゴリ、 ス トラテジの説明、 および -directive の設定”を参照して欲しい。

一番、性能が良いPerformance_ExploreSLLs をアクティブにしてみよう。

Performance_ExploreSLLs を右クリックして右クリックメニューから、Make Active を選択する。
e7eb2de2.png


Performance_ExploreSLLs がアクティブになった。
13b5a40c.png


これで、Vivado でビットストリームを行った。Performance_ExploreSLLs が選択されているのが、Worst Nagative Slack (WNS) からも分かる。
a4706f96.png


これで、最速のラプラシアンフィルタ処理IP のプロジェクトもタイミング制約をクリアした。