FC2カウンター FPGAの部屋 Vivado HLS の合成でEstimated がTarget の制約を満たせなかったときの処置
FC2ブログ

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

FPGAの部屋

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

Vivado HLS の合成でEstimated がTarget の制約を満たせなかったときの処置

Vivado HLS の合成でEstimated の値がTarget を満たせなかったときの処置を@hiyuh さんに教わったので書いておこう。

今まで、Vivado HLS の合成でEstimated の値がTarget を満たせなかったときは、Solution メニューからSolution Settings ダイアログの Synthesis でClock Period を 短い周期にしていた。それだとタイミング制約が変更されてしまうので、Uncertainty を変更したほうが良いということだ。

ラプラシアンフィルタの lap_filter4_axim でVivado HLS 2017.3 を使用して、C コードの合成を行うと、Target が 10.00 ns に対して、Estimated が 11.31 ns とタイミング違反になってしまう。
Vivado_HLS_4_171213.png

これを修正するために、Solution メニューからSolution Settings ダイアログの Synthesis でClock Period を 8 ns に設定していた。
Vivado_HLS_5_171213.png

すると、Target が 8.00 ns となるものの、Estimated は 9.40 ns となり、10 ns を満たすので、これでVivado に持っていっての合成も問題なかった。
Vivado_HLS_6_171213.png

しかし、C/RTL コシミュレーションのクロック周期は 8 ns となってしまうのと、IP にしたときのタイミング制約 lap_filter_axim_ooc.xdc を見ると、クロック周期の制約が 8.000 ns になってしまっている。実際は、Vivado での制約は 10 ns であるので、オーバーなタイミング制約になっているということが言えると思う。
Vivado_HLS_7_171213.png

Vivado_HLS_8_171213.png

これをツィーターで@hiyuh さんに指摘してもらった。解決方法としては、Solution メニューからSolution Settings ダイアログの Synthesis でClock Period を 短い周期に変更するのではなく、Uncertainty を増やすということだ。

Uncertainty はクロック周期のマージンでクロックのばらつき具合を示す。よって、これを増やすと、結果的にタイミング制約の周期の制約の値が小さくなる。つまり、10 ns では、Uncertainty のデフォルト値は 12.5 % の 1.25 ns だが、これを増やすと実質的にクロックのタイミング制約がきつくなる。

さてここで、Solution メニューからSolution Settings ダイアログの Synthesis でUncertainty の値を 3 ns にしてみよう。
Vivado_HLS_9_171213.png

このC コードの合成結果は、Target が 10.00 ns で、Estimated が 9.40 ns、Uncertainty が 3.00 ns になって、タイミング制約を満たすようになった。
Vivado_HLS_10_171213.png

これだと、C/RTL コシミュレーションでもクロック周期が 10 ns で本来の値となっている。
IP にしたときのタイミング制約 lap_filter_axim_ooc.xdc を見ても、クロックのタイミング制約は 10.000 ns となっていて、問題が無い。
Vivado_HLS_11_171213.png

Vivado HLS の合成でEstimated の値がTarget を満たせなかったときは、Solution メニューからSolution Settings ダイアログの Synthesis でUncertainty を大きくすることにしよう。
  1. 2017年12月13日 05:25 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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