キャリー入力ロジックの結果は、3 ビット幅の CARRYINSEL 信号の関数として決まります。次の図に、キャリー入力ロジックの入力を示します。加算器および減算器用の結果を生成するキャリー入力は、常にクリティカル パス上にあります。このロジックをシリコン上に実装することで、高性能が実現します。キャリー ロジックへのキャリー入力は、常に W、X、Y、および Z マルチプレクサーの出力の前に集められるため、CARRYIN は OPMODE の選択の影響を受けません。
上図には、3 ビット CARRYINSEL 制御で選択される 8 つの入力を示しています。最初の入力である CARRYIN (CARRYINSEL = 000
) は、汎用ロジックから得られます。このオプションにより、ユーザー ロジックに基づいたキャリー ファンクションの実装が可能になります。CARRYIN はオプションでレジスタを付けることが可能です。2 番目の入力 (CARRYINSEL = 010
) は、隣接する DSP58 から接続される CARRYCASCIN 入力です。3 番目の入力 (CARRYINSEL = 100
) は、同じ DSP58 から接続されてフィードバックされる CARRYCASCOUT です。
4 番目の入力 (CARRYINSEL = 110
) は積の符号ビットの補数 (NEGATE XOR (A[26] XNOR B[23])) で、乗算器出力の無限大への対称丸めに使用します。この信号には、MREG パイプライン遅延と一致するようにオプションでレジスタを追加できます。5 番目と 6 番目の入力 (CARRYINSEL = 111
および 101
) は、対称丸めのために P 出力の MSB P[57] またはその反転を選択します。
7 番目と 8 番目の入力 (CARRYINSEL = 011
および 001
) は、カスケード接続した P 入力の対称丸めのためにカスケード接続した P 入力の MSB PCIN[57] またはその反転を選択します。
次の表に、3 ビットのキャリー入力セレクト (CARRYINSEL) とそれに対応するキャリー入力またはソースを示します。
CARRYINSEL | セレクト | 説明 | ||
---|---|---|---|---|
2 | 1 | 0 | ||
0
|
0
|
0
|
CARRYIN | 汎用インターコネクト |
0
|
0
|
1
|
~PCIN[57] | PCIN の丸め (無限大の方向へ丸め) |
0
|
1
|
0
|
CARRYCASCIN | 大規模な加算/減算/累算 (パラレル動作) |
0
|
1
|
1
|
PCIN(57) | PCIN の丸め込み (0 の方向へ丸め込み) |
1
|
0
|
0
|
CARRYCASCOUT_FB (同じ DSP58 の CARRYCASCOUT) | 桁数の多い加算/減算/累算 (内部フィードバックを介した順次演算)。PREG = 1 とする必要がある |
1
|
0
|
1
|
~P[57] | P の丸め (無限大の方向へ丸め)。PREG = 1 とする必要がある |
1
|
1
|
0
|
NEGATE XOR (A[26] XNOR B[23]) | AxB の無限大の方向への対称丸め。この値は CINT18 モードでは無効 |
1
|
1
|
1
|
P[57] | P の丸め (0 の方向へ丸め)。PREG = 1 とする必要がある |