DSP58 - 2022.1 日本語

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

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

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