Maybe a specific example will help. Forgot about the 1/4 wave for a moment, and assume you have a memory 16K deep x 16 bits. The 16K elements represent one cycle of a sinewave. Thus, the value of each element is:
MEM
=((2^16)-1) * sin(2*pi*n/(2^16))
The ADDRESS of the memory comes from your phase accumulator, which is simply an accumulator (an adder where one input is its previous output value and the other input is available to you). If your accumulator input is 1, then it will take 16K clock cycles to step through the entire memory. If you use, say, a 16.384MHz clock, you will get an output sinewave with a frequency of 1KHz.
Now if your input to the phase accumulator is 2, you will step through the memory in only 8K clocks, and your output will be 2KHz.
Does this make sense?
For the 1/4 wave version, you have to keep track of the value in the phase accumulator. First, it counts up to it's maximum value, which corresponds to the first 90 degrees of the sine. Then you DECREMENT the accumulator (your input to the accumulator changes sign), and you decrement down to zero. Now, you change your accumulator input back to positive, but you have to invert the output from your memory to get the third part of your sine. Finally, you change your accumulator input sign again, and generate your fourth part. You're now back to zero degrees.
hope this helps.
Barry