属性

Versal ACAP DSP エンジン アーキテクチャ マニュアル (AM004)

Document ID
AM004
Release Date
2022-09-11
Revision
1.2.1 日本語

このセクションでは、各種モードの DSP の合成属性について説明します。属性は制御およびデータパス上のパイプライン レジスタを呼び出し、属性値はパイプライン レジスタの段数を示します。

表 1. 属性設定の説明
属性名 設定 (デフォルト) 説明
DSP58 DSPFP32 DSPCPLX 1
レジスタ制御属性
ACASCREG 0、1、2 (1) 2 A カスケード パス (ACOUT) 上の A 入力レジスタ数を選択します。値は AREG と同じか 1 つ少なくなります。

AREG が 0 の場合: ACASCREG は必ず 0

AREG が 1 の場合: ACASCREG は必ず 1

AREG が 2 の場合: ACASCREG は 1 または 2 に設定可能

ADREG 0、1 (1) N/A 0、1 (1) AD パイプライン レジスタ数を選択します。CINT18 モードでは、共通の前置加算器からの出力が両方の DSP の AD レジスタに取り込まれるため、CINT18 では ADREG 属性を 1 つだけ使用します。
ALUMODEREG 0、1 (1) N/A 0、1 (1) ALUMODE 入力レジスタ数を選択します。
AREG 0、1、2 (1) ALU または乗算器への X マルチプレクサーの A 入力レジスタ数を選択します。ALU の場合、1 を選択すると A2 レジスタが使用されます。乗算器の場合、1 を選択して INMODE[0] = 1 なら A1 レジスタが使用されます。
BCASCREG 0、1、2 (1) N/A 0、1、2 (1) B カスケード パス (BCOUT) 上の B 入力レジスタ数を選択します。値は BREG と同じか 1 つ少なくなります。

BREG が 0 の場合: BCASCREG は必ず 0

BREG が 1 の場合: BCASCREG は必ず 1

BREG が 2 の場合: BCASCREG は 1 または 2 に設定可能 (1 は浮動小数点モードの場合のみ)

BREG 0、1、2 (1) N/A 0、1、2 (1) ALU または乗算器への X マルチプレクサーの B 入力レジスタ数を選択します。ALU の場合、1 を選択すると B2 レジスタが使用されます。乗算器の場合、1 を選択して INMODE[4] = 1 なら B1 レジスタが使用されます。
CARRYINREG 0、1 (1) N/A 0、1 (1) プログラマブル ロジック (PL) の CARRYIN 入力レジスタ数を選択します。
CARRYINSELREG 0、1 (1) N/A 0、1 (1) CARRYINSEL 入力レジスタ数を選択します。
CREG 0、1 (1) N/A 0、1 (1) C 入力レジスタ数を選択します。
DREG 0、1 (1) N/A N/A D 入力レジスタ数を選択します。

DSP58、DSPFP32: INMODEREG

DSPCPLX: CONJUGATEREG_A/ CONJUGATEREG_B

0、1 (1) 0、1 (1) 0、1 (1) INMODE および NEGATE 入力レジスタ数を選択します。DSPCPLX では、この属性は COJUGATEREG_A および CONJUGATEREG_B です。
MREG 0、1 (1) N/A 0、1 (1) M パイプライン レジスタ数を選択します。
OPMODEREG 0、1 (1) N/A 0、1 (1) OPMODE 入力レジスタ数を選択します。
RESET_MODE SYNC、ASYNC (SYNC) DSP で有効にしたレジスタを、そのレジスタ専用の同期リセットでリセットするか、共通の ASYNC_RST でリセットするかを選択します。

DSP58、DSPCPLX: PREG

DSPFP32: FPA_PREG、FPM_PREG

0、1 (1) 浮動小数点モード以外では、P 出力レジスタ数を選択します (CARRYOUT、PATTERNDETECT、PATTERNBDETECT、OVERFLOW、UNDERFLOW、XOROUT、CARRYCASCOUT、MULTSIGNOUT、PCOUT にも使用)。DSPFP32 では、FPM_PREG と FPA_PREG で FPM と FPA に対してそれぞれ同じ数のレジスタを選択します。
FPBREG N/A 0、1 (1) N/A DSPFP32 で B 入力レジスタ数を選択します。
FPCREG N/A 0、1、2、3 (3) N/A DSPFP32 で C 入力レジスタ数を選択します。
FPDREG N/A 0、1 (1) N/A DSPFP32 で D 入力レジスタ数を選択します。
FPOPMREG N/A 0、1、2、3 (3) N/A DSPFP32 で OPMODE 入力レジスタ数を選択します。
FPMPIPEREG N/A 0、1 (1) N/A DSPFP32 モードで M レジスタ数を選択します。
機能制御属性
DSP_MODE INT24、INT8 (INT24) (読み出し専用) CINT18 この属性で、DSP を特定の動作モードに設定します。INT24 は、27 × 24 固定小数点 ALU およびレガシ モードに使用します。INT8 は、3 要素 9 × 8 ベクトル ドット積モードに使用します。
A_INPUT DIRECT、CASCADE (DIRECT) A 入力をパラレル入力 (DIRECT)、または前の DSP とカスケード接続された入力 (CASCADE) から選択します。
B_INPUT DIRECT、CASCADE (DIRECT) B 入力をパラレル入力 (DIRECT)、または前の DSP とカスケード接続された入力 (CASCADE) から選択します。
BCASCSEL N/A B、D (B) N/A DSPFP32 モードでカスケード出力データを選択します。
PCOUTSEL N/A FPM、FPA (FPA) N/A P カスケード出力データを選択します。
PREADDINSEL A、B (A) N/A N/A 前置加算器で D と加算/減算する入力を選択します。
AMULTSEL A、AD (A) N/A N/A 乗算器の 27 ビットの A 入力を選択します。
BMULTSEL B、AD (B) N/A N/A 乗算器の 24 ビットの B 入力を選択します。
A_FPTYPE N/A B16、B32 (B32) N/A A の浮動小数点データ型を選択します。binary16 (半精度) の場合は B16、binary32 (単精度) の場合は B32 です。
B_D_FPTYPE N/A B16、B32 (B32) N/A 乗算に使用する B および D の浮動小数点データ型を選択します。binary16 (半精度) の場合は B16、binary32 (単精度) の場合は B32 です。
注記: binary32 加算の場合、B16 を選択すると D を P1 に直接送信できません。binary32 加算では、最初に A = 1 で乗算してから FPM として P0 へ送信できます。
USE_MULT NONE、MULTIPLY (MULTIPLY) NONE、MULTIPLY (MULTIPLY) N/A 乗算器の使用法を選択します。DSP58 または浮動小数点モードで加算器または論理ユニットのみを使用する場合、NONE に設定すると消費電力を削減できます。
RND 58 ビット フィールド (00...00) N/A 58 ビット フィールド (00...00) この 58 ビットの値は、WMUX への丸め定数として使用します。
USE_SIMD ONE58、TWO24、FOUR12 (ONE58) N/A 加算器/減算器の動作モードを選択します。属性設定には、1 つの 58 ビット加算器モード (ONE58)、2 つの 24 ビット加算器モード (TWO24)、および 4 つの 12 ビット加算器モード (FOUR12) があります。標準的な乗算/加算動作は、ONE58 モードで設定されている場合にサポートされます。TWO24 または FOUR12 モードのいずれかを選択した場合は、乗算器を使用しないでください。USE_MULT は NONE に設定する必要があります。
USE_WIDEXOR TRUE、FALSE (FALSE) N/A ワイド XOR を使用するかどうかを決定します。
XORSIMD XOR12_22、XOR24_34_58_116 (XOR24_34_58_116) N/A ワイド XOR の動作モードを選択します。1 個の 116 ビット、2 個の 58 ビット、2 個の 24 ビットおよび 2 個の 34 ビット XOR モード (XOR24_34_58_116)、または 6 個の 12 ビットおよび 2 個の 22 ビット XOR モード (XOR12_22) に設定できます。
パターン検出属性
AUTORESET_PATDET NO_RESET、RESET_MATCH、RESET_NOT_MATCH (NO_RESET) N/A NO_RESET、RESET_MATCH、RESET_NOT_MATCH (NO_RESET) パターン検出イベントが現在のクロック サイクルで発生した場合に、P レジスタ (累積値またはカウンター値) を次のクロック サイクルで自動的にリセットします。RESET_MATCH または RESET_NOT_MATCH を指定すると、それぞれ次の条件が成立した場合に、DSP58 は次のクロック サイクルで P レジスタを自動リセットします。
  • パターンが一致した場合
  • 直前のサイクルで一致していたパターンが現在のクロック サイクルで一致しなくなった場合
AUTORESET_PRIORITY RESET、CEP (RESET) N/A RESET、CEP (RESET) AUTORESET_PATDET 機能を使用する場合、CEP に設定すると P レジスタはクロック イネーブルの保留中の値のみをリセットします。それ以外の設定では、自動リセットが優先されます。
MASK 58 ビット フィールド (0011...11) N/A 58 ビット フィールド (0011...11) パターン検出中に特定ビットをマスクするために使用される 58 ビット値です。値が 1 の MASK ビットに対応するパターン ビットは無視され、値が 0 の MASK ビットに対応するパターン ビットが照合されます。
PATTERN 58 ビット フィールド (00...00) N/A 58 ビット フィールド (00...00) パターン検出器で使用される 58 ビット値です。
SEL_MASK MASK、C、ROUNDING_MODE1、ROUNDING_MODE2 (MASK) N/A MASK、C、ROUNDING_MODE1、ROUNDING_MODE2 (MASK) パターン検出器に使用されるマスクを選択します。C および MASK は、標準的なパターン検出 (カウンター、オーバーフロー検出など) の設定です。ROUNDING_MODE1 (C バーを 1 ビット左シフト) および ROUNDING_MODE2 (C バーを 2 ビット左シフト) は、オプションでレジスタに保持する C 入力を基準とする特殊なマスクを選択します。これらの丸めモードは、パターン検出器を使用して DSP58 に収束丸めを実装する場合に使用できます。
SEL_PATTERN PATTERN、C (PATTERN) N/A PATTERN、C (PATTERN) マスク フィールド用の入力ソースを選択します。この入力ソースには、58 ビットの動的 C 入力または 58 ビットの静的な属性値項目のいずれかを使用できます。
USE_PATTERN_DETECT NO_PATDET、PATDET (NO_PATDET) N/A NO_PATDET、PATDET (NO_PATDET) パターン検出器および関連する機能 (オーバーフローおよびアンダーフローを含む) を使用する場合は PATDET、使用しない場合は NO_PATDET に設定します。この属性は、スピード仕様およびシミュレーション モデルにのみ使用されます。
オプションの反転属性
IS_ALUMODE_INVERTED 4 ビット 2 進数 (4’b0000) N/A 4 ビット 2 進数 (4’b0000) DSP 内で ALUMODE[3:0] の反転オプションを適用するかどうかを示します。デフォルトの 4’b0000 は、ALUMODE バスの全ビットが反転されないことを意味します。属性の各ビットが、ALUMODE バスの対応するビットを制御します。
IS_ASYNC_RST_INVERTED 1 ビット 2 進数 (1’b0) DSP 内で ASYNC_RST の反転オプションを適用するかどうかを示します。デフォルトの 1’b0 は RSTC が反転されないことを意味します。
IS_CARRYIN_INVERTED 1 ビット 2 進数 (1’b0) N/A 1 ビット 2 進数 (1’b0) DSP 内で CARRYIN の反転オプションを適用するかどうかを示します。デフォルトの 1’b0 は CARRYIN が反転されないことを意味します。
IS_CLK_INVERTED 1 ビット 2 進数 (1’b0) DSP 内で CLK の反転オプションを適用するかどうかを示します。デフォルトの 1’b0 は CLK が反転されないことを意味します。

IS_INMODE_INVERTED

IS_FPINMODE_INVERTED

IS_CONJUGATE_INVERTED

5 ビット 2 進数 (5’b00000) 1 ビット 2 進数 (1’b0) 1 ビット 2 進数 (1’b0) DSP 内で INMODE[4:0] の反転オプションを適用するかどうかを示します。デフォルトの 5’b00000 は、INMODE バスの全ビットが反転されないことを意味します。属性の各ビットが、INMODE バスの対応するビットを制御します。DSPFP32 では、対応するピンは FPINMODE です。DSPCPLX では、対応するピンは CONJUGATE_A および CONJUGATE_B です。
IS_NEGATE_INVERTED 3 ビット 2 進数 (1’b000) N/A N/A DSP 内で NEGATE の反転オプションを適用するかどうかを示します。デフォルトの 3’b000 は NEGATE[2:0] が反転されないことを意味します。

IS_OPMODE_INVERTED

IS_FPOPMODE_INVERTED

9 ビット 2 進数 (9’b000000000) 7 ビット 2 進数 (7’b0000000) 9 ビット 2 進数 (9’b000000000) DSP58 および DSPCPLX では、DSP 内で OPMODE[8:0] の反転オプションを適用するかどうかを示します。デフォルトの 9’b000000000 は、OPMODE バスの全ビットが反転されないことを意味します。属性の各ビットが、OPMODE バスの対応するビットを制御します。DSPFP32 では、対応するピンは FPOPMODE バス (7 ビット) です。
IS_RSTA_INVERTED 1 ビット 2 進数 (1’b0) DSP 内で RSTA の反転オプションを適用するかどうかを示します。デフォルトの 1’b0 は RSTA が反転されないことを意味します。
IS_RSTALLCARRYIN_INVERTED 1 ビット 2 進数 (1’b0) N/A 1 ビット 2 進数 (1’b0) DSP 内で RSTALLCARRYIN の反転オプションを適用するかどうかを示します。デフォルトの 1’b0 は RSTALLCARRYIN が反転されないことを意味します。

IS_RSTALUMODE_INVERTED

IS_RSTFPA_INVERTED

1 ビット 2 進数 (1’b0) DSP 内で RSTALUMODE の反転オプションを適用するかどうかを示します。デフォルトの 1’b0 は RSTALUMODE が反転されないことを意味します。DSPFP32 では、属性 IS_RSTFPA_INVERTED が RSTFPA ピンに対応します。
IS_RSTB_INVERTED 1 ビット 2 進数 (1’b0) DSP 内で RSTB の反転オプションを適用するかどうかを示します。デフォルトの 1’b0 は RSTB が反転されないことを意味します。
IS_RSTC_INVERTED 1 ビット 2 進数 (1’b0) DSP 内で RSTC の反転オプションを適用するかどうかを示します。デフォルトの 1’b0 は RSTC が反転されないことを意味します。

IS_RSTCTRL_INVERTED

IS_RSTFPOPMODE_INVERTED

1 ビット 2 進数 (1’b0) IS_RSTCTRL_INVERTED は、DSP 内で RSTCTRL の反転オプションを適用するかどうかを示します。デフォルトの 1’b0は RSTCTRL が反転されないことを意味します。IS_RSTFPOPMODE_INVERTED は、DSPFP32 の RSTFPOPMODE ピンに対するものです。

IS_RSTD_INVERTED

IS_RSTAD_INVERTED

1 ビット 2 進数 (1’b0) IS_RSTD_INVERTED は、DSP 内で RSTD の反転オプションを適用するかどうかを示します。デフォルトの 1’b0 は RSTD が反転されないことを意味します。DSPCPLX では、属性 IS_RSTAD_INVERTED が RSTAD ピンに対応します。

IS_RSTINMODE_INVERTED

IS_RSTFPINMODE_INVERTED

IS_RSTCONJUGATE_INVERTED

1 ビット 2 進数 (1’b0) IS_RSTINMODE_INVERTED は、DSP 内で RSTINMODE の反転オプションを適用するかどうかを示します。デフォルトの 1’b0 は RSTINMODE が反転されないことを意味します。属性 IS_RSTFPINMODE_INVERTED は、DSPFP32 の RSTFPINMODE ピンに対するものです。IS_RSTCONJUGATE_INVERTED は、DSPCPLX の RSTCONJUGATE に対するものです。

IS_RSTM_INVERTED

IS_RSTFPMPIPE_INVERTED

1 ビット 2 進数 (1’b0) DSP 内で RSTM の反転オプションを適用するかどうかを示します。デフォルトの 1’b0 は RSTM が反転されないことを意味します。DSP32 では、属性 IS_RSTFPMPIPE_INVERTED が RSTFPMPIPE ピンに対応します。

IS_RSTP_INVERTED

IS_RSTFPM_INVERTED

1 ビット 2 進数 (1’b0) DSP 内で RSTP の反転オプションを適用するかどうかを示します。デフォルトの 1’b0 は RSTP が反転されないことを意味します。DSPFP32 では、属性 IS_RSTFPM_INVERTED が RSTFPM ピンに対応します。
  1. DSPCPLX の欄に記載した属性は両方の DSP に有効ですが、別々の属性として区別されます。表記規則は <属性名>_IM (虚数部) と <属性名>_RE (実数部) です。ただし例外として、CONJUGATE に関する属性の表記規則は <属性名>_A と <属性名>_B です。また、ピン反転属性の表記規則は IS_<ピン名>_<IM/RE/A/B>_INVERTED です。
  2. ( ) 内の値は、各属性のデフォルト値です。