DSP48E1 - 2022.1 日本語

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

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

ザイリンクス DSP48E1 ブロックは、ザイリンクス Virtex®-7 シリーズ デバイスを使用する DSP アプリケーション用の効率的な機能ブロックです。DSP48E1 スライスの機能が強化されており、柔軟性と利便性の向上、アプリケーションの効率化、総消費電力の削減、および最大周波数の増加を提供します。また、DSP48E1 スライスは高パフォーマンスであり、時分割多重化方式を利用して 1 つの DSP48E1 スライスで複数の低速の演算を実行できます。

DSP48E1 スライスは、乗算器、乗算アキュムレータ (MACC)、乗算加算器、3 入力加算器、バレル シフター、多入力マルチプレクサー、マグニチュード コンパレータ、ビット単位のロジック ファンクション、パターン検出、および多入力カウンターなど、多くの独立した機能をサポートします。さらに、複数の DSP48E1 スライスをカスケード接続できるアーキテクチャによって、多入力の数値演算や DSP フィルター、および複素数演算にも、汎用 FPGA を使用せずに対応できます。

図 1. DSP48E1

ブロック パラメーター

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 の場合、ビヘイビアー シミュレーションの不一致が発生します。
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
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 ポートを有効にします。このポートは、パイプライン選択に基づいて、使用可能なすべてのイネーブル ポートに接続されます。
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] ダイアログ ボックスの共通オプション を参照してください。