FC2カウンター FPGAの部屋 ZedBoard Linux のフレームバッファにカメラ画像を表示3(ChipScopeで観察3)
fc2ブログ

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

FPGAの部屋

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

ZedBoard Linux のフレームバッファにカメラ画像を表示3(ChipScopeで観察3)

前回はChipScope Pro を挿入してインプリメントすることが出来た。今回はChipScope Pro Analyzer を使用して、実際にAXI VDMA のAXIバスのアクセスの様子を見ていこう。

・最初に、Windows のスタートメニューからChipScope Pro Analyzer を単体で立ち上げた。
・左上端のアイコンOpen Cable/Search JTAG Chain をクリックして、ダウンロード・ケーブルを認識させる。
ZedBoard_Linux_27_130130.png

・ARMプロセッサとZynq XC7020 が認識される。
ZedBoard_Linux_28_130130.png

・ChipScope Pro Analyzer に信号が表示されたが、まだ信号名が入っていない。
ZedBoard_Linux_29_130130.png

・信号名を入力する。FileメニューからImport... を選択する。
ZedBoard_Linux_30_130130.png

・ZedBoard_OOB_Design\hw\xps_proj\implementation\chipscope_axi_monitor_0_wrapper フォルダの下に、chipscope_axi_monitor_0.cdc があるので、Select New File ボタンをクリックして選択する。下のリストボックスでDEV: 1 UNIT:0 (ILA) が表示されているのを確認する。
ZedBoard_Linux_31_130130.png

・AXIバスの信号名が入って、バスが自動的にまとまられた。
ZedBoard_Linux_32_130130.png

・次に、もう1つのChipScope Pro のチャネルも信号名を入力する。同様にFileメニューからImport... を選択し、ZedBoard_OOB_Design\hw\xps_proj\implementation\chipscope_ila_0_wrapper フォルダの下にchipscope_ila_0.cdc がSelect New File ボタンをクリックして選択する。下のリストボックスでDEV: 1 UNIT:1 (ILA) を選択する。
ZedBoard_Linux_33_130130.png

・こちらの信号名も入力された。
ZedBoard_Linux_34_130130.png

・AXIバスの信号をフリーランでキャプチャした。Readのトランザクションが並んでいることがわかる。(AXIバスの動作周波数は175MHz動作で、HD解像度のピクセルクロックと同じに設定されているようだ)
ZedBoard_Linux_35_130130.png

・1つのAXIバスのReadトランザクションを拡大してみた。
ZedBoard_Linux_36_130130.png

0x1A012F00 から8バイト単位で16個のピクセルデータをReadしているのがわかった。

・0x1A0XXXXX アドレスにアクセスが来ているようだったので、0x1A000000 & ARVALID & ARREADY でトリガを掛けた。
ZedBoard_Linux_37_130130.png

・トリガが掛かった。
ZedBoard_Linux_38_130130.png

・最初のAXIバスのReadトランザクションを拡大した。
ZedBoard_Linux_39_130130.png

・トリガを変更して、0x1BXXXXXX & ARVALID & ARREADY でトリガを掛けたら、トリガが掛からなかった。
これでスタートアドレスが、0x1A000000 であることがわかった

次にエンドアドレスを検証してみよう。すべてのピクセルデータは、1920ピクセル x 1080ライン x 4バイト = 8294400 = 0x7E9000 なので、エンドアドレス+1 は、0x1A7E9000 であるはずだ。

・0x1A7E8FXX & ARVALID & ARREADY でトリガを掛けた。
ZedBoard_Linux_40_130130.png

・計算通りに、トリガが掛かってからのアクセスは2つしか無い。
ZedBoard_Linux_41_130130.png

・最後のトランザクションを拡大した。
ZedBoard_Linux_42_130130.png

・0x1A7E9000 & ARVALID & ARREADY でトリガを掛けたところ、トリガは掛からなかった。
ZedBoard_Linux_43_130130.png

これで、アドレスは、0x1A000000 <= フレームバッファ・アドレス < 0x1A7E9000 で確定した。

フレームバッファのアドレスがわかったので、ここにカメラのデータを書き込もうと思うが、このペンギン画面はある一定時間の後に、(10分くらいだろうか?)消えてしまう。これはわざと消しているのか?それともバグで消えてしまうのか?今のところ分からない。ちなみに、アナログ・デバイセズ社のリファレンス・デザインは、1時間動作させているが、正常に動作している。
とりあえず、このアドレスを使用して、今のカメラ表示回路を載せようと思う。HDMIは既存のシステムが使用しているので、VGAポートだけに出力する。800 x 600 の現在の画像で出力するので、HDMI画面は表示されている時は乱れるが、それでOKとしよう。
  1. 2013年01月31日 05:08 |
  2. ZedBoard
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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