DSP48E2 - 2022.1 日本語

Vitis Model Composer ユーザー ガイド (UG1483)

Document ID
UG1483
Release Date
2022-05-26
Version
2022.1 日本語

ザイリンクス 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 ブロックにのみ接続可能です。
注記: ブロックへの入力が NaN の場合、ビヘイビアー シミュレーションの不一致が発生します。
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
opmodealumodecarry_incarry_in_selinmode ポートを 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] ダイアログ ボックスの共通オプション を参照してください。