ザイリンクス DSP58 ブロックは、 Versal® デバイスを使用する DSP アプリケーション用の効率的な機能ブロックです。DSP アプリケーションは、専用の DSP リソースに最適にインプリメントされた多数のバイナリ乗算器およびアキュムレータを使用します。 Versal® デバイスは、専用の低消費電力 DSP スライスを多数搭載し、システム設計の柔軟性を維持しながら、高速処理と小型化を同時に実現します。
DSP58 スライスは、実質的に DSP48E2 スライスの上位セットであり、次の違いがあります。DSP58 には次の機能があります。
- 広範な機能
- 前置加算器の柔軟性を向上
- 新しいオプションのネゲート インポート
- より多くの XOR 演算
- その他特有の機能
図 1. DSP58
ブロック パラメーター
Simulink® モデルでブロックのアイコンをダブルクリックすると、Block Parameters ダイアログ ボックスが開きます。
- Basic タブ
-
- Input Configuration
-
- A or ACIN input
- A 入力を
a
ポートから直接取るか、カスケードacin
ポートから取るかを指定します。acin
ポートは別の DSP58 ブロックにのみ接続可能です。 - B or BCIN input
- B 入力を
b
ポートから直接取るか、カスケードbcin
ポートから取るかを指定します。bcin
ポートは別の DSP58 ブロックにのみ接続可能です。
- DSP58 Data-Path Configuration
-
- SIMD Mode of Adder/Subtractor/Accumulator
- このモードは、高速、低消費電力でロジック使用量の少ない小型の加減算機能をインプリメントするのに使用できます。加算/減算/論理ユニットの加算器と減算器は、2 つの 24 ビット ユニットまたは 4 つの 12 ビット ユニットに分割できます。
- Mode of Multiplier
- このオプションは、現在のリリースではディスエーブルになっています。
- Do not use multiplier
- DSP58 ブロックをハードウェアで乗算器を使用せずに最高パフォーマンスになるように最適化します。シミュレーションで乗算器を使用する命令が実行された場合は、エラーがレポートされます。
- Use dynamic multiplier mode
- DSP58 ブロックでダイナミック乗算器モードを使用します。A*B 演算と A:B 演算がオンザフライで切り替えられるので、この 2 つのパスのワースト ケース タイミングを取得する必要があります。
- Preadder Configuration
- 前置加算器への 27 ビット D データ入力、または乗算器への代替入力を使用します。前置加算器は、INMODE3 信号の指定に応じた D + A をインプリメントします。
- PREADDINSEL Select preadder input
- 前置加算で D に加算する入力を選択します。
- AMULTSEL Select A multiplexer output
- 乗算の 27 ビット A 入力への入力を選択します。7 シリーズ の DSP48E1 プリミティブでは、この属性を USE_DPORT と呼んでいましたが、前置加算器の柔軟性を向上したので名称を変更しました (デフォルトの AMULTSEL = A は USE_DPORT = FALSE と等価)。
- BMULTSEL Select B multiplexer output
- 乗算の 18 ビット B 入力への入力を選択します。
- Enable D Port
- AD を選択すると自動的にイネーブルになります。
- Pattern Detection
-
- Reset p register on pattern detection
- パターンが検出されたときに次のサイクルで p レジスタをリセットします。
- [AUTO RESET PRIORITY]
- 上記のオプションを選択した場合にイネーブルになり、[RESET] (デフォルト) または CEP (P (出力) レジスタのクロック イネーブル) を選択します。
- Pattern Input
-
- Pattern Input from c port
- パターン検出に使用するパターンを c ポートから読み出します。
- Using Pattern Attribute (58bit hex value)
- 値はパターン検出ロジックで使用されます。これは、加算/減算/論理ユニットの出力に対する同一性チェックです。
- Pattern attribute
- パターン検出器で使用される 58 ビット値です。
- Mask Input
-
- Mask input from c port
- パターン検出に使用するマスクを
c
ポートから読み出します。 - Using Mask Attribute (58 bit hex value)
- パターン検出中特定ビットをマスクするために使用する 58 ビット値です。
- MODE1
- rounding_mode 1 (C バーを左に 1 シフト) を選択します。
- MODE2
- rounding_mode 2 (C バーを左に 2 シフト) を選択します。
- Wide Xor タブ
-
Wide
Xor タブには、次のパラメーターがあります。
- Use Wide XOR
- 116 ビットの XOR 関数を実行する際に使用します。
- XORSIMD Select Wide XOR SIMD
- XORSIMD 属性を使用して XOR 関数の幅を選択します。[XOR12] (デフォルト)、[XOR22]、[XOR24]、[XOR34]、[XOR58] のいずれかを選択します。
- Optional Ports タブ
-
- Input Ports
-
- Consolidate control port
-
opmode
、alumode
、carry_in
、carry_in_sel
、inmode
、およびnegate
ポートを 1 つの 25 ビット ポートに統合します。ビット 0 ~ 8 は opmode ポート、ビット 9 ~ 12 はalumode
ポート、ビット 13 はcarry_in
ポート、ビット 14 ~ 16 はcarry_in_sel
ポート、ビット 17 ~ 21 はinmode
ポート、ビット 22 ~ 24 はnegate
ポートです。Opmode ブロックを使用して DSP58 命令を生成する場合は、このオプションを使用する必要があります。 - Provide c port
- c ポートを有効にします。このオプションを選択しない場合、c ポートは 0 に接続されます。
- Provide global reset port
-
rst
ポートを有効にします。このポートは、パイプライン選択に基づいて、使用可能なすべてのリセット ポートに接続されます。 - Provide global enable port
- オプションの
en
ポートを有効にします。このポートは、パイプライン選択に基づいて、使用可能なすべてのイネーブル ポートに接続されます。
- Cascadable Ports
-
- Provide pcin port
-
pcin
ポートを有効にします。pcin
ポートは、別の DSP58 ブロックのpcout
ポートに接続する必要があります。 - Provide carry cascade in port
- キャリー カスケード イン ポートを有効にします。このポートは、別の DSP58 ブロックのキャリー カスケード アウト ポートにのみ接続できます。
- Provide multiplier sign cascade in port
- 乗算器の符号付きカスケード入力ポート (multsigncascin) を有効にします。このポートは、別の DSP58 ブロックの乗算器符号付きカスケード アウト ポートにのみ接続できます。
- Output Ports
-
- Provide carryout port
-
carryout
ポートを有効にします。加減算器の動作モードが 1 つの 58 ビット加算器に設定されている場合、carryout
ポートは 1 ビット幅です。動作モードが 24 ビット加算器に設定されている場合、carryout
ポートは 2 ビット幅です。MSB は 2 番目の加算器の carryout、LSB は最初の加算器の carryout に対応します。動作モードが 12 ビット加算器に設定されている場合、carryout
ポートは 4 ビット幅で、ビットは 12 ビット セクションに分割された 48 ビット入力に対応します。 - Provide pattern detect port
- パターン検出の出力ポートを有効にします。マスクまたは c レジスタからのパターンが一致すると、パターン検出ポートは 1 に設定されます。
- Provide pattern bar detect port
- パターン バー検出 (
patternbdetect
) 出力ポートを有効にします。マスクまたは c レジスタからのパターンの反転が一致すると、パターンバー検出ポートは 1 に設定されます。 - Provide overflow port
- オーバーフロー出力ポートを有効にします。このポートは、DSP58 の演算がビット P[N] (N = 1 ~ 46) の値を超えたことを示します。N は、GUI のマスク フィールドまたは
c
ポート入力で設定されたマスクの 1 の数により決定されます。 - Provide underflow port
- アンダーフロー出力ポートを有効にします。このポートは、DSP58 の演算でアンダーフローが発生したことを示します。アンダーフローは、P[N] 未満になると発生します。N は、GUI のマスク フィールドまたは
c
ポート入力で設定されたマスクの 1 の数により決定されます。
- Cascadable Ports
-
- Provide ACOUT port
-
acout
ポートを有効にします。acout
ポートは、別の DSP58 ブロックのacin
ポートに接続する必要があります。 - Provide BCOUT port
-
bcout
ポートを有効にします。bcout
ポートは、別の DSP58 ブロックのbcin
ポートに接続する必要があります。 - Provide PCOUT port
-
pcout
ポートを有効にします。pcout
ポートは、別の DSP58 ブロックのpcin
ポートに接続する必要があります。 - Provide multiplier sign cascade out port
- 乗算器の符号付きカスケード出力ポート (
multsigncascout
) を有効にします。このポートは、別の DSP58 ブロックの乗算器符号付きカスケード イン ポートにのみ接続でき、2 つの DSP58 から構築される 96 ビット アキュムレータ/加算器および減算器をサポートするために使用します。 - Provide carry cascade out port
- キャリー カスケード アウト ポート (
carrycascout
) を有効にします。このポートは、別の DSP58 ブロックのキャリー カスケード イン ポートにのみ接続できます。
- Pipelining タブ
-
- Pipeline Options
-
- Length of a/acin pipeline
- 入力レジスタ A のパイプラインの長さを指定します。レジスタの長さを 0 にすると、入力のレジスタが削除されます。
- Length of b/bCIN pipeline
- b または
bcin
から読み出されるb
入力のパイプラインの長さを指定します。 - Length of acout pipeline
-
a
/acin
入力とacout
出力ポート間のパイプラインの長さを指定します。パイプラインの長さを 0 にすると、acout
パイプラインの長さからレジスタが削除されます。a/acin パイプラインの長さ以下にする必要があります。 - Length of bcout pipeline
-
b
/bcin
入力とbcout
出力ポート間のパイプラインの長さを指定します。パイプラインの長さを 0 にすると、bcout パイプラインの長さからレジスタが削除されます。b/bcin パイプラインの長さ以下にする必要があります。 - Pipeline c
-
c
ポートからの入力にレジスタを付けるかどうかを示します。 - Pipeline p
-
p
およびpcout
出力にレジスタを付けるかどうかを示します。 - Pipeline multiplier
- 内部乗算器の出力にレジスタを付けるかどうかを指定します。
- Pipeline opmode
- opmode ポートにレジスタを付けるかどうかを示します。
- Pipeline alumode
- alumode ポートにレジスタを付けるかどうかを示します。
- Pipeline carry in
- キャリー イン ポートにレジスタを付けるかどうかを示します。
- Pipeline carry in select
- キャリー イン セレクト ポートにレジスタを付けるかどうかを示します。
- Pipeline preadder input register d
- d 入力にパイプライン レジスタを追加します。
- Pipeline preadder output register ad
- ad 出力にパイプライン レジスタを追加します。
- Pipeline INMODE register
- INMODE 入力にパイプライン レジスタを追加します。
- Reset/Enable Ports タブ
-
- Provide Reset Ports
-
- Reset port for a/acin
-
rst_a
ポートを有効にします。1 に設定すると、ポート a のパイプライン レジスタがリセットされます。 - Reset port for b/bcin
-
rst_b
ポートを有効にします。1 に設定すると、ポート b のパイプライン レジスタがリセットされます。 - Reset port for c
-
rst_c
ポートを有効にします。1 に設定すると、ポート c のパイプライン レジスタがリセットされます。 - Reset port for multiplier
-
rst_m
ポートを有効にします。1 に設定すると、内部乗算器のパイプライン レジスタがリセットされます。 - Reset port for P
-
rst_p
ポートを有効にします。1 に設定すると、出力レジスタがリセットされます。 - Reset port for carry in
-
rst_carryin
ポートを有効にします。1 に設定すると、キャリー インのパイプライン レジスタがリセットされます。 - Reset port for alumode
- rst_alumode ポートを有効にします。1 に設定すると、alumode ポートのパイプライン レジスタがリセットされます。
- Reset port for controls (opmode and carry_in_sel)
-
rst_ctrl
ポートを有効にします。1 に設定すると、opmode レジスタ (使用可能な場合) および carry_in_sel レジスタ (使用可能な場合) のパイプライン レジスタがリセットされます。
- Provide Enable Ports
-
- Enable port for first a/acin register
- 最初の a パイプライン レジスタのイネーブル ポート
ce_a1
を有効にします。 - Enable port for second a/acin register
- 2 番目のパイプライン レジスタのイネーブル ポート
ce_a2
を有効にします。 - Enable port for first b/bcin register
- 最初の b パイプライン レジスタのイネーブル ポート
ce_b1
を有効にします。 - Enable port for second b/bcin register
- 2 番目の b パイプライン レジスタのイネーブル ポート
ce_b2
を有効にします。 - Enable port for c
- ポート C レジスタのイネーブル ポート
ce_c
を有効にします。 - Enable port for multiplier
- 乗算器レジスタのイネーブル ポート
ce_m
を有効にします。 - Enable port for p
- ポート P 出力レジスタのイネーブル ポート
ce_p
を有効にします。 - Enable port for carry in
- キャリー イン レジスタのイネーブル ポート
ce_carry_in
を有効にします。 - Enable port for alumode
- alumode レジスタのイネーブル ポート
ce_alumode
を有効にします。 - Enable port for multiplier carry in
- 乗算器レジスタのイネーブル ポート
mult_carry_in
を有効にします。 - Enable port for controls (opmode and carry_in_sel)
- イネーブル ポート
ce_ctrl
を有効にします。ce_ctrl
ポートは、opmode およびキャリー イン セレクト レジスタを制御します。 - Enable port for d
- 入力レジスタ d にイネーブル ポートを追加します。
- Enable port for ad
- 前置加算器出力レジスタ ad にイネーブル ポートを追加します。
- Enable port for INMODE
- INMODE レジスタにイネーブル ポートを追加します。
- Inversion Options タブ
- このタブのチェック ボックスをオンにすると、その信号が反転されます。
- Implementation タブ
-
- Use synthesizable model
- DSP58 を RTL 記述からインプリメントします。DSP58 ハードウェアに直接マップされない可能性があります。これは、DSP58 ブロックを使用するデザインを DSP58 ハードウェア プリミティブを含まないデバイス ファミリにインプリメントする場合に便利です。
- Mode of operation for the adder/subtractor
- このモードは、高速、低消費電力でロジック使用量の少ない小型の加減算機能をインプリメントするのに使用できます。加算/減算/論理ユニットの加算器と減算器は、2 つの 24 ビット ユニットまたは 4 つの 12 ビット ユニットに分割できます。これには、動作モードを [Two 24-bit adders] または [Four 12-bit adders] に設定します。
このブロックで使用されるその他のパラメーターについては、[Block Parameters] ダイアログ ボックスの共通オプション を参照してください。