ザイリンクス DSP48E1 ブロックは、ザイリンクス Virtex®-7 シリーズ デバイスを使用する DSP アプリケーション用の効率的な機能ブロックです。DSP48E1 スライスの機能が強化されており、柔軟性と利便性の向上、アプリケーションの効率化、総消費電力の削減、および最大周波数の増加を提供します。また、DSP48E1 スライスは高パフォーマンスであり、時分割多重化方式を利用して 1 つの DSP48E1 スライスで複数の低速の演算を実行できます。
DSP48E1 スライスは、乗算器、乗算アキュムレータ (MACC)、乗算加算器、3 入力加算器、バレル シフター、多入力マルチプレクサー、マグニチュード コンパレータ、ビット単位のロジック ファンクション、パターン検出、および多入力カウンターなど、多くの独立した機能をサポートします。さらに、複数の DSP48E1 スライスをカスケード接続できるアーキテクチャによって、多入力の数値演算や DSP フィルター、および複素数演算にも、汎用 FPGA を使用せずに対応できます。
ブロック パラメーター
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 ブロックにのみ接続可能です。
- DSP48E1 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 つのパスのワースト ケース タイミングを取得する必要があります。
- Use Preadder
- 前置加算器への 25 ビット D データ入力、または乗算器への代替入力を使用します。前置加算器は、INMODE3 信号の指定に応じた D + A をインプリメントします。
- [Pattern Detection]
-
- [Reset p register on pattern detection]
- パターンが検出されたときに次のサイクルで p レジスタをリセットします。
- Pattern Input
-
- Pattern Input from c port
- パターン検出に使用するパターンを c ポートから読み出します。
- [Pattern Input]
-
- [Pattern Input from c port]
- パターン検出に使用するパターンを c ポートから読み出します。
- [Using Pattern Attribute (48bit hex value)]
- この値はパターン検出ロジックで使用されます。これは、加算/減算/論理ユニットの出力に対する同一性チェックです。
- [Pattern attribute]
- パターン検出器で使用される 48 ビット値です。
- Mask Input
-
- Mask input from c port
- パターン検出に使用するマスクを c ポートから読み出します。
- Using Mask Attribute (48 bit hex value)
- パターン検出中に特定ビットをマスクするために使用する 48 ビット値を入力します。
- MODE1
- [rounding_mode 1] を選択します。
- MODE2
- [rounding_mode 2] を選択します。
- 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 ポートを有効にします。このポートは、パイプライン選択に基づいて、使用可能なすべてのイネーブル ポートに接続されます。
- Provide pcin port
-
pcin
ポートを有効にします。pcin
ポートは、別の DSP48 ブロックのpcout
ポートに接続する必要があります。 - Provide carry cascade in port
- キャリー カスケード イン ポートを有効にします。このポートは、別の DSP48E ブロックのキャリー カスケード アウト ポートにのみ接続できます。
- Provide multiplier sign cascade in port
- 乗算器の符号付きカスケード入力ポート (multsigncascin) を有効にします。このポートは、別の DSP48E ブロックの乗算器符号付きカスケード出力ポートにのみ接続できます。
- 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 の数により決定されます。
- 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_carry を有効にします。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
- Reset port for 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 レジスタにイネーブル ポートを追加します。
- Implementation タブ
-
Implementation タブには、次のパラメーターがあります。
- Use synthesizable model
- DSP48E を RTL 記述からインプリメントします。DSP48E ハードウェアに直接マップされない可能性があります。これは、DSP48E ブロックを使用するデザインを DSP48E ハードウェア プリミティブを含まないデバイス ファミリにインプリメントする場合に便利です。
このブロックで使用されるその他のパラメーターについては、[Block Parameters] ダイアログ ボックスの共通オプション を参照してください。