cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Observer
Observer
1,231 Views
Registered: ‎08-02-2018

DDS output format and interface

Jump to solution

Hello,

I have to multiply a signal coming fro a DDS output with an other signal.

I see that the DDS output format is fix16_15 and the Complex Multiplier core input (channel B)  is fix16_0.

What fix16_15 and fix 16_0 mean ? Do I have to translate fix16_15 to fix16_0 to be compliant with the  Complex Multiplier input ?

Thank you.

DDS.PNG

Multiply.PNG

0 Kudos
1 Solution

Accepted Solutions
Highlighted
1,165 Views
Registered: ‎06-21-2017

@cvasselin

You should avoid duplicate posts like the one in https://forums.xilinx.com/t5/Welcome-Join/DDS-output-format-and-Complex-multiplier/td-p/925064https://forums.xilinx.com/t5/Welcome-Join/DDS-output-format-and-Complex-multiplier/td-p/925064.  The question really belongs in the DSP forum, but you don't need to translate anything.  FIX16_0 means a sixteen bit signed signal with no fractional bits.  A full scale positive signal will be 0x7fff and in FIX16_0 format is one sign bit and 15 integer bits.  FIX16_15 is a signed 16 bit number with one sign bit and 15 fractional bits.  A full scale positive number is still 0x7fff.  0x7fff in one format means (2^15)-1, in the other format, it means 1-(1/(2^15)).  The hardware doesn't see the difference, it's all in how you interpret the number.  The DDS and multiplier will work just fine.  Run a simulation and try it.  I find that a simulation is a good idea just to be sure I know how the numbers scale and if I'm losing any dynamic range.

It's possible that I may have transposed the meanings of FIX16_0 and FIX16_15.  With most IP cores, it doesn't matter too much where you have the binary point.  The CORDIC seems to be an exception.

View solution in original post

2 Replies
Highlighted
1,166 Views
Registered: ‎06-21-2017

@cvasselin

You should avoid duplicate posts like the one in https://forums.xilinx.com/t5/Welcome-Join/DDS-output-format-and-Complex-multiplier/td-p/925064https://forums.xilinx.com/t5/Welcome-Join/DDS-output-format-and-Complex-multiplier/td-p/925064.  The question really belongs in the DSP forum, but you don't need to translate anything.  FIX16_0 means a sixteen bit signed signal with no fractional bits.  A full scale positive signal will be 0x7fff and in FIX16_0 format is one sign bit and 15 integer bits.  FIX16_15 is a signed 16 bit number with one sign bit and 15 fractional bits.  A full scale positive number is still 0x7fff.  0x7fff in one format means (2^15)-1, in the other format, it means 1-(1/(2^15)).  The hardware doesn't see the difference, it's all in how you interpret the number.  The DDS and multiplier will work just fine.  Run a simulation and try it.  I find that a simulation is a good idea just to be sure I know how the numbers scale and if I'm losing any dynamic range.

It's possible that I may have transposed the meanings of FIX16_0 and FIX16_15.  With most IP cores, it doesn't matter too much where you have the binary point.  The CORDIC seems to be an exception.

View solution in original post

Highlighted
Observer
Observer
1,106 Views
Registered: ‎08-02-2018
Thank you very much
0 Kudos