We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

# AR# 14220

## Description

General Description:
Why does the Twos Complementer core always create an output width that is one bit greater than the input width? (If the input width is "n", then output width will always be "n+1".)

## Solution

The Twos Complementer accepts signed input. If the input width is "n", then the range of signed numbers the core can accept is:

-(2^(n-1)) to +(2^(n-1)-1)

The extra bit on the output is needed when the input is the lower limit of the range.

For example

For n=8, the valid input range is -128 to +127 ("10000000" to "01111111").

If the input is -128, the complement must be to +128. This requires the extension of a single bit to obtain a valid sign bit -> "010000000" (9-bits needed).
AR# 14220
Date 05/20/2014
Status Archive
Type General Article
Page Bookmarked