Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

2,238 views

Published on

XilinxのSDSoCが生成するソフトウェアの調査結果をまとめたものです。

2016.09.09 : 新規登録しました。
2016.09.10 : SDSoCが生成するSDカード内のファイルの部分を追記しました。

It summarizes the investigation result of software generated by Xilinx's SDSoC v2016.2.

2016.09.09: I newly registered.
2016.09.10: The file part in the SD card generated by SDSoC was added.

Published in: Devices & Hardware
  • Be the first to comment

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

  1. 1. SDSoC解体新書 2016.2版 ソフトウェア編 (チラ見用)
  2. 2. Vengineer DEATH 無限ゲームのなか いつものように、 よろしくお願いします。 @Vengineer に居ます
  3. 3. 本資料では、SDSoC™が生成するソフト ウェアについて調べた結果をまとめたも のです。 ご利用は、自己責任でお願いします。
  4. 4. SDSoC™とは
  5. 5. SDSoC™ Software-Defined Development Environment for System-on-Chip SDSoC システムコンパイラをフロントエンドとして、 Vivado HLS/Vivado Design Suiteを使って、 HDL => FPGA Bitstreamの生成だけでなく、 FPGAの部を制御するためのソフトウェアも自動生 成するという優れもの! いやー、びっくりポン、ですよ。(古い?) Trademark付いていますよ ®ではない
  6. 6. SDSoC プラットフォーム
  7. 7. SDSoCプラットフォーム SDSoCを使うためには、ターゲットボード用の SDSoCプラットフォームを作成しないといけない SDAccelやAltera SDK for OpenCLでも同じよう にターゲットボード用にプラットフォームを用意する 必要があるので、特別なことではない
  8. 8. SDSoCプラットフォーム 各ボードに対応したものが必要 2016.2のサンプルプラットフォーム  ・microzed  ・zc702  ・zc706  ・zcu102 (Zynq Ultrascale+ MPSoC)  ・zed  ・zybo
  9. 9. SDSoC 環境プラットフォームおよびライブラリ UG1146 (v2016.2) 2016 年 7 月 13 日, Page.6 SDSoCプラットフォーム
  10. 10. • メタデータファイル  – Vivadoツールを使用して生成されたプラットフォームハードウェア記述  – 手動で記述したプラットフォームソフトウェア記述ファイル • Vivado Design Suiteプロジェクト  – ソース/ 制約/IPブロック • ソフトウェアファイル  – ライブラリヘッダーファイル (オプション)  – スタティックライブラリ (オプション)  – Linux関連オブジェクト(デバイスツリー、U-Boot、Linuxカーネル、ramdisk) • ビルド済みハードウェアファイル(オプション)  – ビットストリーム  – SDK用にエクスポートされたハードウェアファイル  – 前もって生成されたデバイス登録およびポート情報ソフトウェアファイル  – 前もって生成されたハードウェアおよびソフトウェアインターフェイスファイル SDSoCプラットフォーム SDSoC 環境プラットフォームおよびライブラリ UG1146 (v2016.2) 2016 年 7 月 13 日, Page.7
  11. 11. SDSoC 環境プラットフォームおよびライブラリ UG1146 (v2016.2) 2016 年 7 月 13 日, Page.7 SDSoCプラットフォーム
  12. 12. SDSoC 環境プラットフォームおよびライブラリ UG1146 (v2016.2) 2016 年 7 月 13 日, Page.7 SDSoCプラットフォーム Zyboでは、  ディレクトリ  ・vivado  ・boot  ・hardware  ・freertos  ・aarch32-none  メタデータファイル  ・zybo_hw.pfm   Vivadoツールを使用して生成されたプラットフォームハードウェア記述  ・zybo_sw.pfm   手動で記述したプラットフォームソフトウェア記述ファイル
  13. 13. ソフトウェア構成
  14. 14. オリジナルプログラムでの構成 Application Linux GCC (gcc/g++)にてコンパイル、必要なライブラリをリンクし、すべ てをZynq内のCPUでプログラムとして実行する
  15. 15. SDSoCで実装したときの構成 Accel-Library Application /dev/xlnk /dev/uioX Linux PL (FPGA) 生成されるファイル ・SW  Accel-Library ・HW  FPGA bitstream
  16. 16. 例題で確認しよう
  17. 17. チュートリアルで確認 SDSoC 環境ユーザー ガイド SDSoC 環境の概要(UG1028) 「第2章 チュートリアル : プロジェクトの作成、ビル ド、実行」 で、[Matrix Multiplication and Addition]を ハードウェア化してみよう! SDReleaseではなく、SDDebugで SDSoC 環境ユーザーガイド SDSoC環境の概要 UG1028 (v2016.2) 2016 年 7 月 13 日, Page.20
  18. 18. チュートリアルのプログラムでの構成 Application (mmult + madd) Linux mmult(mmult.cpp) と madd(madd.cpp)を、 SdSoCを使ってハードウェア化しています
  19. 19. 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
  20. 20. SDDebugディレクトリ
  21. 21. SDSoCで実装したときの構成 Accel-Library Application /dev/xlnk /dev/uioX Linux PL (FPGA) 生成されるファイル ・SW  Accel-Library (mmult + madd) ・HW  FPGA bitstream
  22. 22. 生成されたファイルを見てみよう SDDebugディレクトリ  ・_sds : Accel-Library  ・labn.elf : 実行ファイル  ・labn.elf.bit : FPGA部のbitstream  ・makefile  ・object.mk  ・sd_card : ブートに必要なファイル  ・source.mk  ・src : mmult/maddソースコード
  23. 23. sd_cardディレクトリ
  24. 24. 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
  25. 25. 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 ここがポイント!
  26. 26. SDSoCが生成するポイントは! FPGA bitstream (labn.elf.bit.bin) SDSoCプロントエンドで切り出したハードウェ ア部分を Vivado HLS/Vivado Design Suite を呼び出し生成する Application (labn.elf) SDSoCフロントエンドでライブラリとリンクして 生成する
  27. 27. _sds_ディレクトリ
  28. 28. _sdsディクリトリ  ・iprepo : 生成したHWのIP  ・p0 : Partition 0に必要なファイル全部  ・reports : レポート/ログファイル  ・swstubs : ソフトウェアのスタブファイル  ・vhls : Vivado HLS実行ディレクトリ
  29. 29. _sds_/p0ディレクトリ
  30. 30. _sds_/p0の中身 ・.boot ・.cf_work ・.xsd ・ipi ・sd_card : SDカードの内容
  31. 31. _sds_/p0/sd_cardの中身 ・BOOT.BIN Booting ・devicetree.dtb Linux ・uImage ・uramdisk.image.gz ・README.tx ・boot.bif ・labn.elf ・labn.elf.bit.bin
  32. 32. 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 }
  33. 33. _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 ここがポイント!
  34. 34. _sds_/swstubsディレクトリ
  35. 35.  この後に、 調査した結果をまとめていきます

×