FC2カウンター FPGAの部屋 ラプラシアン・フィルタのAXI4 Master IPを作製する1(仕様の検討)
FC2ブログ

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

FPGAの部屋

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

ラプラシアン・フィルタのAXI4 Master IPを作製する1(仕様の検討)

Vivado HLSでラプラシアン・フィルタをAXI Master で構成するC言語のソースを書いて、IPとしてZedBoardのLinux用ハードウェアに実装してみたが、動作しなかった。そこで、Vivado HLSが出力したIPのトップファイルのポート構成はそのままで、自分でHDLを書いて、ラプラシアン・フィルタのAXI4 Master IPを完成させてみることにした。

関連するブログ記事を列挙する。

Vivado HLSでラプラシアン・フィルタ関数をaxi masterモジュールにする1
Vivado HLSでラプラシアン・フィルタ関数をaxi masterモジュールにする2(Vivado HLSの出力したIPのトップファイルのポート構成はここに書いてあります)
Vivado HLSで作ったラプラシアン・フィルタAXI4 Master IPを使う1
Vivado HLSで作ったラプラシアン・フィルタAXI4 Master IPを使う2
Vivado HLSで作ったラプラシアン・フィルタAXI4 Master IPを使う3


通常では、ビットマップ・ディスプレイ・コントローラのピクセルクロック、もしくはカメラ側ですでにラプラシアン・フィルタを掛ける時は、カメラ・コントローラのピクセルクロックでラプラシアン・フィルタをリアルタイムに掛けるのが通常だと思う。今回は、あくまでC言語から高位合成で合成されたHDLをイメージして、現在の動作周波数が100MHzのAXI4バスクロックの元にシーケンシャルに実行するHDLを作製して、その性能を見てみようと思う。

通常のHDLで実装する時は、1ピクセル画像データが来たら、今までためてきた2ラインのピクセルデータと現在のラインの前の2つのピクセルデータを使って、ラプラシアン・フィルタの値を計算して保存する。現在のピクセルデータはラインバッファに格納する。このように1クロックごとにいろいろな処理を並列して行う。
ラプラシアン・フィルタのハードウェア構成のブロック図を下に示す。
edge_detect_11_091111.png

さて、上のブロック図はカメラから来たピクセルデータを直接受け取って、ラプラシアン・フィルタを掛けている。通常ハードウェアとして実行する場合には、厳密にピクセルデータを変換するフィルタとして書くことができる。それは、時間を制御することができるからだ。それでは、時間軸を書くことが出来ない通常のC言語でハードウェアを書く場合は、一旦メモリ(BRAMを含む)から読んできたデータを処理する以外にないだろう?と思う。
今回はハードウェアでもそれに習って書くことにする。つまり、

1.フレーム・バッファから1ラインRead
2.Readしたピクセルデータを使ってラプラシアン・フィルタを掛けてラインバッファに格納する
3.ラプラシアン・フィルタの値が入ったラインバッファを異なるフレーム・バッファにWrite


この3つをシーケンシャルに実行してみようと思う。

このように実装しても、現在のAXIバスの動作周波数は100MHzで、SVGAのピクセルクロックの40MHzよりも十分に高いので、フレームレートは結構行くのではないだろうか?と思う。

これができたら、今度は、1.2.3.を3つをスレッドとみなして、スレッドの並列化を行ってみよう。これはC言語で記述できる1ポートのRAMを使ってもReadで使用するラインバッファを4つにして、ラプラシアン・フィルタの結果を格納するラインバッファを2つ使えば問題無いと思う。それぞれの処理の終了時にバリア同期を掛ける。この様な実装がHLSのハードウェア化記述としては、より正しいのでは?と思っている。

(注)”画像のフレームバッファ2(ライフサイクルをシミュレーション)”に示すように、動画に乱れが出ないかどうかは別問題です。あくまで静止画に於いて、フレームレートで変換できるのを目指しています。動画で画像の乱れが無いように実装するにはあくまでHDLで実装する必要があると思います。
  1. 2013年10月23日 05:43 |
  2. IP
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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