FC2カウンター FPGAの部屋 Vivado HLS 2014.4で生成したラプラシアンフィルタIPをシミュレーション2
fc2ブログ

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

FPGAの部屋

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

Vivado HLS 2014.4で生成したラプラシアンフィルタIPをシミュレーション2

Vivado HLS 2014.4で生成したラプラシアンフィルタIPをシミュレーション1”の続き。

(追記) Vivado HLS で合成したラプラシアンフィルタのバグの原因は、古いバグありラプラシアンフィルタのCソースコードを使用したためでした。正しいラプラシアンフィルタのCソースコードについては、”Vivado HLS 2014.4で生成したラプラシアンフィルタIPをシミュレーション3(原因が分かった)”をご覧ください。

前回、Vivado HLS 2014.4 でせいせいしたラプラシアンフィルタIP をVivado 2014.4 で、メモリIP やレジスタ値設定用IP などを追加して、ブロック・デザインを生成してシミュレーションを行った。
今回は、シミュレーションをもっと長く行って、ラプラシアンフィルタIP の実行時間が約27秒も掛かる原因を追求する。

110 ms シミュレーションを行った。
すると、2つのラプラシアンフィルタ処理後のデータのDMA Write アクセスがあるのが見えた。M_AXI_LAP_FB -> m_axi_lap_fb_AWVALID などである。
lap_fil_hls_14_4_12_150318.png

DMA Write の間隔を測定した。間隔は 44.85189 ms だった。
lap_fil_hls_14_4_13_150318.png

DMA Write は SVGA 解像度(800x600)では、600個あるはずである。1フレームの経過時間を計測してみると、

44.85189 x600 = 26911.134 ms ≒ 27 sec

となった。
実験結果とぴったり合う。シミュレーションは正しいことが証明された。

どういうことになっているのか?DMA Read 波形を見るために波形を拡大する。
lap_fil_hls_14_4_14_150318.png

上の波形は、最初のラプラシアンフィルタ処理のために3ライン分の画像のピクセル・データをDMA Read してくるところだ。DMA Read の間隔は 55.89 us だった。
M_AXI_CAM_FB -> m_axi_cam_fb_ARADDR[31:0] を見ると、50 us 辺りで 01000c00、100 us 辺りで 01001800、160 us 辺りで 01002400 になっているのがわかると思う。ここまではアドレスを増やしながら画像のピクセル・データをDMA Read してきたのが分かる。
しかし、その次は、220 us、270 us 共に 01002400 になっている。以下、ラプラシアンフィルタ処理後の値をDMA Write するまで同様にアドレスが 01002400 となっている。
DMA Write 後は、1ラインのDMA Read を行うはずなのだが、やはり、同じアドレスのDMA Read が続いている。

同じアドレスのDMA Read が何回行われているかを計算してみよう。

44851.89(us) / 55.89(us) = 802.5(個)

となった。これは、水平のピクセル数 800 に近い。

これは、やはり、Vivado HLS 2014.4 のバグなのではないか?と思う。次は、回避する手段を探ってみようと思う。
  1. 2015年03月18日 04:37 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:2

コメント

単純にx,yのfor文内での読み込み処理がリクエストされているだけだったりして?
  if (x == 1){ // ラインの最初でラインの画素を読み出す
これのelseの位置を間違っていませんか?
  1. 2015/03/19(木) 09:05:19 |
  2. URL |
  3. おる #-
  4. [ 編集 ]

確かにそうですね。ありがとうございます。修正します。
Vivado 2013.4 の時に作って公開したlaplacian_filter.c は合っているのですが、どうして今回、間違っているのか?わかりません?
http://marsee101.blog19.fc2.com/blog-entry-2738.html

間違っているバージョンを間違えてコピーしちゃったかもしれません?
ともかく家に帰ったら早急に修正します。
  1. 2015/03/19(木) 09:28:25 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

コメントの投稿


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

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