FC2カウンター FPGAの部屋 ソフトウェアのCソースコードをVivado HLS 2014.4 で高位合成したIPをシミュレーション

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

FPGAの部屋

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

ソフトウェアのCソースコードをVivado HLS 2014.4 で高位合成したIPをシミュレーション

今回は、”ラプラシアンフィルタのソフトウェアとハードウェアの速度の比較2”で高位合成したIPをシミュレーションしてみることにした。

Vivado HLS で高位合成したIPのシミュレーションについては、以下のブログ記事を参照のこと。
Vivado HLS 2014.1で生成したラプラシアンフィルタIPをシミュレーション1(mem_sim_axi_slave IP の作製)
Vivado HLS 2014.1で生成したラプラシアンフィルタIPをシミュレーション2(reg_set_axi_lite_master IP の作製)
Vivado HLS 2014.1で生成したラプラシアンフィルタIPをシミュレーション3( mem_sim_axi_slave IP の変更1)
Vivado HLS 2014.1で生成したラプラシアンフィルタIPをシミュレーション4(mem_sim_axi_slave IP の変更2)
Vivado HLS 2014.1で生成したラプラシアンフィルタIPをシミュレーション5(シミュレーション用プロジェクトの作製)
Vivado HLS 2014.1で生成したラプラシアンフィルタIPをシミュレーション6(シミュレーション)
Vivado HLS 2014.4で生成したラプラシアンフィルタIPをシミュレーション1
Vivado HLS 2014.4で生成したラプラシアンフィルタIPをシミュレーション2

プロジェクトをコピーして、ラプラシアンフィルタIPの中身を入れ替えた。

プロジェクトを立ちあげ、IPのアップデートを行った。

シミュレーションを行った。
soft_hard_comp_11_150702.png

カメラデータをRead するAXI4 Master Read とラプラシアンフィルタ処理後のデータをWrite するAXI4 Master Writeを示す。
soft_hard_comp_12_150703.png

最初に1ライン分の 0 を Write して、次に2ラインをRead するのだが、そこだけはバースト転送になっているようだ。

次に拡大して見ていこう。
2ライン分のバースト Read が終了して、1画素ずつRead してラプラシアンフィルタ処理を行い、Writeする部分を拡大する。
soft_hard_comp_13_150703.png

Read も Write もすべてのアクセスがシングル・アクセルになっている。
この最初のラプラシアンフィルタ処理の時にRead するカメラデータのアドレスは 0x01001900 となる。この位置は185.865 us となった。

次のラインのラプラシアンフィルタ処理を見ていこう。次のラインの先頭アドレスは、0x01002580 なので、そのアドレスをRead しているところを探した。ここがそうで、455.655 us の位置だった。
soft_hard_comp_14_150703.png

つまり、1ライン分の処理に

455.655 us - 185.865 us = 269.79 us

となった。これが 600 ライン分となるといくつになるかを計算した。これは、

269.79 us * 600 = 161.874 ms

となった。
これは、実機で確認したラプラシアンフィルタ処理のみの経過時間 509 ms の 32% 程度だ。どこかで時間がかかっているのかもしれない?

最後に、AXI4 Master Write アクセス間の時間を測ってみたところ、340 ns となった。クロックは 100 MHz なので、34クロックかかっていることになる。
soft_hard_comp_15_150703.png
  1. 2015年07月03日 05:19 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

トラックバック URL
http://marsee101.blog19.fc2.com/tb.php/3190-ad359e45
この記事にトラックバックする(FC2ブログユーザー)