DDS Compiler 6.0 - 2022.1 日本語

Vitis Model Composer ユーザー ガイド (UG1483)

Document ID
UG1483
Release Date
2022-05-26
Version
2022.1 日本語

ザイリンクス DDS (Direct Digital Synthesizer) Compiler ブロックは、サポートされるデバイスに、AXI4-Stream 準拠のインターフェイスを使用して、高性能で最適化された位相生成回路と位相を正弦曲線に変換する回路をインプリメントします。

このコアは、多数のアプリケーションで使用される正弦曲線波のソースとなります。DDS は、位相ジェネレーターと SIN/COS ルックアップ テーブル (位相を正弦曲線に変換) で構成されています。これらのパーツは個別に、またはこのコアを使用して一緒に使用できます。

アーキテクチャの概略図

DDS Compiler を理解するには、ブロックが FPGA ハードウェアにどのようにインプリメントされるかを知る必要があります。次に、DDS Compiler コアのブロック図を示します。このコアは、位相ジェネレーターと SIN/COS LUT で構成されています。これらのパーツは、個別に使用するか、一緒にオプションのディザー ジェネレーターと共に使用して、DDS 機能を作成できます。時分割多重化チャンネル機能がサポートされており、位相インクリメントとオフセット パラメーターを個別に設定可能です。

図 1. DDS Compiler のブロック図

Phase Generator

位相ジェネレーターは、アキュムレータと、位相オフセットを追加するオプションの加算器から構成されています。コアをカスタマイズすると、位相インクリメントとオフセットは、[Fixed]、[Programmable] (CONFIG チャンネルを使用)、または [Streaming] (入力 PHASE チャンネルを使用) のいずれかに個別に設定できます。

[Fixed] に設定すると、コアをカスタマイズしたときに DDS 出力周波数が設定され、コアがデザインに組み込まれた後は変更できません。

[Programmable] に設定すると、CONFIG チャンネルの TDATA フィールドに、該当する入力 (PINC または POFF) のサブフィールド、または両方が [Programmable] に設定されている場合は両方が含まれます。PINC も POFF も [Programmable] に設定されていない場合、CONFIG チャネルはありません。

[Streaming] に設定すると、入力 PHASE チャンネルの TDATA ポート (s_axis_phase_tdata) には、当該する入力 (PINC または POFF) のサブフィールド、または両方が [Streaming] に選択されている場合は両方が含まれます。PINC も POFF も [Streaming] に設定されておらず、DDS が位相ジェネレーターを含むよう設定されている場合、入力 PHASE チャネルはありません。DDS を SIN/COS ルックアップのみに設定すると、PHASE_IN フィールドは入力 PHASE チャンネルの TDATA ポートを使用して入力されます。

SIN/COS LUT

SIN/COS ルックアップのみに設定すると、位相ジェネレーターはインプリメントされず、PHASE_IN 信号は入力 PHASE チャンネルを使用して入力され、ルックアップ テーブルを使用して SINE および COSINE 出力に変換されます。

正弦曲線波の対称性を利用することにより、メモリが効率的に使用されます。コアは、SINE のみの出力、COSINE のみの出力、または両方 (直交) 出力に設定できます。各出力は、個別にネゲートに設定できます。精度は、オプションのテイラー級数補正を使用して上げることができます。これは XtremeDSP スライスをサポートする FPGA ファミリで使用され、高速動作で高い SFDR を実現します。

このブロック特有の AXI ポート

次の表に示すように、[Configuration Options]、[Phase Increment Programmability]、[Phase Offset Programmability] オプションの選択に応じて、PHASE チャンネルまたは CONFIG チャンネル (あるいは両チャンネル) 用の異なるサブフィールド ポートをブロックで使用できます。

[Configuration Option] [Phase Increment Programmability] [Phase Offset Programmability]
選択したオプション 使用可能なポート 選択したオプション 使用可能なポート

[Phase_Generator_only]

[Phase_Generator_and_SIN_COS_LUT]

[Programmable] s_axis_config_tdata_pinc [Programmable] s_axis_config_tdata_poff
[Streaming] s_axis_phase_tdata_pinc [Streaming] s_axis_phase_tdata_poff
[Fixed] なし [Fixed] なし
なし なし
[SIN_COS_LUT_only] この設定では入力ポート s_axis_phase_tdata_phase_in を使用可能

ブロック パラメーター

Simulink® モデルでブロックのアイコンをダブルクリックすると、[Block Parameters] ダイアログ ボックスが開きます。

Basic タブ
Basic タブには、次のパラメーターがあります。
Configuration Options
DDS の 2 つの部分を個別にインスタンシエートするか、一緒にインスタンシエートするかを指定します。次のいずれかを選択します。
  • Phase_Generator_and_SIN_COS_LUT
  • Phase_Generator_only
  • SIN_COS_LUT_only
System Requirements
System Clock (MHz)
アーキテクチャに関する決定を下し、指定した出力周波数から位相インクリメントを算出するため、ブロックにクロックを供給する周波数を指定します。これは、システム クロックからの固定比です。
Number of Channels
チャネルは DDS 内で時分割多重化されるので、チャネルごとの実効クロックに影響します。DDS では、1 ~ 16 本の時分割多重化チャネルがサポートされます。
Mode of Operation
Standard
DDS 波形の出力周波数は、システム クロック周波数、位相アキュムレータの位相幅、位相インクリメント値の関数です。
Rasterized
DDS では、累積された位相は切り捨てられません。ラスタライズ動作は、望ましい周波数がシステム クロックの有理分数 (出力周波数 = システム周波数 * N/M、0 < N < M) である設定用です。M にサポートされる値は 9 ~ 16384 です。
注記: これらのモードの詳細は、 『DDS Compiler LogiCORE IP 製品ガイド』 (PG141) を参照してください。
[Parameter Selection]
System_Parameters または Hardware_Parameters を選択します。
System Parameters
Spurious Free Dynamic Range (dB)
DDS で生成されるトーンのターゲット純度を指定します。これにより、出力幅と内部バス幅が設定され、さまざまなインプリメンテーションの決定事項が制御されます。
Frequency Resolution (Hz)
PINC および POFF 値の精度を設定します。精度を高くすると、大型のアキュムレータが必要となります。精度を低くすると、使用されるハードウェア リソースが削減されます。
Noise Shaping
NonePhase_DitheringTaylor_Series_Corrected、または Auto のいずれかを選択します。

Configuration OptionsSIN_COS_LUT_only を選択している場合、Noise Shaping に選択できるオプションは None または Taylor_Series_Corrected のみです。Phase_Generator_Only を選択している場合は、Noise Shaping に選択できるオプションは None のみです。

Hardware Parameters
Phase Width
周波数精度と同様に、内部位相計算の幅を設定します。
Output Width
SFDR とほぼ同じで、出力精度と最小位相幅を設定します。出力の精度は、Noise Shaping の選択にも影響されます。
Output Selection
Sine_and_Cosine
ブロックにサイン出力ポートとコサイン出力ポートの両方を配置します。
Sine
ブロックにサイン出力ポートのみを配置します。
Cosine
ブロックにコサイン出力ポートのみを追加します。
Polarity
Negative Sine
sine 出力をネゲートします。
Negative Cosine
cosine 出力をネゲートします。
Amplitude Mode
Full_Range
最大振幅を選択します。
Unit_Circle
正確な 2 のべき乗振幅を選択します。これは、[Full_Range] 振幅の約半分です。
Implementation タブ
Implementation Options
Memory Type
AutoDistributed_ROM、または Block_ROM のいずれかを選択します。
Optimization Goal
AutoArea、または Speed のいずれかを選択します。
DSP48 Use
Minimal または Maximal のいずれかを選択します。[Maximal] に設定すると、最大パフォーマンスを達成するため XtremeDSP スライスが使用されます。
Latency Options
Auto
DDS は最高のパフォーマンスを得るため完全にパイプライン処理されます。
Configurable
下の Latency プルダウン リストから、少ないパイプライン段数を選択できるようにします。通常これにより、消費されるリソースが少なくなります。
Control Signals
Has phase out
DDS で phase_output ポートを有効にします。これは DDS の Phase_Generator 部分の出力なので、サイン出力とコサイン出力よりも SIN/COS ルックアップ テーブルのレイテンシ分だけ先に出力されます。
ACLKEN
コアのクロック イネーブル (aclken) を有効にします。コアのすべてのレジスタは、この制御信号により有効になります。
ARESETn
アクティブ Low の同期クリア入力。ACLKEN よりも優先されます。この信号にはパフォーマンスのため内部でレジスタが付けられているので、2 サイクル以上の ARESETn アクティブ パルスが必要です。1 サイクルのパルスでコアはリセットされますが、パルスに対する応答はその直後のサイクルでは現れません。
Explicit Sample Period
Use explicit period
その下の [Sample Period] で指定したサンプル周期を使用します。
AXI Channel Options タブ
AXI Channel Options
TLAST
(AXI チャンネルではなく) DDS チャンネルが複数ある場合に有効になります。TLAST は、DDS の最後の時分割多重化チャンネルの転送を示します。オプションは次のとおりです。
Not_Required
入力 PHASE チャネルにも output チャネルにも TLAST は含まれません。
Vector_Framing
入力 PHASE チャンネルおよび output チャンネルの TLAST は最後を示します。
Packet_Framing
TLAST は、入力 PHASE チャンネルから output チャネルに TDATA と同じレイテンシで転送されます。このモードでは、TLAST 信号は DDS で使用または解釈されません。このモードは、データストリームに信号を付随させる必要があるが DDS にはアプリケーションがない場合に、システム設計を容易にすることを意図しています。
Config_Triggered
これは、[Vector Framing] オプションを拡張したものです。このオプションでは、新しいコンフィギュレーション データがある場合、入力 PHASE チャンネルの TLAST で、CONFIG チャンネルからの新しいコンフィギュレーション データの取り込みをトリガーできます。これにより、リコンフィギュレーションを時分割多重化された DDS チャネルのサイクルに同期させることができます。
TREADY
Output TREADY
output チャンネルで TREADY を有効にし、固有のバック プレッシャーのあるフル AXI ハンドシェイク プロトコルをサポートします。入力 PHASE チャンネルがある場合、その TREADY もこの制御により決定され、入力 PHASE チャンネルから出力チャンネルまでのデータパス全体がバック プレッシャーをサポートするかどうかか決定されます。
TUSER Options
InputDATA Output、および PHASE Output に次のいずれかのオプションを選択します。
Not_Required
上記のどちらの使用も必要なく、当該するチャンネルに TUSER フィールドは含まれません。
Chan_ID_Field
このモードでは、TUSER フィールドにより転送用の時分割多重化チャンネルが特定されます。
User_Field
このモードでは、ブロックは TUSER フィールドの内容を無視し、内容を入力 PHASE チャネルから出力チャネルにそのまま渡します。
User and Chan_ID_Field
このモードでは、TUSER フィールドに user フィールドと chan_id フィールドの両方が含まれます (chan_id フィールドは最下位ビット)。チャンネルの記述に必要な最小限のビット数により、chan_id field フィールドの幅が決定されます。たとえば、7 チャンネルには 3 ビット必要です。
User Field Width
DDS で処理されずに入力から出力に転送されるビット フィールドの幅を指定します。
Config Channel Options
Synchronization Mode
On_Vector
時分割多重化されたチャネルの新しいサイクルが開始したときにリコンフィギュレーション データを適用します。
On_Packet
リコンフィギュレーションを TLAST チャネルでトリガーします。このモードは、TLAST が [Packet_Framing] に設定されている場合に使用可能です。このモードは、入力 TLAST インジケーターにより暗示されるパケットと関連付ける場合を対象としています。
Output Frequency タブ
Phase Increment Programmability

位相インクリメントを FixedProgrammable、または Streaming のいずれかに指定します。[Programmable] を選択すると、ブロックに channel、data、および we 入力ポートが追加されます。

Basic タブの Configuration OptionsPhase_Generator_and_SIN_COS_LUT に、Basic タブの Parameter SelectionHardware Parameters に、Phase Offset Angles タブの Phase Increment ProgrammabilityFixed または Programmable に設定すると、次のフィールドが有効になります。
Output frequencies (MHz)
各チャンネルに対して、周波数をアレイに個別に入力できます。このフィールドは、Basic タブの Parameter SelectionSystem Parameters に、Phase Increment ProgrammabilityFixed または Programmable に設定すると有効になります。
Phase Angle Increment Values
Basic タブの Configuration OptionsPhase_Generator_and_SIN_COS_LUT に、Basic タブの Parameter Selection wo Hardware Parameters に、Phase Offset Angles タブの Phase Increment ProgrammabilityFixed または Programmable に設定すると有効になります。値は 2 進数で入力する必要があります。範囲は 0 からアキュムレータの重みまでです (例: 2Phase_Width-1)。
Phase Offset Angles タブ
Phase Offset Programmability
位相オフセットを NoneFixedProgrammable、または Streaming のいずれかに指定します。Fixed または Programmable を選択すると、ブロックに channel、data、および we 入力ポートが追加されます。
Phase Offset Angles (x2pi radians)
各チャンネルに対して、オフセットをアレイに個別に入力できます。入力した値には、2π ラジアンが掛けられます。このフィールドは、Basic タブの Parameter SelectionSystem Parameters に、Phase Increment ProgrammabilityFixed または Programmable に設定すると有効になります。
Phase Angle Offset Values
各チャンネルに対して、オフセットをアレイに個別に入力できます。入力した値には、2π ラジアンが掛けられます。このフィールドは、Basic タブの Parameter SelectionHardware Parameters に、Phase Increment ProgrammabilityFixed または Programmable に設定すると有効になります。
Advanced タブ
ブロック アイコンの表示
Display shortened port names
このオプションはデフォルトでオンになっています。オフにすると、ブロックに各ポートの完全な AXI 名が表示されます。

このブロックで使用されるその他のパラメーターについては、[Block Parameters] ダイアログ ボックスの共通オプション を参照してください。

LogiCORE 資料

『DDS Compiler LogiCORE IP 製品ガイド』 (PG141)