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: 
4,143 Views
Registered: ‎02-18-2010

programmable dds core

thanks for reply ,sir

   I amusing 32 bit phase increment value to generate 2mhz and 1999500 hz using formula (fout*2power32/fclk).actually i have to generate 2mhz and then then diff freq. in steps of 500 hz. but when i analyze these samples values  for 2mhz and 1999500 hz on modelsim they were same.

plz tell me the reason.

Thanks 

0 Kudos
3 Replies
Explorer
Explorer
4,136 Views
Registered: ‎02-27-2010

Re: programmable dds core

You didn't provide your fclk.

 

Did my original response to your question leave you without any help?  Without insight into how to clarify the problem you're having?

0 Kudos
4,130 Views
Registered: ‎02-18-2010

Re: programmable dds core

thanks for your reply sir,

  I am using fclk=10mhz, and fout is programmable i.e from 2mhz to 2005000 hz in steps of 500 hz accordingly i am changing the value of 32 bit phase increment value, still the sample value of sine wave is same.

plz tell me the reason.

thanks

swati

0 Kudos
Explorer
Explorer
4,126 Views
Registered: ‎02-27-2010

Re: programmable dds core

You aren't simulating long enough.

 

The difference of 500Hz from a 10MHz fclk results in a value change of around 17 of your 32 bits.  The number of significant bits in your generated sine will determine the number of clocks before you see a difference.  Since the sine value sles the most around the zero crossing, for an 8 bit sine it would take roughly (mentally calculating...) 60 clock cycles before you begin to see a change and then only in the least significant bit around the zero crossing.  You wouldn't see a change in the other 5 samples.  If you have an intial phase.

 

As part of your troubleshooting, I'd suggest you simulate two DDS cores: one programmed for 2MHz, the other for your 500Hz offset value.  Look first at the 32-bit phase accumulato, not the sine output.  Once you see those accumulator values are different by more than 9 MSbits, you'll begin to see the LSbit of an 8-bit sine change on the output.  You can discover for yourself using the tools at your disposal whether you're not updating your phase increment value properly (to all 32 bits) or if you're just not simulating long enough.

 

Effective troubleshooting usually involves dicing your problem up into smaller pieces, focusing in on the piece you identify as not working, splitting that into smaller pieces for analysis and continuing until you find THE piece that's failing.

0 Kudos