A DDS clock generator uses an NCO (a phase accumulator) and takes some number of MSBs, maps through a sine lookup table, drives a DAC and a lowpass filter and finally a comparator. The DAC output gets pretty ratty near Nyquist, and the filter smooths out and interpolates the steps and reduces jitter.
But why do the sine lookup? Why not use the phase accumulator MSBs directly and get a sawtooth, and filter that?
The lowpass filter looks backwards in time for a bunch of ugly samples to average into a straight line. The older sine samples are the wrong polarity! If the filter impulse response is basically zero over the period of the sawtooth, and we compare near the peak, we'll average a lot of steps and forget the big sawtooth reset.
I want to make four programmable clocks and don't want to buy DDS chips. So use a cheap FPGA and a few resistors as the DAC. Synthesize one octave and divide down for lower frequencies. Gotta sim that.
LT Spice really sucks with digital stuff. Building a phase accumulator would be a horror. I'm working on a PowerBasic program that can dump waveforms to a PWL file that LT Spice can import and filter. Qspice would be better but I'd have to learn that and hack the phase accumulator in c.