Analog Devices の IP コアを使う
Transcript of Analog Devices の IP コアを使う
Analog Devices の IP を使う( 有 ) シンビーりょうす
2016/10/1
この情報は• Zynq で Analog Devices の IP を使ってみた• なんかちょっと彼らのソースが古い• そしてはまった
情報を公開することで他の人の開発の助けになれば幸いです。Analog Devices が情報をアップデートしたら意味がなくなるかも。なので、これを読む人は日付をチェックしてね。
現時点のアナデバの github
• https://github.com/analogdevicesinc/hdl• 最終更新日は
Commits on May 26, 2016 • どういうわけか Vivado の対応が
[Vivado 2015.2.1]• 2015.2 にさらにパッチが当たってます。
Vivado 2015.2.1
• まず最初のはまりどころ– Vivado 2015.2.1 じゃないと合成できない– 2015.2 でもエラーになる– もしかしたら簡単なパッチでうまくいくかもしれないけど自信がないので、、、
• Vivado 2015.2.1 をインストール– これで1日目終了
それにしても地味だな絵がない
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 対策のつもり効果があるのかどうかは不明
ADV7511 を使いたい• 今回使いたかったのは ADV7511• ターゲットは ZC706– projects/adv7511/zc706/ を合成した (2015.2.1 で )
• 他のターゲットを見ると– ac701,kc705,kcu105,mitx045,vc707,zc702,zed
• でも、 2015.2.1 はインストールしたくない ( でしょ? ) モチベーションの提示が遅い !!
合成されたバイナリがある• 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
バッチファイル確認• バッチファイル 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
動かす• Xmd を起動して tcl を実行すれば動く– 実行すべき evaluate.tcl は単純なのでバージョンに依存していないようだ。– ちょこっとかえればバッチファイルもそのまま動く、、、でしょう。– Zed とかもあるので ( 当方動作は未確認 ) これも動くに違いない。
動かない !?
• まずちゃんと HDMI からモニタにちゃんとつなぐ。– 立ち上げ時は 640x480 VGA– 後からつないでもだめ (I2C の通信を最初にして、つながっていることを確認しているようだ )
• コンソールもちゃんとつないでメッセージを見る 説明の順番が逆だ、、、最初に機器設定してね。ZC706 HDMI コネクタ -> モニタ USB シリアル -> PC + TeraTerm
ここまできたら合成してみる• 結局、合成するのか、、、• http://
qiita.com/yuichiroTCY/items/aa621b1b432f7ceaf909– なんだ、もう誰かがやってるじゃん。– これをよむとちょろっと書き換えると 2015.2 で動くらしい。
ソフトウェアの作成• wiki が参考になるが
https://wiki.analog.com/resources/fpga/xilinx/kc705/adv7511
• このままやってもはまります。
まずはプロジェクトの作成
Empty Application を選ぶ
Wiki の通りに import する• インポートすると次のディレクトリができるはず– inc– lib– src
• 勝手のコンパイルが始まるとややこしいので、Build Automatically はオフにしておいた方がよい
コンパイラの設定• パスの設定 :include のパス
コンパイラの設定• フラグの削除 :vfp と neon を削除
-mfpu=vfpv3 –mfloat-abi=hard を削除
リンカの設定• ディレクトリの追加 :lib のパス
リンカの設定• ライブラリの追加 : HDMI_ZynqLib
HDMI_ZynqLib のソースは公開されていない模様。そして、このライブラリが古い、、、
リンカの設定• フラグの削除 :vfp と neon を削除
-mfpu=vfpv3 –mfloat-abi=hard だけを削除間違って他を削除しないように !
BSP の Makefile 修正• フラグの削除 :vfp と neon を削除
-mfpu=vfpv3 –mfloat-abi=hard だけを削除2か所あるぞ
BSP ソースの修正• NEON をオフに: asm_vectors.S を修正(ここでは undef を追加した )
BSP ソースの修正• VFP に関連する記述を削除: boot.S を修正(ここでは #if 0 を追加した )
これでうまくコンパイルできるはず• ここまで書いていてなんだけど、、、– Analog Devices のライブラリは• ソースが提供されてなさそうだから気を付けろ• ライブラリは古くて NEON と VFP3 に対応していないから気を付けろ• アプリケーションコンパイル時にオプションを気を付けろ• BSP も修正が必要だ
– ってつぶやいただけでよかったりして