DSP48EまたはDSP48E1関数内でデータパスのレイテンシを表示する
- 更新日2025-03-06
- 5分で読める
DSP48EまたはDSP48E1関数内のデータパスのレイテンシを確認するには、構成ダイアログボックスの下部の回路図を使用します。これらのレイテンシは、入力端子から出力端子へのデータフローに必要なクロックサイクル数で表されます。たとえば、a~pは1つのデータパスであり、b~pは別のデータパスです。データパスの各追加レジスタにより、そのデータパスのレイテンシが1クロックサイクル分増加しますが、他のデータパスのレイテンシに影響はありません。したがって、関数の構成時にデータパスのレイテンシのバランスが崩れる可能性があります。
この不釣り合いが許容されるかどうかは、関数を使用するアプリケーションによって決まります。いくつかのアプリケーションでは、必ずしもバランスの取れたレイテンシは必要ありません。たとえば、2つの関数を互いに配線する場合、それぞれの関数が等しく正反対の不釣り合いがあれば、不釣り合いを互いに解消することができます。ただし、アプリケーションによっては、バランスの取れたレイテンシは必須です。以下の例は、バランスの取れたデータパスが必要な場合を示します。
乗数として構成される関数(p = a 2)について考えてみましょう。ここでは、同じ値を関数のaおよびb入力端子に配線します。入力値を0で開始し、各クロックサイクルごとに1ずつ増加させる場合を考えます。このDSP48E関数には、以下のデータパスが含まれます。
この回路図で、a–>pデータパスには、以下の3つのレジスタが含まれます。
- aレジスタ2
- mレジスタ
- p
このデータパスには3つのレジスタが含まれるため、データパスに3つのクロックサイクルのレイテンシがあります。ただし、b–>pデータパスに含まれるレジスタは2つのみであるため、データパスには2つのクロックサイクルのレイテンシがあります。このレイテンシの不釣り合いの意味は以下のとおりです。
- a–>pデータパスの場合、n番目のクロックサイクルは、(n – 3)番目のクロックサイクル時に得たaの値を使用する
- b–>pデータパスの場合、n番目のクロックサイクルは、(n – 2)番目のクロックサイクル時に得たaの値を使用する
この不釣り合いにより、p = a 2を計算することができません。以下の表は、最初の8つのクロックサイクル中のこの関数の入力と出力を示します。
| クロックサイクル | aの値 | pの値 | 説明 |
|---|---|---|---|
| 1 | 0 | N/A | どちらのデータパスもこのクロックサイクル中に値を生成しません。 |
| 2 | 1 | N/A | |
| 3 | 2 | 0 | 関数は、2番目のレジスタの初期値と0 (最初のクロックサイクルからのaの値) を乗算します。 |
| 4 | 3 | 0 | 関数は、0 (最初のクロックサイクルからのaの値) と1 (2番目のクロックサイクルからのaの値) を乗算します。 |
| 5 | 4 | 2 | 関数は、1 (2番目のクロックサイクルからのaの値)と2 (3番目のクロックサイクルからのaの値) を乗算します。 |
| 6 | 5 | 6 | 関数は、2 (3番目のクロックサイクルからのaの値)と3 (4番目のクロックサイクルからのaの値) を乗算します。 |
| 7 | 6 | 12 | 関数は、3 (4番目のクロックサイクルからのaの値)と4 (5番目のクロックサイクルからのaの値) を乗算します。 |
| 8 | 7 | 20 | 関数は、4 (5番目のクロックサイクルからのaの値)と5 (6番目のクロックサイクルからのaの値) を乗算します。 |
このアプリケーションで、レイテンシの不釣り合いにより、誤った計算結果が出ます。この場合、レジスタページから、別のレジスタをb–>pデータパスに追加します。これを行うと、回路図は以下のようになります。
上記の図で、両方のデータパスに3つのレジスタがあることに注目してください。これは、両方のデータパスで、n番目のクロックサイクルが(n – 3)番目のクロックサイクル時で得たaの値を使用することを意味します。
以下の表は、最初の8つのクロックサイクル中のこの関数の入力と出力を示します。
| クロックサイクル | aの値 | pの値 | 説明 |
|---|---|---|---|
| 1 | 0 | N/A | どちらのデータパスもこのクロックサイクル中に値を生成しません。 |
| 2 | 1 | N/A | |
| 3 | 2 | N/A | |
| 4 | 3 | 0 | 関数は、0および0 (最初のクロックサイクル中のaの値) を乗算します。 |
| 5 | 4 | 1 | 関数は、1および1 (2番目のクロックサイクル中のaの値) を乗算します。 |
| 6 | 5 | 4 | 関数は、2および2 (3番目のクロックサイクル中のaの値) を乗算します。 |
| 7 | 6 | 9 | 関数は、3および3 (4番目のクロックサイクル中のaの値) を乗算します。 |
| 8 | 7 | 16 | 関数は、4および4 (5番目のクロックサイクル中のaの値) を乗算します。 |
データパスのレイテンシのバランスが取れたため、このDSP48E関数はp = a 2を正しく計算します。