”
ZynqBerryZero で HDMI にラプラシアン・フィルタ画像を出力する1(Vitis HLS 2020.2編1)”の続き。
ZynqBerryZero 用のラプラシアン・フィルタを Vitis HLS 2020.2 で実装してみようということで、前回は、Vitis HLS 2020.2 の lap_filter_axis プロジェクトを作成し、ソースコードやテストベンチを作成して、 C シミュレーションを行った。今回は、C コードの合成、 C/RTL 協調シミュレーション、 Export RTL を行って、 IP を作成する。
Vitis HLS 2020.2 の Project メニューから Project Settings... を選択する。
Project Settings ダイアログが開く。
Synthesis をクリックして、Top Function に lap_filter_axis 関数を設定する。

Solution メニューから Run C Synthesis -> C Synthesis を選択して、 C コードの合成を行う。
C コードの合成が成功した。結果を示す。


タイミング・バイオレーションと言われているが、大丈夫そうだ。
Analysis を見てみよう。

タイミング・バイオレーション部分を見ると、最初に読み込み済みのストリート・データを読み飛ばすところだった。
次に、 Solution メニューから Run C/RTL Cosimulation を選択して、 C/RTL 協調シミュレーションを行う。
Co-simulation Dialog が表示された。
Dump Trace を all に設定した。

C/RTL 協調シミュレーションが成功した。
Latency は 3089 クリックだった。 64 ピクセル X 48 行のフォントなので、総計 3072 ピクセルだ。よって、 3089 / 3072 ≒ 1.01 クロック/ピクセルとなった。性能が良いと思う。

C/RTL 協調シミュレーションの波形を見ても、 ins_TREDY, outs_TVALID 共にほとんど 1 なので、スループットが良いということが言える。

Solution メニューから Export RTL を選択した。
Export RTL ダイアログが開く。
Vivado synthesis, place and route にチェックを入れた。

Export RTL の結果を示す。
CP achieved post-implementation が 7.824 ns なので、大丈夫そうだ。

lap_filter_axis_202 ディレクトリの下の solution1/impl ディレクトリに export.zip と solution1/impl/ip ディレクトリに xilinx_com_hls_lap_filter_axis_1_0.zip ができているが、これらのファイルの違いは何だろう?

双方ともにディレクトリを作成して解凍し、比較したのだが、同じものだった。
- 2020年12月13日 09:32 |
- ZynqBerryZero
-
| トラックバック:0
-
| コメント:0