ザイリンクス DSP48E2 ブロックは、UltraScale デバイスを使用する DSP アプリケーション用の効率的な機能ブロックです。DSP アプリケーションは、専用の DSP リソースに最適にインプリメントされた多数のバイナリ乗算器およびアキュムレータを使用します。UltraScale デバイスは、専用の低消費電力 DSP スライスを多数搭載し、システム設計の柔軟性を維持しながら、高速処理と小型化を同時に実現します。
DSP48E2 スライスは実質的に DSP48E1 スライスの上位セットであり、次の変更点があります。
- 広範な機能
- 前置加算器の柔軟性を向上
- WMUX により ALU に第 4 オペランドを追加
- X、Y、Z マルチプレクサーを使用したワイド XOR
- その他特有の機能
DSP48E2 の機能の詳細は、『UltraScale アーキテクチャ DSP スライス ユーザー ガイド』 (UG579) を参照してください。
図 1. DSP48E2
ブロック パラメーター
Simulink® モデルでブロックのアイコンをダブルクリックすると、Block Parameters ダイアログ ボックスが開きます。
- Basic タブ
-
Basic タブには、次のパラメーターがあります。
- Input configuration
-
- A or ACIN input
- A 入力を a ポートから直接取るか、カスケード
acin
ポートから取るかを指定します。acin
ポートは別の DSP48 ブロックにのみ接続可能です。 - B or BCIN input
- B 入力を b ポートから直接取るか、カスケード
bcin
ポートから取るかを指定します。bcin
ポートは別の DSP48 ブロックにのみ接続可能です。
- DSP48E2 data-path configuration
-
- SIMD Mode of Adder/Subtractor/Accumulator
- このモードは、高速、低消費電力でロジック使用量の少ない小型の加減算機能をインプリメントするのに使用できます。加算/減算/論理ユニットの加算器と減算器は、2 つの 24 ビット ユニットまたは 4 つの 12 ビット ユニットに分割できます。
- Do not use multiplier
- 選択されている場合は、乗算器を使用せずに最高パフォーマンスになるよう、ブロックをハードウェアで最適化します。シミュレーションで乗算器を使用する命令が実行された場合は、エラーがレポートされます。
- Use dynamic multiplier mode
- ブロックでダイナミック乗算器モードを使用します。A*B 演算と A:B 演算がオンザフライで切り替えられるのでこの 2 つのパスのワースト ケース タイミングを取得する必要があります。
- Preadder configuration
- 前置加算器への 25 ビット D データ入力、または乗算器への代替入力を使用します。前置加算器は、INMODE3 信号の指定に応じた D + A をインプリメントします。
- PREADDINSEL Select preadder input
- 前置加算器の D に加算する入力を選択します。
- AMULTSEL Select A multiplexer output
- 乗算の 27 ビット A 入力への入力を選択します。7 シリーズの DSP48E1 7 シリーズプリミティブでは、この属性を 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 (48bit hex value)
- 値はパターン検出ロジックで使用されます。これは加算/減算/論理ユニットの出力に対する同一性チェックです。
- Pattern Attribute (48bit hex value)
- パターン検出器で使用される 48 ビット値を入力します。
- Mask Input
-
- Mask input from c port
- パターン検出に使用するマスクを c ポートから読み出します。
- Using Mask Attribute (48 bit hex value)
- パターン検出中に特定のビットをマスクするために使用する 48 ビット値を入力します。
- MODE1
- rounding_mode 1 (C バーを左に 1 シフト) を選択します。
- MODE2
- rounding_mode 2 (C バーを左に 2 シフト) を選択します。
- Wide Xor タブ
-
Wide
Xor タブには、次のパラメーターがあります。
- Use Wide XOR
- DSP48E2 スライスの新機能で、96 ビット幅の XOR ファンクションを実行します。
- XORSIMD Select Wide XOR SIMD
- XORSIMD 属性を使用して XOR ファンクションの幅を選択します。[XOR12] (デフォルト)、[XOR24]、[XOR48]、[XOR96] のいずれかを選択します。
- Optional Ports タブ
-
Optional
Ports タブには、次のパラメーターがあります。
- Input Ports
-
- Consolidate control port
-
opmode
、alumode
、carry_in
、carry_in_sel
、inmode
ポートを 1 つの 20 ビット ポートに統合します。ビット 0 ~ 6 は opmode ポート、ビット 7 ~ 10 はalumode
ポート、ビット 11 はcarry_in
ポート、ビット 12 ~ 14 はcarry_in_sel
ポート、ビット 15 ~ 19 は inmode ポートです。Opmode ブロックを使用して DSP48 命令を生成する場合は、このオプションを使用する必要があります。 - Provide c port
- c ポートを有効にします。このオプションを選択しない場合、c ポートは 0 に接続されます。
- Provide global reset port
- rst ポートを有効にします。このポートは、パイプライン選択に基づいて、使用可能なすべてのリセット ポートに接続されます。
- Provide global enable port
- オプションの en ポートを有効にします。このポートは、パイプライン選択に基づいて、使用可能なすべてのイネーブル ポートに接続されます。
- Cascadable Ports
-
- Provide pcin port
-
pcin
ポートを有効にします。pcin
ポートは、別の DSP48 ブロックのpcout
ポートに接続する必要があります。 - Provide carry cascade in port
- キャリー カスケード イン ポートを有効にします。このポートは、別の DSP48E ブロックのキャリー カスケード アウト ポートにのみ接続できます。
- Provide multiplier sign cascade in port
- 乗算器の符号付きカスケード入力ポート (multsigncascin) を有効にします。このポートは、別の DSP48E ブロックの乗算器符号付きカスケード出力ポートにのみ接続できます。
- Output Ports
-
- Provide carryout port
-
carryout
ポートを有効にします。加減算器の動作モードが 1 つの 48 ビット加算器に設定されている場合、carryout
ポートは 1 ビット幅です。動作モードが 24 ビット加算器に設定されている場合、carryout
ポートは 2 ビット幅です。MSB は 2 番目の加算器の carryout、LSB は最初の加算器の carryout に対応します。動作モードが 12 ビット加算器に設定されている場合、carryout
ポートは 4 ビット幅で、ビットは 4 つの 12 ビット セクションに分割された 48 ビット入力に対応します。 - Provide pattern detect port
- パターン検出の出力ポートを有効にします。マスクまたは c レジスタからのパターンが一致すると、パターン検出ポートは 1 に設定されます。
- Provide pattern bar detect port
- パターン バー検出 (patternbdetect) 出力ポートを有効にします。マスクまたは c レジスタからのパターンの反転が一致すると、パターンバー検出ポートは 1 に設定されます。
- Provide overflow port
- オーバーフロー出力ポートを有効にします。このポートは、DSP48E の演算がビット P[N] (N = 1 ~ 46) の値を超えたことを示します。N は、GUI のマスク フィールドまたは c ポート入力で設定されたマスクの 1 の数により決定されます。
- Provide underflow port
- アンダーフロー出力ポートを有効にします。このポートは、DSP48E の演算でアンダーフローが発生したことを示します。アンダーフローは、P[N] 未満になると発生します。N は、GUI のマスク フィールドまたは c ポート入力で設定されたマスクの 1 の数により決定されます。
- Cascadable Ports
-
- Provide acout port
-
acout
ポートを有効にします。acout
ポートは、別の DSP48E ブロックのacin
ポートに接続する必要があります。 - Provide bcout port
-
bcout
ポートを有効にします。bcout
ポートは、別の DSP48E ブロックのbcin
ポートに接続する必要があります。 - Provide pcout port
-
pcout
ポートを有効にします。pcout
ポートは、別の DSP48 ブロックのpcin
ポートに接続する必要があります。 - Provide multiplier sign cascade out port
- 乗算器の符号付きカスケード出力ポート (multsigncascout) を有効にします。このポートは、別の DSP48E ブロックの乗算器符号付きカスケード入力ポートにのみ接続でき、2 つの DSP48E から構築される 96 ビット アキュムレータ/加算器および減算器をサポートするために使用します。
- Provide carry cascade out port
- キャリー カスケード アウト ポート (
carrycascout
) を有効にします。このポートは、別の DSP48E ブロックのキャリー カスケード イン ポートにのみ接続できます。
- Pipelining タブ
-
Pipelining タブには、次のパラメーターがあります。
- 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 ポートからの 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 タブ
-
Reset/Enable タブには、次のパラメーターがあります。
- 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 レジスタ (使用可能な場合) のパイプライン レジスタがリセットされます。 - Reset port for d and ad
- ポート rst_a および rst_ad を有効にします。1 に設定すると、ポートのパイプライン レジスタがリセットされます。
- Reset port for INMODE
-
rst_inmode
を有効にします。1 に設定するとinmode
ポートのパイプライン レジスタがリセットされます。
- 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 タブ
-
Implementation タブには、次のパラメーターがあります。
- Use synthesizable model
- DSP48E2 を RTL 記述からインプリメントしますが、DSP48E2 ハードウェアに直接マップされない可能性があります。これは、DSP48E2 ブロックを使用するデザインを DSP48E2 ハードウェア プリミティブを含まないデバイス ファミリにインプリメントする場合に便利です。
このブロックで使用されるその他のパラメーターについては、[Block Parameters] ダイアログ ボックスの共通オプション を参照してください。