DDS IP ライブラリ - 2023.2 日本語

Vitis 高位合成ユーザー ガイド (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 日本語

hls_dds.h ライブラリを使用し、C++ デザイン内でAMD DDS (Direct Digital Synthesizer) IP ブロックを使用できます。このセクションでは、DDS IP を C++ コードで設定する方法を説明します。

重要: DDS IP コアの C IP インプリメンテーションでは、Phase_Increment および Phase_Offset パラメーターに fixed モードがサポートされ、Phase_Offset には none モードもサポートされますが、programmable および streaming モードはサポートされません。

C++ コードで DDS を使用するには、次の手順に従います。

  1. コードに hls_dds.h ライブラリを含めます。
  2. 定義済み構造体 hls::ip_dds::params_t を使用してデフォルト パラメーターを設定します。
  3. DDS 関数を呼び出します。

まず、ソース コードに DDS ライブラリを含めます。このヘッダー ファイルは、Vitis HLS のインストール ディレクトリの include ディレクトリに含まれています。このディレクトリは、Vitis HLS が実行されると自動的に検索されます。

#include "hls_dds.h"

DDS のスタティック パラメーターを定義します。たとえば、位相幅、クロック レート、位相およびインクリメントのオフセットを定義します。DDS C ライブラリにはパラメーター指定構造体 hls::ip_dds::params_t が含まれ、すべてのスタティック パラメーターをデフォルト値で初期化できます。この構造体の値のいずれかを再定義することで、インプリメンテーションをカスタマイズできます。

次の例では、既存の定義済み構造体 hls::ip_dds::params_t に基づくユーザー定義の構造体 param1 を使用して、位相幅、クロック レート、位相オフセット、チャネル数のデフォルト値を変更する方法を示しています。

struct param1 : hls::ip_dds::params_t {
 static const unsigned Phase_Width = PHASEWIDTH;
 static const double   DDS_Clock_Rate = 25.0;
 static const double PINC[16];
 static const double POFF[16];
};

HLS 名前空間と定義済みのスタティック パラメーターを使用して、DDS 関数のインスタンス (param1 など) を作成します。その後、run メソッドを使用して関数呼び出して実行します。次の例では、データおよび位相関数引数が順に示されています。

static hls::DDS<config1> dds1;
dds1.run(data_channel, phase_channel);