Can anyone give guidelines on how to generate sine and cosine wave in VHDL?

You can build a numerical oscillator: Initialization: sin[0] = 1; cos[0] = 0; Iteration: sin[t] = sin[t-1]-cos[t-1]*k; cos[t] = cos[t-1]+sin[t-1]*k; The Frequency depends on k. If k is 1/2**k you do not even net a multiplier. This only works for a continues sequence of values. If you need values in random order you must use a lookup table or CORDIC. Both are available as cores in ISE. Kolja Sulimma cronologic ohg

If you slightly modify the iteration, like this: sin[t] = sin[t-1] - cos[t-1] * k; cos[t] = cos[t-1] + sin[t] * k; then the solution doesn't suffer from accumulating rounding errors, at the cost of some distortion.