”並列ステレオカメラによる距離の測定5(ZYBO 0 のハードウェア4)”の続き。
HDMI 出力が安定しない原因はBUFR でOSERDES で使用する5倍のピクセルクロックから5分周してピクセルクロックを作製する時に制約を掛けていないためだった。(”
BUFR でクロックを分周する場合は制約を追加する必要がある(ビットマップ・ディスプレイ・コントローラ IP のHDMI 出力)”参照)
その後、ビットマップ・ディスプレイ・コントローラIP に制約を入れて問題なく動作した。(”
プロジェクトにインスタンスされているIPに制約を追加する”参照)
今回は、カメラ画像出力はできたのだが、タイミング違反が出ていたので、それを解消してから、ラプラシアンフィルタ出力するようにソフトウェアを追加する。
今回の lap_fil_on.c と cam_return.c のソースコードは、”
AXI4-Stream版ラプラシアンフィルタIPのカメラ表示システム10(ラプラシアンフィルタ処理)”のCソースコードをそのまま使用している。
最初にタイミング違反を解消しよう。
現在のVivado 2015.3 の表示を示す。

タイミング違反が出ている。
Flow Navigator -> Implemented Design -> Report Timing Summary をクリックして、タイミング違反を観察する。

ビットマップ・ディスプレイ・コントローラIP 1 の pixclk と clk_fpga_0 のクロック間のタイミング違反だった。この間のタイミング解析を止めさせれば問題ない。
Flow Navigator -> Implemented Design -> Edit Timing Constraints をクリックして、ビットマップ・ディスプレイ・コントローラIP 1 の pixclk と clk_fpga_0 のクロック間を False Path に指定した。

set_false_path -from [get_clocks ZYBO_0_i/bitmap_disp_cntrler_axi_master_1/inst/dvi_disp_i/pixclk] -to [get_clocks clk_fpga_0]
set_false_path -from [get_clocks clk_fpga_0] -to [get_clocks ZYBO_0_i/bitmap_disp_cntrler_axi_master_1/inst/dvi_disp_i/pixclk]
Timing タブのRerun を実行すると、False Path を設定した時のタイミングが見える。(たぶん)

Timing タブのRerun を実行すると、タイミング違反が解消されるようだ。

もう一度、論理合成、インプリメント、ビットストリームの生成を行った。予想通り、タイミング違反は解消されていた。

Project Summary を示す。

ハードウェアをビットストリームごとエクスポートして、SDKを立ち上げた。
cam_disp_elf を再度実行してみたが、HDMI 出力は問題なかった。

SDK の File メニューからNew -> Application Project を選択する。
Project name に lap_fil_on と入力した。Next > ボタンをクリックした。OS Platform は取りあえず、ベアメタル・アプリケーションとするので、デフォルトの standalone に設定した。Next > ボタンをクリックする。

Templates で Empty Application を選択して、Finish ボタンをクリックした。

lap_fil_on プロジェクトの src フォルダに lap_fil_on.c を新規作成して、既存の lap_fil_on.c のソースコードをコピーした。

lap_fil_on.elf を右クリックし、右クリックメニューから Run AS -> Launch on Hardware (GDB) を選択するとラプラシアンフィルタ処理画像が表示された。

元画像はこれだ。

次に、cam_return Application Project を作製した。BSP は lap_fil_on_bsp を使用した。

cam_return プロジェクトの src フォルダに cam_return.c を新規作成して、既存の cam_return.c のソースコードをコピーした。

cam_return.elf を右クリックし、右クリックメニューから Run AS -> Launch on Hardware (GDB) を選択するとカメラ画像に戻った。
これで、たぶん 5 fps ととてもフレームレートが遅いのだが、一応、ZYBO_0 として使用できるプロジェクトができたと思う。
次は、これをUbuntu 14.04 LTS で動作させるためのソフトウェアを書くことにしよう。
- 2015年11月23日 05:47 |
- ZYBO
-
| トラックバック:0
-
| コメント:0