X-Ref Target - Figure 2-44 |
DELAY_TYPE 属性を VAR_LOAD に設定すると、CE 入力と INC 入力を使用して遅延ラインを変更するか、または CNTVALUEIN、CNTVALUEOUT、および LOAD ピンを使用して遅延ライン タップの選択を並行して読み込むことができます。これらの入力を使用して、遅延ラインは、一度に 1 タップ~ 8 タップに変更できます。
VAR_LOAD の手法は、遅延ラインの COUNT と TIME の両モードでの使用に最適です。
どちらのモードでも、タップ総数は CNTVALUEOUT バスから読み出し、必要な場合 CNTVALUEIN バスまたは CE および INC ポートを介して変更できます。
注記: 遅延ラインを変更する値を計算するための手順は、入力遅延ラインと出力遅延ラインで異なります。遅延ラインを変更する値を計算するための手順は、TIME および COUNT モードで異なります。
DELAY_TYPE が VAR_LOAD で、DELAY_FORMAT が TIME/COUNT の場合、遅延ラインを変更する手順は次のとおりです ( この図 )。
1. BITSLICE_CONTROL の DLY_RDY が High に遷移後、リセット シーケンス中は BITSLICE_CONTROL の EN_VTC は High になる必要があります。
2. BITSLICE_CONTROL の VTC_RDY が High に遷移すると、BISC が完了したことになります。RXTX_BITSLICE の EN_VTC を Low にして遅延ラインを変更します。
3. 10 クロック サイクル以上待機します。
4. CNTVALUEOUT[8:0] を読み出してレジスタにその値を読み込みます。
5. 遅延ラインの更新が必要かどうかを確認します。
6. 遅延ラインに書き込む新しい遅延値を計算します。
a. グリッチなしで切り替えるには、現在のタップ位置 (Org_Val) を 8 タップずつインクリメント/デクリメントします。8 タップより多くインクリメント/デクリメントすると、遅延ラインのジャンプによってデータにグリッチが発生することがあります。出力では、グリッチによってシリアライズが維持されなくなる場合があります。
注記: 最後の受け渡しで必要なタップ数は 8 未満となるなることがあります。
b. CNTVALUEIN[8:0] バスに新しい遅延ラインの値を与えます。
c. 1 クロック サイクル待機して、LOAD を 1 クロック サイクル間 High にパルスします。
d. 新しい遅延ライン値 (New_Val) に達したかどうかを確認します。
- 達していない場合は、 手順 a から続けます。
- 達している場合は、 手順 7 から続けます。
または
a. New_Val と Org_Val 間の差 (Dif_Val) およびインクリメント/デクリメント値を計算します。
b. INC 入力を High または Low にして遅延ラインをインクリメント/デクリメントします。
c. CE ピンをトグルしてインクリメント/デクリメントを実行します。
d. Dif_Val をデクリメントして 0 かどうかを確認します。
- 達していない場合は、 手順 a から続けます。
- 達している場合は、 手順 7 から続けます。
8. RXTX_BITSLICE.EN_VTC を再び High にします。
9. 手順 2 に戻って新たな遅延ラインの更新を実行します。