JAJSWO4 June 2025 DAC39RF20
ADVANCE INFORMATION
任意の DSP チャネルは DDS ベクトルモードで動作します(DSP_MODEn を参照)。このモードでは、補間フィルタが無効になり、NCO/ミキサーロジックが再利用されて、ユーザー定義の波形(DDS_VECで定義)が生成されます。DSP は、JESD インターフェイスからの入力サンプルを必要としません。
| 用語 | 定義 |
|---|---|
| ベクトルフィールド | 各 DDS ベクトルは、波形セグメントを生成するための信号属性を定義する複数のフィールドで構成されています。サンプルフィールドは、PHASE_START および FREQ_START です。 |
| ベクトル | ベクトルはベクトル表内の 1 つのエントリで、波形セグメントを定義するフィールドが含まれています(DDS_VECを参照)。 |
| ベクタ テーブル | DDS で使用されるベクトルの表(DDS_VEC を参照)。 |
| ベクトルブロック | DDS チャネルに割り当てられたベクトル表の一部(DDS_VEC のサブセット) |
| 波形セグメント | ベクトル表内の単一のベクトルに基づいて DDS が生成する信号。 |
| 波形 | 波形セグメントのシーケンスを再生することによって生成される信号 |
| ストール | トリガーイベントを待機すると、ベクトルプロセッサは停止します。これは常に起動時に発生します。また、ベクトルの VTRIG_MODE フィールドがセットされており、トリガーが有効でないか、すでにトリガーキューに入っているベクトルがロードされた場合にも、ストールが発生します。一般に、ベクトルプロセッサがストールしている間は DDS 出力がミュートされます。ただし、ホールドモードでは例外が定義されています。 |
DDS ベクトルモードシンセサイザを 図 7-41 に示します。主な機能:
ベクトル表(DDS_VECで定義される)は、ブロックに分割され、DSP チャネルに割り当てられます。DSP のチャネルは、チャネルセットにグループ化されています(チャネル 0 と 2 がグループ化され、チャネル 1 と 3 がグループ化されます)。グループ内の両方の DSP チャネルが、DDS ベクトルモードの場合、メモリは 2 つのチャネル間で共有されます。これは、表 7-10に記載されています。各 DDS チャネルは、チャネルに割り当てられたベクトルブロック内のベクトルを、最も低いインデックスから昇順に実行します。DDS チャネルがベクトルの再生を終了すると、そのチャネルがそのベクトルの LAST_VEC フィールドを検査します。LAST_VEC=1 の場合、チャネルは割り当てられたベクトルブロックの先頭からやり直します。
| ベクトル範囲 | チャネル 2 が DDS ベクトルモードでない場合 | チャネル 0 が DDS ベクトルモードでない場合 | チャネル 0 とチャネル 2 の両方が DDS ベクトルモードの場合 |
|---|---|---|---|
| DDS_VEC[0:63] | チャネル 0 | チャネル 2 | チャネル 0 |
| DDS_VEC[64:127] | チャネル 2 |
| ベクトル範囲 | チャネル 3 が DDS ベクトルモードでない場合 | チャネル 1 が DDS ベクトルモードでない場合 | チャネル 1 とチャネル 3 の両方が DDS ベクトルモードの場合 |
|---|---|---|---|
| DDS_VEC[128:191] | チャネル 1 | チャネル 3 | チャネル 1 |
| DDS_VEC[192:255] | |||
| DDS_VEC[256:319] | チャネル 3 | ||
| DDS_VEC[320:383] |
上表のマッピングにより、チャネル 0 とチャネル 2 でリソースを共有できます。同様に、チャネル 1 とチャネル 3 でリソースを共有します。
チャネル 1 とチャネル 3 により多くのメモリが割り当てられます。これにより、DDS ベクトルモードを DUC または DDS ストリームモードと組み合わせる際に使用可能なメモリが最大化されます。これらの混合設定では、DDS ベクトルモードはチャネル 1、2、3 に適用されますが、チャネル 0 には適用されません。
ベクトルプロセッサは、各ベクトルを読み取り、パラメータのフォーマットとスケーリングを行い、適切な時間の間 DDS アキュームレータに適用します。
表 7-12ベクトルプロセッサでパラメータをどのように生成するかを定義します。DDS ベクトルフィールドへのすべての参照は、再生される特定のベクトルのフィールドを参照します。
| 信号 | フォーマット | 説明 |
|---|---|---|
| step_exp | 整数 |
ステップ指数。範囲は -4 から -32 です。この値の目的は、ベクトルの持続時間に適した振幅と周波数のステップに、スケーリング係数を適用することです。ベクトルが長いほど、スケーリング係数は小さくなります(STEP_EXP 値が大きくなります)。 step_exp = -STEP_EXP - 1 各ベクトルの STEP_EXP フィールドの推奨値は次の通り: STEP_EXP = floor(log2(NUM_SAMP_M32 + 32))- 1 |
| amp_start | 49 ビット符号あり |
振幅アキュームレータの初期値。ベクトルの開始時に適用されます。 amp_start = AMP_START * 233 Amp_start を 0 に設定すると、トリガーを待機している間 DDS 出力をミュートできます。 |
| amp_step | 49 ビット符号あり |
振幅ステップアキュームレータの初期値。 amp_step =AMP_STEP * 233 * 2step_exp + amp_step/2 注:用語「amp_step2/2」は、振幅値のシーケンスがより単純な四分状方程式に従うことを確認するものです。 |
| amp_step2 | 49 ビット符号あり |
振幅ステップアキュームレータのステップ(2次項)。ベクトル全体に適用されます。この用語は、2 次振幅が有効化されている場合にのみ適用されます(DDS_AMP2を参照)。 amp_step2 = AMP_STEP2 * 233 * 4step_exp |
| freq_start | 65 ビット |
周波数アキュームレータの初期値。ベクトルの開始時に適用されます。 freq_start =FREQ_START * 217 + freq_step/2 注:「Freq_step/2」という項により、位相の値のシーケンスが、より簡単な 4 乗の式に従うようになります。 注:2次振幅が有効になっている場合(DDS_AMP2 を参照)、振幅制御に FREQ_START の下位 16 ビットが使用され、freq_start に関する上記の式は、16 ビットが 0 であると想定しています。 |
| freq_step | 65 ビット |
周波数アキュームレータの Step 値。ベクトル全体に適用されます。 freq_step = FREQ_STEP * 233 * 2step_exp |
| phase_start | 65 ビット |
位相アキュムレー タの初期値。ベクトルの開始時に適用されます。 PHASE_START = PHASE_START * 249 |
| vec_start | 1 ビット |
ベクトルの開始を示す信号を制御します。アキュームレータを初期化します。1 サンプル期間アサートされます。 ベクトルプロセッサがトリガーを必要とするベクトルを検出した場合(およびキューにトリガーがない場合)、vec_start 信号がアサートされますが、amp_start および amp_step は 0 に設定されて DDS 出力をミュートします。トリガーが発生すると、vec_start は再度アサートされますが、今回は、amp_start と amp_step が通常通り設定されて、ベクトルを起動します。 ホールドモードが有効になっている場合、ミュートは生成されません。amp_start 信号と amp_step 信号はゼロにセットされず、vec_start はトリガーイベントに応答して 2 回目のパルスを生成しません(ベクトルがすでに再生中であるため)。 |
| load_phase | 1 ビット | ホールドモードが無効になっている場合、load_phase 信号は vec_start 信号と一致します(位相アキュームレータは phase_start をロードします)。ホールドモードが有効化されている場合、load_phase は「低」のままになり、位相連続動作が実現されます。 |