Analog Devices の IP コアを使う

25
Analog Devices の IP の のの ( の ) のののの のののの 2016/10/1

Transcript of Analog Devices の IP コアを使う

Page 1: Analog Devices の IP コアを使う

Analog Devices の IP を使う( 有 ) シンビーりょうす

2016/10/1

Page 2: Analog Devices の IP コアを使う

この情報は• Zynq で Analog Devices の IP を使ってみた• なんかちょっと彼らのソースが古い• そしてはまった

情報を公開することで他の人の開発の助けになれば幸いです。Analog Devices が情報をアップデートしたら意味がなくなるかも。なので、これを読む人は日付をチェックしてね。

Page 3: Analog Devices の IP コアを使う

現時点のアナデバの github

• https://github.com/analogdevicesinc/hdl• 最終更新日は

Commits on May 26, 2016 • どういうわけか Vivado の対応が

[Vivado 2015.2.1]• 2015.2 にさらにパッチが当たってます。

Page 4: Analog Devices の IP コアを使う

Vivado 2015.2.1

• まず最初のはまりどころ– Vivado 2015.2.1 じゃないと合成できない– 2015.2 でもエラーになる– もしかしたら簡単なパッチでうまくいくかもしれないけど自信がないので、、、

• Vivado 2015.2.1 をインストール– これで1日目終了

それにしても地味だな絵がない

Page 5: Analog Devices の IP コアを使う

wiki を見ながら合成• https://

wiki.analog.com/resources/fpga/docs/hdl– たぶんこの辺見ながら合成したのだと思う。 ( もう覚えてない、、、 )– 時間もかかる

• 合成済みの IP コアを置いておくので使ってください。– http://www.sinby.com/download/ip

core/analog_devices_hdl_library_160930.zip変なところで URL が切れているのは SPAM 対策のつもり効果があるのかどうかは不明

Page 6: Analog Devices の IP コアを使う

ADV7511 を使いたい• 今回使いたかったのは ADV7511• ターゲットは ZC706– projects/adv7511/zc706/ を合成した (2015.2.1 で )

• 他のターゲットを見ると– ac701,kc705,kcu105,mitx045,vc707,zc702,zed

• でも、 2015.2.1 はインストールしたくない ( でしょ? ) モチベーションの提示が遅い !!

Page 7: Analog Devices の IP コアを使う

合成されたバイナリがある• https://github.com/analogdevicesinc/no-OS– ここから clone する

• no-OS/adv7511/evaluate のしたに各ボードに対応した bit と elf がある。> lsac701/ kc705/ vc707/ zc702/ zc706/ zed/> ls zc706evaluate.bat evaluate.tcl ps7_init.tcl sw.elf system.bit> ls zedevaluate.bat evaluate.tcl ps7_init.tcl sw.elf system.bit

Page 8: Analog Devices の IP コアを使う

バッチファイル確認• バッチファイル evaluate.bat を実行。– 中身は次のようになっている。

• 14.6 に依存• XMD に依存

> cat zc706/evaluate.bat@echo off

IF "%PROCESSOR_ARCHITECTURE%"=="x86" set XMD_DIR=C:\Xilinx\14.6\ISE_DS\EDK\bin\ntIF "%PROCESSOR_ARCHITECTURE%"=="AMD64" set XMD_DIR=C:\Xilinx\14.6\ISE_DS\EDK\bin\nt64

%XMD_DIR%\xmd.exe -tcl evaluate.tcl

pause

Page 9: Analog Devices の IP コアを使う

動かす• Xmd を起動して tcl を実行すれば動く– 実行すべき evaluate.tcl は単純なのでバージョンに依存していないようだ。– ちょこっとかえればバッチファイルもそのまま動く、、、でしょう。– Zed とかもあるので ( 当方動作は未確認 ) これも動くに違いない。

Page 10: Analog Devices の IP コアを使う

動かない !?

• まずちゃんと HDMI からモニタにちゃんとつなぐ。– 立ち上げ時は 640x480 VGA– 後からつないでもだめ (I2C の通信を最初にして、つながっていることを確認しているようだ )

• コンソールもちゃんとつないでメッセージを見る 説明の順番が逆だ、、、最初に機器設定してね。ZC706 HDMI コネクタ -> モニタ USB シリアル -> PC + TeraTerm

Page 11: Analog Devices の IP コアを使う

ここまできたら合成してみる• 結局、合成するのか、、、• http://

qiita.com/yuichiroTCY/items/aa621b1b432f7ceaf909– なんだ、もう誰かがやってるじゃん。– これをよむとちょろっと書き換えると 2015.2 で動くらしい。

Page 12: Analog Devices の IP コアを使う

ソフトウェアの作成• wiki が参考になるが

https://wiki.analog.com/resources/fpga/xilinx/kc705/adv7511

• このままやってもはまります。

Page 13: Analog Devices の IP コアを使う

まずはプロジェクトの作成

Page 14: Analog Devices の IP コアを使う

Empty Application を選ぶ

Page 15: Analog Devices の IP コアを使う

Wiki の通りに import する• インポートすると次のディレクトリができるはず– inc– lib– src

• 勝手のコンパイルが始まるとややこしいので、Build Automatically はオフにしておいた方がよい

Page 16: Analog Devices の IP コアを使う

コンパイラの設定• パスの設定 :include のパス

Page 17: Analog Devices の IP コアを使う

コンパイラの設定• フラグの削除 :vfp と neon を削除

-mfpu=vfpv3 –mfloat-abi=hard を削除

Page 18: Analog Devices の IP コアを使う

リンカの設定• ディレクトリの追加 :lib のパス

Page 19: Analog Devices の IP コアを使う

リンカの設定• ライブラリの追加 :   HDMI_ZynqLib

HDMI_ZynqLib のソースは公開されていない模様。そして、このライブラリが古い、、、

Page 20: Analog Devices の IP コアを使う

リンカの設定• フラグの削除 :vfp と neon を削除

-mfpu=vfpv3 –mfloat-abi=hard だけを削除間違って他を削除しないように !

Page 21: Analog Devices の IP コアを使う

BSP の Makefile 修正• フラグの削除 :vfp と neon を削除

-mfpu=vfpv3 –mfloat-abi=hard だけを削除2か所あるぞ

Page 22: Analog Devices の IP コアを使う

BSP ソースの修正• NEON をオフに: asm_vectors.S を修正(ここでは undef を追加した )

Page 23: Analog Devices の IP コアを使う

BSP ソースの修正• VFP に関連する記述を削除: boot.S を修正(ここでは #if 0 を追加した )

Page 24: Analog Devices の IP コアを使う

これでうまくコンパイルできるはず• ここまで書いていてなんだけど、、、– Analog Devices のライブラリは• ソースが提供されてなさそうだから気を付けろ• ライブラリは古くて NEON と VFP3 に対応していないから気を付けろ• アプリケーションコンパイル時にオプションを気を付けろ• BSP も修正が必要だ

– ってつぶやいただけでよかったりして

Page 25: Analog Devices の IP コアを使う