From: austin on
John,

3E was its own animal, with a completely different and unique DCM
design, unlike all of the others. I immediately posted that the 256
steps was a mistake in my original post.

3E DCM had some real advantages, but we went back to the "old" DCM
design.

The experience gained in the design of PLLs for the MGTs, led to some
very intense 'digitally calibrated PLL' to the point where in V6, they
are not called DCM nor PLL...as they are not really either (MMCM).

Austin
From: John_H on
On Apr 1, 10:49 am, austin <aus...(a)xilinx.com> wrote:
> John,
>
> 3E was its own animal, with a completely different and unique DCM
> design, unlike all of the others.  I immediately posted that the 256
> steps was a mistake in my original post.
>
> 3E DCM had some real advantages, but we went back to the "old" DCM
> design.
>
> The experience gained in the design of PLLs for the MGTs, led to some
> very intense 'digitally calibrated PLL' to the point where in V6, they
> are not called DCM nor PLL...as they are not really either (MMCM).
>
> Austin

Thanks and my apologies. I see now what you meant with your
correction. The language wasn't clear on what you meant through this
text medium, the newsgroup. I'm sure I would have known what you
meant if we were discussing verbally.

As tough as the S3E variable phase was for the middle of that project,
I really liked the feature and was impressed by the performance.

One fun experiment: feed the output of the DCM to a carry chain (using
a toggle flop) and clock the output of the chain with the original
reference clock, marking the recovered transition point in the carry
chain with an XOR. Visualize the result with LEDs. One spot is
typically lit up along the carry chain. Every increment of the phase
isn't always a visible change, but the average I saw was 4 phase
increments to move one position on the carry-chain readout if it's
between slices, 2 phase increments to see the transition move if it's
within a slice. I think I did this on the Spartan3E starter kit using
the 8 LEDs and the rotary dial. Fun, fun to see it in action.

The controllability was solid, the results pretty darned pristine.
From: austin on
John,

No apology necessary. I posted something half-way "right" and then
followed with a terse correction.

The phase control in 3E was pretty neat, but it was a "solution
looking for a problem" (no one could think of any way to really
exploit it...).

I recently used a DCM with phase shift to measure the delay of a
critical path. I use this information to control the supply voltage.

Although voltage scaling is not supported, one can save ~50% of the
power (static + dynamic) in the Virtex 5 1v core, by lowering the
voltage and keeping the voltage just where the device still works. If
you have a fast corner part, you really save a lot of power. If you
have a slow corner part, then the static power is very low, and even
at 1.0v you are still saving power (over the data sheet which has to
be set at the fastest part that could be shipped).

I control the power supply with a single IO pin, using a 5 bit PWM to
adjust the Vccint from 0.8 v to 1.04v (31 steps used, I don't use
00000). So, a few LUTS, a few DFF, the logic runs off any clock you
have in your design, and the DCM, and one IO pin, some resistors and a
single capacitor to smooth out the PWM, and the supply goes up and
down as needed to keep the device happy (just meeting the TILO of the
speeds file), and saving power.

Now, I think that is useful, but I can't really get any traction
around here for the idea...

One of the down-sides is that below .95v, we do not specify anything
(nothing is guaranteed below 0.95v), so we would have to do a lot more
characterization.

Austin