インデックス作成モードは、DDS_IMODE=1 を設定することで有効化されます。インデックス作成モードでは、DDS が TRIG[0] によってトリガされたときに、TRIG[4:1] ピンがベクトル メモリ内の 16 個の位置のいずれかを選択してジャンプすることができます。これにより、ユーザーは 16 個のベクトル メモリのセクションにランダムにアクセスできます (複数の異なる波形のいずれかをトリガする)。
いずれの DSP チャネルもインデックス作成モードで動作できますが、ユーザーは TRIG[0] でトリガされるように DSP チャネルを構成する必要があります。その際、TRIG_TYPEn=4 および TRIG_SELn=0 をプログラムする必要があります。複数の DSP チャネルは同時にインデックス作成モードで動作できますが、すべての DSP チャネルは TRIG[4:0] ピンを共有するため、ユーザーはチャネルを一意にインデックス化することはできません。DSP チャネル 0 と 2 はそれほど多くのベクトルにアクセスできないため、インデックス作成モードには適していないことに注意してください。16 個の固有の位置をインデックス付けできるように、インデックス作成モードにはチャネル 3 が推奨されます。ユーザーがチャネルに割り当てられたベクトル番号よりも大きいベクトル番号にジャンプしようとすると、アドレスはチャネルの割り当てにエイリアスされます。
インデックス作成モードでは、ベクトルは通常どおり処理されますが、次のような変化があります。
- DDS がトリガを受信するたびに、TRIG[4:1] の現在の値に 16 を乗じて、それが VINDEX という内部レジスタに格納されます。
- DSP チャネルが 128 個のベクトルのみにアクセスできる場合、VINDEX のビット 7 は無視されます (アドレスのエイリアシング)。64 個のベクトルのみを使用する場合、ビット 7 とビット 6 はどちらも無視されます。
- 「プロセッサがトリガ待ちの間」にトリガを受信すると、VINDEX レジスタが更新され、プロセッサは VINDEX で指定されたベクトルにジャンプし、直ちにそのベクトルを再生します。新しいベクトルに VTRIG_MODE=1 がある場合は、トリガが消費されます。それ以外の場合は、トリガがトリガ キューに配置されます。DDS_SYM=1 の場合、VINDEX は VSYM にコピーされます (ベクトル プロセッサは対称再生の開始インデックスを記憶するため、後にインデックスがデクリメントされます)。
- プロセッサが「トリガ待ちでない間」にトリガを受信すると、VINDEX レジスタが更新され、トリガはキューに配置されますが、再生は中断されません。VINDEX の新しい値は、後で消費できます (以下の項目を参照)。
- DDS_SYM=0 (非対称モード) で、プロセッサが LAST_VEC=1 でベクトルを完了すると、プロセッサは (ベクトル ポインタを 0 に設定するのではなく) VINDEX で指定されたベクトルにジャンプします。
- 5.DDS_SYM=1 (対称モード) で、ベクトル ポインタがデクリメント位相にある場合、ベクトル ポインタは VINDEX までデクリメントしませんが、代わりに VSYM までデクリメントします。VSYM で指定されたベクトルが完了すると、対称シーケンスが完了するので、プロセッサは VINDEX で指定されたベクトルにジャンプし、VSYM=VINDEX を設定します (この定義により、ある対称シーケンスがキューイングされ、別のシーケンスが実行されます)。