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

What's hot (20)

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

Viewers also liked (8)

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

More from ryos36 (14)

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

Analog Devices の IP コアを使う