数値
- 更新日2023-02-17
- 5分で読める
数値
ビットパターンで動作する加算/減算器を実装します。 「加算減算」ノードをカスケードし、パイプライン処理をして、高いスループットレートを実現することが可能です。
入力/出力

キャリーイン/反転ボローイン
このノードが追加の最下位ビット(LSB)を含むかどうかを決定するブールです。
| True | 減算?がFalseの場合、1つのLSBをx + yに加算します。減算?がTrueの場合、通常どおりx – yを計算します。 |
| False | 減算?がTrueの場合、1つのLSBをx – yから差し引きます。減算?がFalseの場合、通常どおりx + yを計算します。 |
Default value: False

xをバイパス
このノードがxに配線した値を無視するかどうかを決定するブールです。
| True | このノードはxに配線した値の代わりに値0を使用します。 |
| False | このノードはxに配線した値を使用します。 |
このブールを使用して、このノードが計算する式からxを削除します。たとえば、このブールを使用すると、x – yではなく–yを返すことができます。
Default value: False

減算?
このノードが減算または加算を実行するかどうかを決定するブールです。
| True | ノードはx - yを計算します。 |
| False | ノードはx + yを計算します。 |
Default value: False

x
このノードの入力です。
この入力は、整数および固定小数点データタイプのスカラ値をサポートします。

y
このノードの入力です。
この入力は、整数および固定小数点データタイプのスカラ値をサポートします。

キャリーアウト/反転ボローアウト
合計のデータタイプが符号なしの加算の結果値を表すことができないかどうかを示すブールです。
| True | 合計のデータタイプが符号なしの加算の結果値を表すことができません。 |
| False | 合計のデータタイプが符号なしの減算の結果値を表すことができません。 |
この場合、このノードは合計値を破棄します。このノードをカスケードすると、この出力を使用して、後続のノードが値を持ち越す(キャリー)か、または借りる(ボロー)かどうかを指定することができます。後続のノードがこの値を使用することを指定するには、キャリーアウト/反転ボローアウトを後続のノードのキャリーイン/反転ボローイン入力に配線します。

オーバーフロー
合計の理論上の演算値がそのデータタイプの有効な範囲を超えているかどうかを示すブールです。
| True | このノードは合計値を破棄します。 |
| False | このノードは合計値を破棄しません。 |

合計
このノードが計算した結果です。結果値はxとyの値だけでなく、ブール入力の値によっても異なります。
- 減算?がTrueで、キャリーアウト/反転ボローアウトがFalseを返す
- 減算?がFalseで、キャリーアウト/反転ボローアウトがTrueを返す