SlideShare une entreprise Scribd logo
1  sur  25
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 コアを使う

Contenu connexe

Tendances

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

Tendances (20)

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

En vedette

数値計算のための Python + FPGA
数値計算のための Python + FPGA数値計算のための Python + FPGA
数値計算のための Python + FPGAryos36
 
高速化のポイント
高速化のポイント高速化のポイント
高速化のポイントryos36
 
20周遅れ
20周遅れ20周遅れ
20周遅れryos36
 
SDSoC と Vivado
SDSoC と VivadoSDSoC と Vivado
SDSoC と Vivadoryos36
 
Polyphony IO まとめ
Polyphony IO まとめPolyphony IO まとめ
Polyphony IO まとめryos36
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 

En vedette (8)

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

Similaire à Analog Devices の IP コアを使う

せっかくだから俺はこの NPAPI の話をするぜ
せっかくだから俺はこの NPAPI の話をするぜせっかくだから俺はこの NPAPI の話をするぜ
せっかくだから俺はこの NPAPI の話をするぜNaruto TAKAHASHI
 
Qt5のセンサーAPIを使ってみたい
Qt5のセンサーAPIを使ってみたいQt5のセンサーAPIを使ってみたい
Qt5のセンサーAPIを使ってみたいYou&I
 
GoでEPC作って本番運用している話
GoでEPC作って本番運用している話GoでEPC作って本番運用している話
GoでEPC作って本番運用している話雄也 日下部
 
サーバ擬人化ユーザ会キックオフ資料 Slideshare ver
サーバ擬人化ユーザ会キックオフ資料 Slideshare verサーバ擬人化ユーザ会キックオフ資料 Slideshare ver
サーバ擬人化ユーザ会キックオフ資料 Slideshare verSeiichiro Ishida
 
Milkcocoa meetup #2 Unityでmilkcocoaを使ってみる
Milkcocoa meetup #2 Unityでmilkcocoaを使ってみるMilkcocoa meetup #2 Unityでmilkcocoaを使ってみる
Milkcocoa meetup #2 Unityでmilkcocoaを使ってみるMasaki Yamamoto
 
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~Seiichiro Ishida
 

Similaire à Analog Devices の IP コアを使う (7)

せっかくだから俺はこの NPAPI の話をするぜ
せっかくだから俺はこの NPAPI の話をするぜせっかくだから俺はこの NPAPI の話をするぜ
せっかくだから俺はこの NPAPI の話をするぜ
 
Qt5のセンサーAPIを使ってみたい
Qt5のセンサーAPIを使ってみたいQt5のセンサーAPIを使ってみたい
Qt5のセンサーAPIを使ってみたい
 
GoでEPC作って本番運用している話
GoでEPC作って本番運用している話GoでEPC作って本番運用している話
GoでEPC作って本番運用している話
 
サーバ擬人化ユーザ会キックオフ資料 Slideshare ver
サーバ擬人化ユーザ会キックオフ資料 Slideshare verサーバ擬人化ユーザ会キックオフ資料 Slideshare ver
サーバ擬人化ユーザ会キックオフ資料 Slideshare ver
 
Milkcocoa meetup #2 Unityでmilkcocoaを使ってみる
Milkcocoa meetup #2 Unityでmilkcocoaを使ってみるMilkcocoa meetup #2 Unityでmilkcocoaを使ってみる
Milkcocoa meetup #2 Unityでmilkcocoaを使ってみる
 
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
俺のZabbixがこんなに可愛いわけがない~北海道巡業編~
 
Ipv6+JMeter+GAE
Ipv6+JMeter+GAEIpv6+JMeter+GAE
Ipv6+JMeter+GAE
 

Plus de ryos36

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

Plus de ryos36 (14)

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

Analog Devices の IP コアを使う