Hi
I'm currently trying to simulate a circuit including two different clocks running at two different frequencies. Both clocks are subsequently divided throughout the circuit and at the outputs of interest I am concerned on the clock quality degradation (from harmonics/spur perspective) due to the parallel clock running at the same time. Due to the active blocks included along the clock chains, I am interested to know how the source clock harmonics couple/fold down to the divided clocks of interest at the outputs. My understanding is that this is a classical crosstalk analysis problem. I am using Spectre 20.1.0.354.isr11 64 bits
At the moment I am not sure the best approach to setup this simulation. Ideally I would like to run a qpss/pss-alike analysis in which I could set a main source clock (CLK1) while sweeping the other large-signal source clock (CLK2). This is apparently not possible through the QPSS/HB setup since Spectre expects that one signal is the large-signal clock while the second signal is of moderate non-linearity. I have tried setting up the hb as follows
fundamental_freq1 = f1 (source frequency = 2*f1)
fundamental_freq2 = f2 (source frequency = 2*f1)
num_harm_freq1 = num_harm_freq2 = 11
oversampling_freq1 = oversampling_freq2 = 1
My output of interest is at one of the divider's output (f1 = source1 / 2), while the other divider is running at the same time (f2 = source2 / 2) but I have observed that during hb tstab only the first source (2*f1) is running, while the other source (2*f2) is set to 0 and therefore, I get no output after on the second divider after steady state and the simulation is obviously not converging.
Alternatively, I tried as well running directly PSS using 2 large tones, which seems to converge and give me the required harmonics effect, but unfortunately I am strongly limited to frequency pairs whose GCD is manageable from the number of harmonics perspective. The ultimate solution is to run spectrum analysis on transient simulations but it would be great to know if there is a more efficient simulation setup alternative to tackle this problem.
Hopefully I could explain myself well enough , any feedback is appreciated.
Thanks in advance