UPGRADE YOUR BROWSER

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!

cancel
Showing results for 
Search instead for 
Did you mean: 
Explorer
Explorer
3,110 Views
Registered: ‎03-03-2011

DDS for CPFSK in System Generator

Jump to solution

Hi,

 

I'm hoping to use the DDS 5.0 to produce a continuous phase 2FSK signal. My Fclk = 125MHz and I want to generate a 5MHz tone and a 10MHz tone. I was hoping to do this using the 'streaming' option muxing between two values of PINC to modify the output frequency.

 

Initially i'm just trying to get a 5MHz tone output when the DDS is set to streaming in the output frequency tab. Using the formula given in the datasheet:

 

delta_phi = (Fout x 2^phase_width) / Fclk

 

(5MHz x 2^17) / 125MHz = 5242.88

 

However, the input to the DDS phase_tdata_pinc wants a UFIX_17_17 value so I can only give it a value between 0 and +1. So I set a constant UFIX_17_0 of 5243, cast it to UFIX_17_17 and fed that to the phase_tdata_pinc input but no joy. My scope shows nothing like a sine wave.

 

Any idea what i'm doing wrong?

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Explorer
Explorer
3,577 Views
Registered: ‎03-03-2011

Re: DDS for CPFSK in System Generator

Jump to solution

Looks like I may have sorted this problem.

 

I came across this whilst having a dig around:

http://www.xilinx.com/support/answers/18288.htm

 

Which states: The output frequency of the DDS is controlled by its phase increment. A phase increment of one tenth (1/10) for the DDS implies that in ten time samples, one sinusoid is completed.

 

My system clock is 125MHz. If I divide the frequency required (let's say 5MHz) by the clock speed we get 5/125 = 0.04. If I apply 0.04 in to the phase_tdata_pinc input I get my 5MHz tone out. The other tone I was looking for is 10MHz so 10/125 = 0.08. Again assigning that value to phase_tdata_pinc I get my 10MHz tone. I'm not really sure why this works as it disagrees with the DDS datasheet formula which I detailed in the previous post.

 

Now if I MUX these two constant values of 0.04 and 0.08 and have the SEL input of the MUX as my binary stream that I want to CPFSK modulate I get the desired continuous phase output from the DDS.

0 Kudos
1 Reply
Highlighted
Explorer
Explorer
3,578 Views
Registered: ‎03-03-2011

Re: DDS for CPFSK in System Generator

Jump to solution

Looks like I may have sorted this problem.

 

I came across this whilst having a dig around:

http://www.xilinx.com/support/answers/18288.htm

 

Which states: The output frequency of the DDS is controlled by its phase increment. A phase increment of one tenth (1/10) for the DDS implies that in ten time samples, one sinusoid is completed.

 

My system clock is 125MHz. If I divide the frequency required (let's say 5MHz) by the clock speed we get 5/125 = 0.04. If I apply 0.04 in to the phase_tdata_pinc input I get my 5MHz tone out. The other tone I was looking for is 10MHz so 10/125 = 0.08. Again assigning that value to phase_tdata_pinc I get my 10MHz tone. I'm not really sure why this works as it disagrees with the DDS datasheet formula which I detailed in the previous post.

 

Now if I MUX these two constant values of 0.04 and 0.08 and have the SEL input of the MUX as my binary stream that I want to CPFSK modulate I get the desired continuous phase output from the DDS.

0 Kudos