example dds simulation+modelsim
Wow, I didn't expect to see that!
Your 'sine' signal is displayed as simple binary, so it has no vertical scale. Earlier, when you said it was displaying only "half way", I thought you meant in the vertical direction, not in the horizontal direction. My comments about signed and unsigned therefore don't apply.
The Xilinx DDS core shouldn't run at all during the first 100ns, because the FPGA's global reset signal is active. Your signals are somehow active before that time, and then become undefined after a few clock cycles. Also, your signals appear to change on the *negative* edge of the clock instead of the positive edge. Very strange!
Your screen snapshot shows only the first 35ns. Does anything interesting happen after 100ns?
To display the "sine" signal as an analog waveform (like my snapshot), right-click the signal name, click Properties, change the radix to decimal, change the format to analog, change the offset to 128, change the scale to 0.5, and change the height to 128.
I've never seen a malfunction like your display. I don't know what's wrong. Maybe it's an installation/configuration problem between ISE and ModelSim. Be sure you have installed all the available ISE and IP service packs. Which version of Xilinx ISE are you using?
Your screen snapshot looks like a pre-route simulation. Is that correct, or is it a post-route simulation? If it's a post-route simulation, then I don't think any Xilinx device can run the DDS core at 500 MHz, so maybe that's what's wrong. Does ModelSim give you any timing warning messages?
Maybe you could zip up all your project files and upload them somewhere, so someone could try to figure out what's going wrong.