(SDK)に対しての基本的な知識を得ることができた。SDSoCの使い方を学んでいく。SDSoCは、組込みアプリケーションをC/C++/OpenCLで開発するための最新環境だ。FPGAデバイス上で動作するプログラムを開発できる。Taylor氏によって書かれたものである。ARMコアとプログラマブルロジックが効率よく連携できる点にある。このおかげで、システムにおいてARM側に適した処理(例えば高度な命令の実行など)と、プログラマブルロジックに適した処理(画像処理など)を効率的に分担することができる。SDKでの開発を分離していた。この方法ではプログラマブルロジック(PL)とプロセッシングシステム(PS)の間で関数を共有することが難しいため、最適なシステムパフォーマンスが得られなかった。そこで、SDSoCの出番である。SDSoCはコンパイラを最適化しているシステムであり、ソフトウェアによるPSとPLの両方の開発を可能にする。一般的に、SDSoCによる開発は次のような流れで行われる。高級言語によってアプリケーションを開発する。サポートされているパフォーマンス評価機能を使い、性能の向上を妨げている処理を特定する。特定したボトルネックに対してプログラマブルロジックを使うことで速度を向上させる。パフォーマンスを再び確認し、もし必要ならば他の部分のデザインも改善する。Synthesis)及びフレームワークの連結によって、PSとPLの間で関数を容易に共有することができるようになっている。SDSoCの基初期設定プログラマブルロジックの最適なパフォーマンスを得るためには、HLSが何を最適化させるのか決定するなど、高速化させる関数に含まれる最適化プラグマを決める必要がある。CやC++,OpenCLなどの高級言語を使って、Zynqベースの開発をしてみよう。SDSoCを快適に使うため、ハードウェア及びソフトウェア環境を決める初期設定が必要となる。場合、このGitHubのリンクからSDSoCの設定ファイルを入手できる。これによってArty系の開発をSDSoCを用いて行うことができる。SDSoC入門このチュートリアルでは、SDSoCを使って行列の積の計算サンプルを高速化させる方法を学ぶ。次に示す手順で、SDSoCの新しいプロジェクトを作る。Project実行すると、以下のようなダイアログが表示される。この画面では、プラットフォームの確認、OSの選択、アプリケーションのサンプルの選択を行う。これでプラットフォームリストの中に希望するプラットフォームが追加され、プロジェクトに追加できるようになった。SettingページがSDSoCに表示される。これを使うことで、関数をPSとPLの間で共有できるようにする。クリックし、PLに移動させたい関数を選択することで共有できるようになる。PSで実行されている関数をPLに移動させて高速化させたい場合、以下のルールに従わなければならない。Setting画面では、PLとPSの通信を行うデータモーションネットワークのクロックを設定することができる。プログラムをビルドすると、SDカード上のプログラムを実行するのに必要なbinファイルが生成される。必要であればZynqにアプリケーションのサンプルをダウンロードするだけでなく、デバッガを使うこともできる。これには時間がかかることがあるので、高速化させる関数を選ぶときは、サポートされている機能を使ってどの程度高速化されるのか予測しよう。optionをクリックすることで設定できる。実行すると、以下に示すような結果が表示される。optionのチェックを外してビルドすれば、デバッガを使いながらサンプルを実行することができる。Debugger)によって起動できる。27にアプリケーションがダウンロードされる。27のUARTと接続することで、実行したサンプルの結果が表示される。SDSoCアプリケーションの開発を行う際には、SDSoCでサポートされているライブラリに注目しよう。アプリケーションをさらに高速にするため、SDSoCはいくつかのHLSライブラリを備えている。以下のようなものがある。3つの要素からなる開発ソフトを提供する。これにより、OpenCVやCaffe(ニューラルネットワークの開発に用いられるオープンソースのフレームワーク)を使用することができる。OpenCVの高速化を可能にする。統合可能な計算用ライブラリを提供する。機能を実行するためのIPライブラリを提供する。–線形代数学用の関数を提供する。integerを使った任意長データなど2のべき乗でない数を提供する。このライブラリを用いることでFPGAのリソースをより効率的に使用することができる。まとめこのサンプルを通じて、関数をPSとPL間でやり取りすることが簡単であることが分かったと思う。PLに処理を任せることで、パフォーマンスを大きく向上させることができる。Gurrいままで、Xilinx社のFPGA(例えばDigilent製のARTYボード)やマイクロチップ社のPICシリーズのユーザーたちはPMODシリーズが利用可能でした。Bundleをリリースしました。これはエンベデッドビジョンの製品やアプリケーションの開発を目指すユーザーにとって、またエンベデッドビジョンの概念を学ぶうえで有益なツールです。HATTen22Pmodモジュールは、センサーやアクチュエータを搭載した小基板シリーズだ。FPGAやPICマイコンとの試作開発で用いられてきた。