Data Type Conversion
This block converts an input signal of real double or integer data type to an integer or real double data type. This block is particularly useful to connect a block which accepts or produces only integer data type with another block which produces or accepts only double data type.
It can be also use to get the least significant half of the input by a downgrade conversion like int16 to int8. For this use case and if you do not want a type conversion, you can also use the EXTRACTBITS block with the Bits to extract parameter set to Lower half.
For an upgrade conversion of a signed integer to another signed integer, the sign bit is propagated.
When the output is an integer and when overflow occurs the block gives three different forms of results :
The user can select one of these three forms by setting the Do on Overflow field to 0,1 or 2.
The block supports the following types :
Input Type (1: double, 3:int32, 4:int16, 5:int8, ...) It indicates the input data type that it can be a double or an integer: Between 1 and 8. Properties : Type ‘vec’ of size 1.
Output Type (1: double, 3:int32, 4:int16, 5:int8, ...) It indicates the output data type that can be a double or an integer: Between 1 and 8. Properties : Type ‘vec’ of size 1.
Do on Overflow (0:Nothing, 1:Saturate, 2:Error) Between 0 and 2. When there are an overflowing, if parameter is equal to :
- 0 : the result is non saturated.
- 1 : the result is saturated.
- 2 : the simulation displays en error message.
Properties : Type ‘vec’ of size 1.
This example shows the sign bit’s propagation during a conversion from int8 to int16. Open this example in Xcos