If you're not using design compiler.
You can use a look up table. This is the easiest implementation. It is simply a ROM with the sine wave stored in it, for a given phase. So your theta would be the address for the ROM. You'll only need to store 1/4 of the sine wave to take advantage of the symmetry of the sine wave. For cos you simply take advantage of the trig formula: cos(theta) = sin(pi/2 - theta). Excellent paper on this by Lionel Cordesses called "Direct Digital Synthesis: A tool for Periodic Wave Generation."
Or you can use a DSO, which is an unstable IIR filter. There is an excellent paper by Clay Turner on the subject: "Recursive Discrete-Time Sinusoidal Oscillators"