Emiliyan
Newbie level 1

Hello. I'm trying to create a DDS generator that generates multiple frequencies at it's output an these frequencies should be addressed with the addr port so a single frequency is present at the sine output of the generator at a specific moment. I have a problem that I cannot figure out how to solve. When I create the DDS IP instance, these are the settings I'm using:
I'm configuring the generator as a Phase Generator and SIN CON LUT
System Clock - 100Mhz
Number of Channels - 4
Hardware Parameters:
- Phase Width - 24
- Output Width - 8
I select Sine as output selection and Full Range for the amplitude mode.
The only optional pins I'm using is the Clock Enable pin.
Here's how I calculate the phase angle increment values (binary):
I check the frequency resolution and it's 1.49Hz and the phase width is 24 bits.
So if I want to acquire 770Hz at the sine output I divide 770Hz/1.49Hz ~ 517 that's 0000 0101 as a binary value. I enter this value as the first phase angle increment value. I calculate the binary values for the other frequencies I want to get the same way.
When I'm finished with the calculation I click on the generate button and the DDS generator is created. After that using a simple VHDL code I try to get a single frequency at the output and here is where my problem comes. If I use a simple construction as:
I get a weird signal that looks like a distorted sine wave with a frequency similar to the one I want. I've attached three oscilloscope screenshots that show the signal waveform.
**broken link removed**
If I try to generate only one single frequency at the DDS generator output, I have no problems, it's working fine and the signal frequency is exactly as it's expected to be. In this situation I'm using only the clock enable pin of the generator. I'm using a Nexys2 board and I have attached an external 8-bit parallel DAC to the 12-pin Pmod connector of the evaluation board that's working fine. Here's a screenshot of the waveform when I've set up the DDS generator to output a single frequency.

I think that there might be something wrong with the addressing I'm using to get a particular frequency or with the configuration of the generator that I'm entering at the DDS configuration wizard.
I can provide my full VHDL code if you think it's necessary.
Any help will be appreciated. Thank you.
I'm configuring the generator as a Phase Generator and SIN CON LUT
System Clock - 100Mhz
Number of Channels - 4
Hardware Parameters:
- Phase Width - 24
- Output Width - 8
I select Sine as output selection and Full Range for the amplitude mode.
The only optional pins I'm using is the Clock Enable pin.
Here's how I calculate the phase angle increment values (binary):
I check the frequency resolution and it's 1.49Hz and the phase width is 24 bits.
So if I want to acquire 770Hz at the sine output I divide 770Hz/1.49Hz ~ 517 that's 0000 0101 as a binary value. I enter this value as the first phase angle increment value. I calculate the binary values for the other frequencies I want to get the same way.
When I'm finished with the calculation I click on the generate button and the DDS generator is created. After that using a simple VHDL code I try to get a single frequency at the output and here is where my problem comes. If I use a simple construction as:
Code VHDL - [expand] 1 2 addr <= "00"; ce <= '1';
I get a weird signal that looks like a distorted sine wave with a frequency similar to the one I want. I've attached three oscilloscope screenshots that show the signal waveform.


If I try to generate only one single frequency at the DDS generator output, I have no problems, it's working fine and the signal frequency is exactly as it's expected to be. In this situation I'm using only the clock enable pin of the generator. I'm using a Nexys2 board and I have attached an external 8-bit parallel DAC to the 12-pin Pmod connector of the evaluation board that's working fine. Here's a screenshot of the waveform when I've set up the DDS generator to output a single frequency.

I think that there might be something wrong with the addressing I'm using to get a particular frequency or with the configuration of the generator that I'm entering at the DDS configuration wizard.
I can provide my full VHDL code if you think it's necessary.
Any help will be appreciated. Thank you.
Last edited: