SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
SDSoC解体新書
2016.2版
ソフトウェア編
(チラ見用)
Vengineer DEATH
無限ゲームのなか
いつものように、
よろしくお願いします。
@Vengineer に居ます
本資料では、SDSoC™が生成するソフト
ウェアについて調べた結果をまとめたも
のです。
ご利用は、自己責任でお願いします。
SDSoC™とは
SDSoC™
Software-Defined Development Environment
for System-on-Chip
SDSoC システムコンパイラをフロントエンドとして、
Vivado HLS/Vivado Design Suiteを使って、
HDL => FPGA Bitstreamの生成だけでなく、
FPGAの部を制御するためのソフトウェアも自動生
成するという優れもの!
いやー、びっくりポン、ですよ。(古い?)
Trademark付いていますよ
®ではない
SDSoC
プラットフォーム
SDSoCプラットフォーム
SDSoCを使うためには、ターゲットボード用の
SDSoCプラットフォームを作成しないといけない
SDAccelやAltera SDK for OpenCLでも同じよう
にターゲットボード用にプラットフォームを用意する
必要があるので、特別なことではない
SDSoCプラットフォーム
各ボードに対応したものが必要
2016.2のサンプルプラットフォーム
 ・microzed
 ・zc702
 ・zc706
 ・zcu102 (Zynq Ultrascale+ MPSoC)
 ・zed
 ・zybo
SDSoC 環境プラットフォームおよびライブラリ UG1146 (v2016.2) 2016 年 7 月 13 日, Page.6
SDSoCプラットフォーム
• メタデータファイル
 – Vivadoツールを使用して生成されたプラットフォームハードウェア記述
 – 手動で記述したプラットフォームソフトウェア記述ファイル
• Vivado Design Suiteプロジェクト
 – ソース/ 制約/IPブロック
• ソフトウェアファイル
 – ライブラリヘッダーファイル (オプション)
 – スタティックライブラリ (オプション)
 – Linux関連オブジェクト(デバイスツリー、U-Boot、Linuxカーネル、ramdisk)
• ビルド済みハードウェアファイル(オプション)
 – ビットストリーム
 – SDK用にエクスポートされたハードウェアファイル
 – 前もって生成されたデバイス登録およびポート情報ソフトウェアファイル
 – 前もって生成されたハードウェアおよびソフトウェアインターフェイスファイル
SDSoCプラットフォーム
SDSoC 環境プラットフォームおよびライブラリ UG1146 (v2016.2) 2016 年 7 月 13 日, Page.7
SDSoC 環境プラットフォームおよびライブラリ UG1146 (v2016.2) 2016 年 7 月 13 日, Page.7
SDSoCプラットフォーム
SDSoC 環境プラットフォームおよびライブラリ UG1146 (v2016.2) 2016 年 7 月 13 日, Page.7
SDSoCプラットフォーム
Zyboでは、
 ディレクトリ
 ・vivado
 ・boot
 ・hardware
 ・freertos
 ・aarch32-none
 メタデータファイル
 ・zybo_hw.pfm
  Vivadoツールを使用して生成されたプラットフォームハードウェア記述
 ・zybo_sw.pfm
  手動で記述したプラットフォームソフトウェア記述ファイル
ソフトウェア構成
オリジナルプログラムでの構成
Application
Linux
GCC (gcc/g++)にてコンパイル、必要なライブラリをリンクし、すべ
てをZynq内のCPUでプログラムとして実行する
SDSoCで実装したときの構成
Accel-Library
Application
/dev/xlnk
/dev/uioX
Linux
PL (FPGA)
生成されるファイル
・SW
 Accel-Library
・HW
 FPGA bitstream
例題で確認しよう
チュートリアルで確認
SDSoC 環境ユーザー ガイド
SDSoC 環境の概要(UG1028)
「第2章 チュートリアル : プロジェクトの作成、ビル
ド、実行」
で、[Matrix Multiplication and Addition]を
ハードウェア化してみよう!
SDReleaseではなく、SDDebugで
SDSoC 環境ユーザーガイド SDSoC環境の概要 UG1028 (v2016.2) 2016 年 7 月 13 日, Page.20
チュートリアルのプログラムでの構成
Application
(mmult + madd)
Linux
mmult(mmult.cpp) と madd(madd.cpp)を、
SdSoCを使ってハードウェア化しています
FPGAの部屋
SDSoC 2015.2 のチュートリアルをやってみた
http://marsee101.blog19.fc2.com/blog-entry-3212.html
http://marsee101.blog19.fc2.com/blog-entry-3213.html
http://marsee101.blog19.fc2.com/blog-entry-3214.html
http://marsee101.blog19.fc2.com/blog-entry-3215.html
SDDebugディレクトリ
SDSoCで実装したときの構成
Accel-Library
Application
/dev/xlnk
/dev/uioX
Linux
PL (FPGA)
生成されるファイル
・SW
 Accel-Library
(mmult + madd)
・HW
 FPGA bitstream
生成されたファイルを見てみよう
SDDebugディレクトリ
 ・_sds : Accel-Library
 ・labn.elf : 実行ファイル
 ・labn.elf.bit : FPGA部のbitstream
 ・makefile
 ・object.mk
 ・sd_card : ブートに必要なファイル
 ・source.mk
 ・src : mmult/maddソースコード
sd_cardディレクトリ
Zynqでsd_cardに必要なものは?
・BOOT.BIN
以下のファイルは入っている
・fsbl.elf Booting
・u-boot.elf
・devicetree.dtb Linux
・uImage
・uramdisk.image.gz
http://www.wiki.xilinx.com/Zynq+2016.2+Release
SDSoCが出力するsd_card中身は?
・BOOT.BIN Booting
 (fsbl.elf + u-boot.elf)
・devicetree.dtb Linux
・uImage
・uramdisk.image.gz
・README.tx
・_sds/_p0_.bin FPGA bitstream
・labn.elf Application
ここがポイント!
SDSoCが生成するポイントは!
FPGA bitstream (labn.elf.bit.bin)
SDSoCプロントエンドで切り出したハードウェ
ア部分を Vivado HLS/Vivado Design Suite
を呼び出し生成する
Application (labn.elf)
SDSoCフロントエンドでライブラリとリンクして
生成する
_sds_ディレクトリ
_sdsディクリトリ
 ・iprepo : 生成したHWのIP
 ・p0 : Partition 0に必要なファイル全部
 ・reports : レポート/ログファイル
 ・swstubs : ソフトウェアのスタブファイル
 ・vhls : Vivado HLS実行ディレクトリ
_sds_/p0ディレクトリ
_sds_/p0の中身
・.boot
・.cf_work
・.xsd
・ipi
・sd_card : SDカードの内容
_sds_/p0/sd_cardの中身
・BOOT.BIN Booting
・devicetree.dtb Linux
・uImage
・uramdisk.image.gz
・README.tx
・boot.bif
・labn.elf
・labn.elf.bit.bin
boot.bifの内容
皆さんおなじみのbootgenスクリプト
/* /xxxxxx/SDDebug/_sds/p0/.boot/boot.bif */
/* Command to create bitstream .bin file: */
/* bootgen -image <bif_file> -split bin -w */
/* Command to create BOOT.BIN file: */
/* bootgen -image <bif_file> -w -o i BOOT.BIN */
/* linux */the_ROM_image:
{
[bootloader]/xxxx/zybo/boot/fsbl.elf
/yyyy/SDDebug/labn.elf.bit
/xxxx/zybo/boot/u-boot.elf
}
_sds_/p0/sd_cardの中身
・BOOT.BIN Booting
 (fsbl.elf + u-boot.elf + labn.elf.bit)
・devicetree.dtb Linux
・uImage
・uramdisk.image.gz
・labn.elf.bit.bin FPGA bitstream
・labn.elf Application
ここがポイント!
_sds_/swstubsディレクトリ
 この後に、
調査した結果をまとめていきます

Mais conteúdo relacionado

Mais procurados

Andoird版OpenCVのJavaサンプルを動かす
Andoird版OpenCVのJavaサンプルを動かすAndoird版OpenCVのJavaサンプルを動かす
Andoird版OpenCVのJavaサンプルを動かす
shobomaru
 
OpenCV4Androidで画像処理アプリのススメ
OpenCV4Androidで画像処理アプリのススメOpenCV4Androidで画像処理アプリのススメ
OpenCV4Androidで画像処理アプリのススメ
Masaki Otsuki
 

Mais procurados (20)

SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
 
Synthesijer zynq qs_20150316
Synthesijer zynq qs_20150316Synthesijer zynq qs_20150316
Synthesijer zynq qs_20150316
 
Zynq MPSoC勉強会 Codec編
Zynq MPSoC勉強会 Codec編Zynq MPSoC勉強会 Codec編
Zynq MPSoC勉強会 Codec編
 
NetBSD/Zynq
NetBSD/ZynqNetBSD/Zynq
NetBSD/Zynq
 
Takep lpc1114-190614
Takep lpc1114-190614Takep lpc1114-190614
Takep lpc1114-190614
 
2017年のFPGA Community活動について
2017年のFPGA Community活動について2017年のFPGA Community活動について
2017年のFPGA Community活動について
 
Altera SDK for OpenCL解体新書 perlスクリプト編
Altera SDK for OpenCL解体新書 perlスクリプト編Altera SDK for OpenCL解体新書 perlスクリプト編
Altera SDK for OpenCL解体新書 perlスクリプト編
 
Andoird版OpenCVのJavaサンプルを動かす
Andoird版OpenCVのJavaサンプルを動かすAndoird版OpenCVのJavaサンプルを動かす
Andoird版OpenCVのJavaサンプルを動かす
 
Vivado hlsのシミュレーションとhlsストリーム
Vivado hlsのシミュレーションとhlsストリームVivado hlsのシミュレーションとhlsストリーム
Vivado hlsのシミュレーションとhlsストリーム
 
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
 
高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応
 
ZynqMP勉強会
ZynqMP勉強会ZynqMP勉強会
ZynqMP勉強会
 
Kubernetes Security with DevSecOps
Kubernetes Security with DevSecOpsKubernetes Security with DevSecOps
Kubernetes Security with DevSecOps
 
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
 
OpenCV4Androidで画像処理アプリのススメ
OpenCV4Androidで画像処理アプリのススメOpenCV4Androidで画像処理アプリのススメ
OpenCV4Androidで画像処理アプリのススメ
 
Windows8でOpenCVを使ったAndroid(MOVERIO)開発体験したい
Windows8でOpenCVを使ったAndroid(MOVERIO)開発体験したいWindows8でOpenCVを使ったAndroid(MOVERIO)開発体験したい
Windows8でOpenCVを使ったAndroid(MOVERIO)開発体験したい
 
Riscv+fpga200606
Riscv+fpga200606Riscv+fpga200606
Riscv+fpga200606
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
 
Howto CAD and Meshing on DEXCS2021
Howto CAD and Meshing on DEXCS2021Howto CAD and Meshing on DEXCS2021
Howto CAD and Meshing on DEXCS2021
 
123 Dexcs2021
123 Dexcs2021123 Dexcs2021
123 Dexcs2021
 

Destaque

Destaque (6)

プロファイラGuiを用いたコード分析 20160610
プロファイラGuiを用いたコード分析 20160610プロファイラGuiを用いたコード分析 20160610
プロファイラGuiを用いたコード分析 20160610
 
Intel Nervana Graph とは?
Intel Nervana Graph とは?Intel Nervana Graph とは?
Intel Nervana Graph とは?
 
Altera SDK for OpenCL解体新書 : ホストとデバイスの関係
Altera SDK for OpenCL解体新書 : ホストとデバイスの関係Altera SDK for OpenCL解体新書 : ホストとデバイスの関係
Altera SDK for OpenCL解体新書 : ホストとデバイスの関係
 
Altera sdk for open cl アンケート集計結果(公開版)
Altera sdk for open cl アンケート集計結果(公開版)Altera sdk for open cl アンケート集計結果(公開版)
Altera sdk for open cl アンケート集計結果(公開版)
 
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
 
TensorFlow XLA とハードウェア
TensorFlow XLA とハードウェアTensorFlow XLA とハードウェア
TensorFlow XLA とハードウェア
 

Semelhante a SDSoC解体新書2016.2版ソフトウェア編 (チラ見) : Inside SDSoC v2016.2 (Software short edtion)

Adobe premiere pro cs5 お読みください
Adobe premiere pro cs5 お読みくださいAdobe premiere pro cs5 お読みください
Adobe premiere pro cs5 お読みください
Kienzle Da Silva
 

Semelhante a SDSoC解体新書2016.2版ソフトウェア編 (チラ見) : Inside SDSoC v2016.2 (Software short edtion) (20)

bc10 (Android 2.2対応) について @Gadget1 R2
bc10 (Android 2.2対応) について @Gadget1 R2 bc10 (Android 2.2対応) について @Gadget1 R2
bc10 (Android 2.2対応) について @Gadget1 R2
 
Microsoft DaRT って何だろう
Microsoft DaRT って何だろうMicrosoft DaRT って何だろう
Microsoft DaRT って何だろう
 
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めCell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
 
Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)
 
Ide env
Ide envIde env
Ide env
 
Directconnect200808 Help Jp
Directconnect200808 Help JpDirectconnect200808 Help Jp
Directconnect200808 Help Jp
 
Android Dev Tools Knowledge
Android Dev Tools KnowledgeAndroid Dev Tools Knowledge
Android Dev Tools Knowledge
 
Adobe premiere pro cs5 お読みください
Adobe premiere pro cs5 お読みくださいAdobe premiere pro cs5 お読みください
Adobe premiere pro cs5 お読みください
 
Pdp11 on-fpga
Pdp11 on-fpgaPdp11 on-fpga
Pdp11 on-fpga
 
Directconnect200808 Install Jp
Directconnect200808 Install JpDirectconnect200808 Install Jp
Directconnect200808 Install Jp
 
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
 
20170211_pronama_CrystalDiskMark_UWP
20170211_pronama_CrystalDiskMark_UWP20170211_pronama_CrystalDiskMark_UWP
20170211_pronama_CrystalDiskMark_UWP
 
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
 
CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」
CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」
CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」
 
ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118
 
Mass Producing Banner With Photoshop & JavaScript
Mass Producing Banner With Photoshop & JavaScriptMass Producing Banner With Photoshop & JavaScript
Mass Producing Banner With Photoshop & JavaScript
 
Visual Studio 2012 Native Debugger Feature
Visual Studio 2012 Native Debugger FeatureVisual Studio 2012 Native Debugger Feature
Visual Studio 2012 Native Debugger Feature
 
Cerebro for VFX / Animation Japan
Cerebro for VFX / Animation JapanCerebro for VFX / Animation Japan
Cerebro for VFX / Animation Japan
 
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方
 
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
 

Mais de Mr. Vengineer

Mais de Mr. Vengineer (20)

XilinxのxsimでSoftware Driven Verification.pdf
XilinxのxsimでSoftware  Driven Verification.pdfXilinxのxsimでSoftware  Driven Verification.pdf
XilinxのxsimでSoftware Driven Verification.pdf
 
VerilatorとSystemCでSoftware Driven Verification
VerilatorとSystemCでSoftware Driven VerificationVerilatorとSystemCでSoftware Driven Verification
VerilatorとSystemCでSoftware Driven Verification
 
VerilatorとSystemC
VerilatorとSystemCVerilatorとSystemC
VerilatorとSystemC
 
TVM VTA (TSIM)
TVM VTA (TSIM) TVM VTA (TSIM)
TVM VTA (TSIM)
 
Cloud TPU Driver API ソースコード解析
Cloud TPU Driver API ソースコード解析Cloud TPU Driver API ソースコード解析
Cloud TPU Driver API ソースコード解析
 
Cloud Deep Learning Chips Training & Inference
Cloud Deep Learning Chips Training & InferenceCloud Deep Learning Chips Training & Inference
Cloud Deep Learning Chips Training & Inference
 
TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?
 
Pixel Visual Core device driver source code analysis
Pixel Visual Core device driver source code analysisPixel Visual Core device driver source code analysis
Pixel Visual Core device driver source code analysis
 
Google Edge TPUで TensorFlow Liteを使った時に 何をやっているのかを妄想してみる 2 「エッジAIモダン計測制御の世界」オ...
Google Edge TPUで TensorFlow Liteを使った時に 何をやっているのかを妄想してみる 2  「エッジAIモダン計測制御の世界」オ...Google Edge TPUで TensorFlow Liteを使った時に 何をやっているのかを妄想してみる 2  「エッジAIモダン計測制御の世界」オ...
Google Edge TPUで TensorFlow Liteを使った時に 何をやっているのかを妄想してみる 2 「エッジAIモダン計測制御の世界」オ...
 
TensorFlow XLA 「XLAとは、から、最近の利用事例について」
TensorFlow XLA 「XLAとは、から、最近の利用事例について」TensorFlow XLA 「XLAとは、から、最近の利用事例について」
TensorFlow XLA 「XLAとは、から、最近の利用事例について」
 
Facebook Glow Compiler のソースコードをグダグダ語る会
Facebook Glow Compiler のソースコードをグダグダ語る会Facebook Glow Compiler のソースコードをグダグダ語る会
Facebook Glow Compiler のソースコードをグダグダ語る会
 
Ultra96(UltraZed)実践勉強会
Ultra96(UltraZed)実践勉強会Ultra96(UltraZed)実践勉強会
Ultra96(UltraZed)実践勉強会
 
Bridge TensorFlow to run on Intel nGraph backends (v0.4)
Bridge TensorFlow to run on Intel nGraph backends (v0.4)Bridge TensorFlow to run on Intel nGraph backends (v0.4)
Bridge TensorFlow to run on Intel nGraph backends (v0.4)
 
Bridge TensorFlow to run on Intel nGraph backends (v0.5)
Bridge TensorFlow to run on Intel nGraph backends (v0.5)Bridge TensorFlow to run on Intel nGraph backends (v0.5)
Bridge TensorFlow to run on Intel nGraph backends (v0.5)
 
TensorFlow XLA RPC
TensorFlow XLA RPCTensorFlow XLA RPC
TensorFlow XLA RPC
 
TensorFlow local Python XLA client
TensorFlow local Python XLA clientTensorFlow local Python XLA client
TensorFlow local Python XLA client
 
Tiramisu をちょっと、味見してみました。
Tiramisu をちょっと、味見してみました。Tiramisu をちょっと、味見してみました。
Tiramisu をちょっと、味見してみました。
 
LeFlowを調べてみました
LeFlowを調べてみましたLeFlowを調べてみました
LeFlowを調べてみました
 
Tensorflow dynamically loadable XLA plugin ソースコード解析
Tensorflow  dynamically loadable XLA plugin ソースコード解析Tensorflow  dynamically loadable XLA plugin ソースコード解析
Tensorflow dynamically loadable XLA plugin ソースコード解析
 
Tiramisu概要
Tiramisu概要Tiramisu概要
Tiramisu概要
 

SDSoC解体新書2016.2版ソフトウェア編 (チラ見) : Inside SDSoC v2016.2 (Software short edtion)