Numeric
- Updated2023-02-17
- 4 minute(s) read
Numeric
Implements an adder-subtractor that operates on bit patterns. You can cascade and pipeline AddSub nodes to achieve higher throughput rates.
Inputs/Outputs

carry in/inverted borrow in
A Boolean that determines whether this node accounts for an additional least-significant bit (LSB).
| True | Adds one extra LSB to x + y when sub? is False. Computes x – y normally when sub? is True. |
| False | Subtracts one extra LSB from x – y when sub? is True. Computes x + y normally when sub? is False. |
Default value: False

bypass x
A Boolean that determines whether this node ignores the value you wire to x.
| True | This node uses a value of 0 instead of the value you wire to x. |
| False | This node uses the value you wire to x. |
Use this Boolean to remove x from the expression this node calculates. For example, use this Boolean to return –y instead of x – y.
Default value: False

sub?
A Boolean that determines whether this node performs subtraction or addition.
| True | The node calculates x - y. |
| False | The node calculates x + y. |
Default value: False

x
An input to this node.
This input supports scalar values of integer and fixed-point data types.

y
An input to this node.
This input supports scalar values of integer and fixed-point data types.

carry out/inverted borrow out
A Boolean that indicates whether the data type of sum cannot represent the result of an unsigned addition operation.
| True | The data type of sum cannot represent the result of an unsigned addition operation. |
| False | The data type of sum cannot represent the result of an unsigned subtraction operation. |
In this situation, this node wraps the value of sum. If you cascade this node, you can use this output to specify whether a downstream node carries or borrows a value. To specify that a downstream node uses this value, wire carry-out/inverted borrow-out to the carry-in/inverted borrow-in input of the downstream node.

overflow
A Boolean that indicates if the theoretical computed value of the sum exceeds the valid range of its data type.
| True | This node wraps the value of sum. |
| False | This node does not wrap the value of sum. |

sum
The result this node computes. The result depends on not only the values of x and y but also the values of any Boolean inputs.
- sub? is True and carry out/inverted borrow out returns False
- sub? is False and carry out/inverted borrow out returns True