02-05-2021 07:54 AM
Hi everyone, I have a problem when I control the phase shift at lockout in MMCME3. I want to have a different degree shift at any clock_out but when I use PSEN, PSCLK, PSDONE, PSINCDEC control phase shift at any clock_outs it is the same degree shift. You can see the picture below (I just enable phase shift at clock_out0,1,2) but the degree at clock_out0,1,2 is the same. I don't know how to make it different. Because I want to have 4 clock_out at each clock_out has a different degree. By away, Can you tell me how to reduce the number of the clock for configuration? Because if I want to shift 10 steps, that time I must wait to 10*12 clock(each step needs 12 clocks for PSDONE signal to assert to 1). For example, if I want to shift 360 degrees I need to spend 56*12 clocks (one step = 1/56*VCO)? That's so long time! Anyone you can help me resolve that problem, I really appreciate that
02-05-2021 10:35 AM
So, first. There is only one Dynamic Fine Phase Shift module in an MMCM. This can program a delay in increments of 1/56th of the VCO frequency. You can then select on an output by output basis if a particular clock does or does not use this delay.
It is also important to note that the DFPS is programmable in increments of 1/56 of the VCO frequency - not the output frequency. For a given output the output frequency is the VCO frequency divided by Ox (where Ox is the output divider for your output - also known as the parameter CLKOUT_DIVIDE[x]). Generally your VCO frequency is very high (around or above 1GHz) and your outputs aren't - so for example if you have a 100MHz clock and a VCO frequency of 1600MHz (which is what the tool will choose if it can), then your O will be 16, so for 360 degrees you need 56*16 steps, so 56*16*12 clocks to do it.
However in addition to the Dynamic Fine Phase Shift, each MMCM output can do "regular" phase shifting. Each output can individually be programmed for a shift in increments of 1/8 of the VCO period. So while this is much coarser than the DFPS (1/7th the granularity) it is independently programmable on an output by output basis as long as it is static. It is neither Dynamic nor Fine but it is a Phase Shift.