FC2カウンター FPGAの部屋 Vivado HLS 2013.4でラプラシアン・フィルタ関数をaxi masterモジュールにする5(単体シミュレーション)
FC2ブログ

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

FPGAの部屋

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

Vivado HLS 2013.4でラプラシアン・フィルタ関数をaxi masterモジュールにする5(単体シミュレーション)

Vivado HLS 2013.4でラプラシアン・フィルタ関数をaxi masterモジュールにする4”の続き。

前回、Vivado HLS 2013.4 でラプラシアンフィルタのAXI4 Master IPを生成できたので、今度は単体シミュレーションを行った。

ISE14.7 のプロジェクトを作製し、その下にXPSプロジェクトを作った。ISEのプロジェクトを下に示す。
Vivado_HLS_2013_4_19_140208.png

XPSプロジェクトを下に示す。
Vivado_HLS_2013_4_20_140208.png

lap_filter_axim_top_0 が Vivado HLS 2013.4 で作ったラプラシアンフィルタのAXI4 Master IPで、mem_sim_axi_slave_0 は、汎用のメモリモデル(”AXI4 Slave インターフェースのメモリ・シミュレーション用 IP の作製2(シミュレーション)”参照)、reg_set_axi_lite_master_0 は設定レジスタを設定する AXI Lite Master IP(”AXI VDMAのレジスタ設定用AXI Lite Master IPの作製2(シミュレーション)”参照)だ。

各 AXI Slave のアドレスを下に示す。
Vivado_HLS_2013_4_21_140208.png

これで、XPSプロジェクト内で閉じてシミュレーションを行えるはずだ。

lap_filter_axim_top_0 の AXI Lite Slave部分のレジスタのアドレスオフセットを引用する。

//------------------------Address Info-------------------
// 0x00 : Control signals
// bit 0 - ap_start (Read/Write/COH)
// bit 1 - ap_done (Read/COR)
// bit 2 - ap_idle (Read)
// bit 3 - ap_ready (Read)
// bit 7 - auto_restart (Read/Write)
// others - reserved
// 0x04 : Global Interrupt Enable Register
// bit 0 - Global Interrupt Enable (Read/Write)
// others - reserved
// 0x08 : IP Interrupt Enable Register (Read/Write)
// bit 0 - Channel 0 (ap_done)
// bit 1 - Channel 1 (ap_ready)
// others - reserved
// 0x0c : IP Interrupt Status Register (Read/TOW)
// bit 0 - Channel 0 (ap_done)
// bit 1 - Channel 1 (ap_ready)
// others - reserved
// 0x10 : reserved
// 0x14 : Data signal of cam_addr
// bit 31~0 - cam_addr[31:0] (Read/Write)
// 0x18 : reserved
// 0x1c : Data signal of lap_addr
// bit 31~0 - lap_addr[31:0] (Read/Write)
// 0x20 : Data signal of ap_return
// bit 31~0 - ap_return[31:0] (Read)
// (SC = Self Clear, COR = Clear on Read, TOW = Toggle on Write, COH = Clear on Handshake)


reg_set_axi_lite_master_0 のレジスタ設定用コマンドファイルを下に示す。

10000014
00000000
1000001c
00075300
10000000
00000001
ffffffff


これで用意は整ったので、シミュレーションを開始した。ISimの画面を下に示す。
Vivado_HLS_2013_4_22_140208.png

上のシミュレーション波形を見て、やっていることを解析した結果を下に示す。

1.最初のラインのオール0をラプラシアンフィルタの結果としてWriteする。

2.元画像 3ラインをReadする。

3.ラプラシアンフィルタの結果を1ライン分 Writeする。

4.次からは、1ラインずつReadして、ラプラシアンフィルタの結果をWriteする。


4.の間隔は 約 146usec であることがわかった。単純に 600ラインとすると、146usec x 600ライン = 87.6msec となる。必要なフレームレート60fps = 16.7msec よりも遅いという結果になった。

Vivado HLS 2013.4でラプラシアン・フィルタ関数をaxi masterモジュールにする6(実機でテスト)”に続く。
  1. 2014年02月08日 07:24 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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