サンプル デザインの概要

すべてのザイリンクス SDx™ 環境には、サンプル デザインが含まれています。これらのサンプル デザインには、次の特徴があります。

  • SDx IDE および makefile フローなどのコンパイル フローを習得。
  • 新規アプリケーション プロジェクトを作成する開始点として使用。
  • 便利なコーディング スタイルを表示。
  • 重要な最適化手法を表示。

SDx 環境で提供される各プラットフォームには、ユーザーがすばやく開発を開始できるようにするサンプル デザインが含まれており、アプリケーション プロジェクトの作成で説明されているようにプロジェクトの作成時にアクセスできます。<SDx_Install_Dir>/samples にあるこれらのサンプル デザインには、コマンド ラインのみでコードのビルド、エミュレート、および実行を実行できるようにする makefile も含まれています。

ザイリンクス GitHub リポジトリから、多数のサンプル デザインおよびチュートリアルをダウンロードできます。サンプル デザイン リポジトリには、ザイリンクス PCIe® FPGA アクセラレーション ボードをターゲットとするアプリケーションの最適化を開始するための最新のサンプルが含まれます。すべての例は、SDAccel™ でサポートされるボードおよびアクセラレーション クラウド サービスでコンパイルおよび実行できます。

チュートリアル リポジトリでは、アプリケーションのビルド、エミュレーション、C++ と RTL カーネルの混合、ホスト コードの最適化など、さまざまな手順が詳細に説明されています。

サンプル デザインのインストール

New SDx Project ウィザードを使用する場合、新しいプロジェクトのテンプレートを選択します。テンプレート プロジェクトは、[Xilinx] > [SDx Examples] をクリックして、既存のプロジェクトから読み込むこともできます。

図: SDSoC サンプル デザイン - 空の状態



このダイアログ ボックスの左側には [SDSoC™ Examples] が表示され、それぞれに [Download] ボタンがあります。ダイアログ ボックスの右側には、サンプル デザインがダウンロードされるディレクトリとダウンロード元の URL が表示されます。ダウンロード ディレクトリの場所を変更する方法は、ローカル コピーの使用 を参照してください。

[SDSoC Examples] の横の [Download] をクリックすると、サンプル デザインがダウンロードされ、ダイアログ ボックスにリストされます。サンプル デザインをダウンロードすると、次の図に示すように表示されます。

図: SDSoC サンプル デザイン - ダウンロード後の表示



[SDx Examples] ダイアログ ボックスの左下のコマンド メニューには、サンプル デザインのリポジトリを管理する 2 つのコマンドがあります。
[Refresh]
ダウンロード済みサンプル デザインを GitHub リポジトリからアップデートします。
[Reset]
.Xilinx フォルダーからダウンロードしたサンプル デザインを削除します。
注記: 企業のファイアウォールにより、外部への接続が制限されていることがあります。特定のプロキシ設定が必要なこともあります。

ローカル コピーの使用

新規プロジェクトを作成する際にテンプレートを追加するには、サンプルをダウンロードする必要がありますが、SDx IDE ではサンプルはローカルの .Xilinx/SDx/<version> フォルダーにダウンロードされます。

  • Windows: C:\Users\<user_name>\.Xilinx\SDx\<version>
  • Linux: ~/.Xilinx/SDx/<version>

ダウンロード ディレクトリは、[SDx Examples] ダイアログ ボックスからは変更できません。サンプル ファイルを .Xilinx フォルダーとは別のディレクトリにダウンロードするのが望ましい場合もあります。これには、コマンド シェルから git コマンドを使用し、ダウンロード ディレクトリを別のディレクトリに変更します。

git clone https://github.com/Xilinx/SDSoC_Examples 
<workspace>/examples

上記に示すように git コマンドでサンプルをクローンすると、サンプル ファイルをアプリケーションおよびカーネル コードのリソースとしてプロジェクトで使用できるようになります。ただし、ほかのサンプル ファイル (さまざまなサンプルの makefile 内で管理) を含めるために、ファイルの多くに include 文が使用されています。これらのインクルード ファイルは、New SDx Project ウィザードでテンプレートを追加したときにプロジェクトの src フォルダーに自動的に含まれます。ファイルをローカルにするには、ファイルを手動でプロジェクトのローカルにします。

必要なファイルは、クローンされたリポジトリのディレクトリから検索できます。たとえば、次のコマンドを examples フォルダーから実行すると、vadd サンプル デザインに必要な xcl2.hpp ファイルを検索できます。

find -name xcl2.hpp

C++ デザイン ライブラリ

SDSoC 環境をインストールすると、多くのデザイン ライブラリが含まれます。C ライブラリを使用すると、一般的なハードウェア デザイン コンストラクトおよび関数を C でに記述して RTL に合成できます。次の C ライブラリが含まれます。

  • GitHub xfOpenCV
  • 任意精度データ型
  • HLS ストリーム
  • HLS 数学
  • HLS ビデオ
  • HLS IP
  • HLS 線形代数
  • HLS DSP

ライブラリ ヘッダー ファイルを含めると、各 C/C ++ライブラリをデザインで使用できます。これらのヘッダー ファイルは、SDSoC 環境のインストールの include ディレクトリ (<Vivado_Install_Dir>/include) にあります。

重要: Vivado® HLS C/C++ ライブラリのヘッダー ファイルは、C/C++ コードが SDSoC 環境で使用される場合は include パスに含める必要はありません。

HLS 関数のラッピング

SDSoC 環境に含まれる Vivado HLS ソース コード ライブラリの関数の多くは、SDSoC 環境のコード ガイドラインに従っていません。SDSoC 環境でこれらのライブラリを使用するには、通常関数をラッピングして、移植不可能なデータ型またはサポートされない言語コンストラクトからシステム コンパイラを隔離する必要があります。

合成可能 FIR フィルターのサンプル デザインでは、このようなライブラリ関数 (この場合は有限インパルス応答デジタル フィルターを計算するライブラリ関数) を使用する標準的な方法を示します。この例では、フィルター クラス コンストラクターおよび演算子を使用してサンプル ベースのフィルター処理を作成して実行します。SDSoC 環境内でこのクラスを使用するには、次のように関数ラッパー内にラップします。
void cpp_FIR(data_t x, data_t *ret)
{
    static CF<coef_t, data_t, acc_t> fir1;
    *ret = fir1(x);
}

このラッパー関数は、アプリケーション コードから起動できる最上位ハードウェア関数になります。

詳細は、コーディング ガイドライン も参照してください。