SlideShare a Scribd company logo
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 がある。
> ls
ac701/ kc705/ vc707/ zc702/ zc706/ zed/
> ls zc706
evaluate.bat evaluate.tcl ps7_init.tcl sw.elf system.bit
> ls zed
evaluate.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:Xilinx14.6ISE_DSEDKbinnt
IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" set
XMD_DIR=C:Xilinx14.6ISE_DSEDKbinnt64
%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/aa621b1b
432f7ceaf909
– なんだ、もう誰かがやってるじゃん。
– これをよむとちょろっと書き換えると 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 も修正が必要だ
– ってつぶやいただけでよかったりして
Analog Devices の IP コアを使う

More Related Content

PPTX
PYNQ 祭り: Pmod のプログラミング
PPTX
PYNQで○○してみた!
PDF
PYNQ祭りLT todotani
PPTX
PYNQ単体でUIを表示してみる(PYNQまつり)
PDF
Pynq祭り資料
PDF
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
PDF
Sw技術者に送るfpga入門
PDF
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
PYNQ 祭り: Pmod のプログラミング
PYNQで○○してみた!
PYNQ祭りLT todotani
PYNQ単体でUIを表示してみる(PYNQまつり)
Pynq祭り資料
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Sw技術者に送るfpga入門
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)

What's hot (20)

PDF
Gpu vs fpga
PDF
PDF
配布用Raspberry pi+arduino+scratchでフィジカルコンピューティング体験!
PDF
ソフトウェア技術者はFPGAをどのように使うか
PDF
Pynqでカメラ画像をリアルタイムfastx コーナー検出
PPT
20140310 fpgax
PDF
Takep lpc1114-190614
PDF
Linux : PSCI
PPTX
M5StackをRustで動かす
PPTX
Deep learning demonstration using fpga
PPT
FPGA
PDF
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PPTX
FPGAって、何?
PDF
RaspberryPiとawsで取組んだ自作IoT
PDF
Fuji sakuraでmbedを!
PDF
増え続ける情報に対応するためのFPGA基礎知識
PPTX
FPGAでベンチマークしたときに苦労した話@fpgax#12
PDF
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
PDF
FPGAを用いたEdge AIの現状
PDF
FPGAによるHDMI to LVDS変換器
Gpu vs fpga
配布用Raspberry pi+arduino+scratchでフィジカルコンピューティング体験!
ソフトウェア技術者はFPGAをどのように使うか
Pynqでカメラ画像をリアルタイムfastx コーナー検出
20140310 fpgax
Takep lpc1114-190614
Linux : PSCI
M5StackをRustで動かす
Deep learning demonstration using fpga
FPGA
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
FPGAって、何?
RaspberryPiとawsで取組んだ自作IoT
Fuji sakuraでmbedを!
増え続ける情報に対応するためのFPGA基礎知識
FPGAでベンチマークしたときに苦労した話@fpgax#12
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
FPGAを用いたEdge AIの現状
FPGAによるHDMI to LVDS変換器
Ad

Viewers also liked (8)

PPTX
数値計算のための Python + FPGA
PPTX
高速化のポイント
PPTX
20周遅れ
PPTX
SDSoC と Vivado
PDF
Zynq+PyCoRAM(+Debian)入門
PPTX
Polyphony IO まとめ
PDF
How to Make Awesome SlideShares: Tips & Tricks
PDF
Getting Started With SlideShare
数値計算のための Python + FPGA
高速化のポイント
20周遅れ
SDSoC と Vivado
Zynq+PyCoRAM(+Debian)入門
Polyphony IO まとめ
How to Make Awesome SlideShares: Tips & Tricks
Getting Started With SlideShare
Ad

More from ryos36 (14)

PPTX
Pycairo を使ってみる その1
PPTX
ストーリーとは
PPTX
CNN でテニス選手の動きを解析する
PPTX
Polyphony の行く末(2018/3/3)
PPTX
Polyphony の並列化
PPTX
Polyphony 新機能ツアー
PPTX
Polyphony: Python ではじめる FPGA
PPTX
Stellaris を使った組み込みアプリ開発ガイド
PPTX
研究者のための Python による FPGA 入門
PPTX
SDSoC でストリーム
PPTX
90分 Scheme to C(勝手に抄訳版)
PPTX
並列計算への道 2015年版
PDF
NiosII と RTOS について
PPTX
Synthesijer で作るFORTH仮想マシン
Pycairo を使ってみる その1
ストーリーとは
CNN でテニス選手の動きを解析する
Polyphony の行く末(2018/3/3)
Polyphony の並列化
Polyphony 新機能ツアー
Polyphony: Python ではじめる FPGA
Stellaris を使った組み込みアプリ開発ガイド
研究者のための Python による FPGA 入門
SDSoC でストリーム
90分 Scheme to C(勝手に抄訳版)
並列計算への道 2015年版
NiosII と RTOS について
Synthesijer で作るFORTH仮想マシン

Analog Devices の IP コアを使う