Hallo Peter,
Danke sch=F6n,Ich wunshe Ihnen guten rutz ins neue Jahr.
Thank you very much,
Monica
Reply by Peter Alfke●January 4, 20062006-01-04
Monica,
you can avoid the delay by clocking everything with the fast clock, and
using a 1-of-8 Clock Enable for the slow circuitry. That keeps
everything in the same clock domain. The only drawback is the higher
power consumption due to the wide distribution of the fast clock.
If almost everything runs at the slower clock, then it might make sense
to analyze carefully whether you can tolerate the skew between the fast
and the slow clock. Yes, you would use the third bit of a synchronous
counter as the slower clock. Do not even think about a ripple-counter
:-(
Since your "high" clock frequency is only 40 MHz, you can also
camouflage the clock skew by using the "other" edge of the 40 MHz
clock...
Frohes Neues Jahr!
Peter Alfke
Reply by Monica●January 4, 20062006-01-04
Peter Alfke wrote:
Hallo,
> Monica, the DCM is obviously not well suited to cope with drastic
> changes in its input frequency.
> I would just forget the DCM (in this application) and use three good
> old flip-flops to build a (synchronous) divide-by-eight circuit. All
> your problems are gone... :-)
> Peter Alfke, Xilinx Applications
Do you mean to use a 3bit counter and connect the Most significant bit
to output clock?
But I fear there will be some delays between the master clock and
derived clock.
Wont we have problems when tranferring data from the derived clock
domain to master clock domain?
I am using DCM because it gives zero delay 1/8th Clock.
Kindly let me if I understood your suggestion correctly.
Thanking you,
Monica
Reply by Austin Lesea●January 4, 20062006-01-04
Peter,
Yes, I agree! If all we are doing is dividing by 8, then a DCM is
definitely not required.
Thanks for observing the obvious.
"When you are a hammer, every problem looks like a nail."
Austin (ex DCM IC design team member)
Peter Alfke wrote:
> Monica, the DCM is obviously not well suited to cope with drastic
> changes in its input frequency.
> I would just forget the DCM (in this application) and use three good
> old flip-flops to build a (synchronous) divide-by-eight circuit. All
> your problems are gone... :-)
> Peter Alfke, Xilinx Applications
>
Reply by Peter Alfke●January 4, 20062006-01-04
Monica, the DCM is obviously not well suited to cope with drastic
changes in its input frequency.
I would just forget the DCM (in this application) and use three good
old flip-flops to build a (synchronous) divide-by-eight circuit. All
your problems are gone... :-)
Peter Alfke, Xilinx Applications
Reply by Sylvain Munaut●January 4, 20062006-01-04
If you have
clk_in -> DCM -> clk_out
with clk_out being 1/8th of the frequency of clk_in, you can add a
small logic block clocked from clk_in that samples clk_out 8 times,
then count the number of 1 to find out the duty cycle (or 16/24/32
times, juste to be sure) and if the duty changes too much, then that
means the DCM needs to be reset.
Reply by Austin Lesea●January 4, 20062006-01-04
Monica,
Not sure you can deal with this problem.
If you have 8 MHz output, be sure you are not going below the min output
frequency specification. It would be safer to use CLKDV, and divide
down to 8 MHz from a hiugher frequency (like a divide by 5 from 40 MHz).
Then, I would use two DCM's.
One DCM is used to monitor the quality, and is periodically reset so
that it can be used as a monitor (checking that it is always able to
re-lock properly).
The other DCM is used to provide the output. If the monitor DCM
indicates after a reset that its status is better (ie it is locked and
OK), then that would tell you that it would would be useful to reset the
DCM providing the output.
One can also have a difference detector from the output of the two DCMs.
If the reset and test DCM output is different from the operating DCM;
that is also an indication that the input has drifted too far, and the
operating DCM is lost.
Just a couple thoughts,
Austin
Monica wrote:
> Hallo,
>
> Thank you very much for the suggestion.
>
> If I understand the datasheet of the DCM correctly,status bits indicate
> the following things.
>
> status[0] indicate if phase shifter has reached its maximum value
> status[1] indicate if CLKIN is present or not
> status[2] indicate CLKFX and CLKFX180 are present or not
> and remaining status bits are reserved(invalid).
>
> How can we determine whether DCM has locked or not using these status
> lines?Did I interpret the data sheet incorrectly?
>
> yes I will reset the DCM if it can show that it is not locked.The
> problem is it is showing that it has locked but giving incorrect
> clock.if it can give an indication that it cannot lock or lock is
> lost,then I can reset the DCM.
>
> Unfortunately system which changes the frequency cannot reset or give
> an indication to the FPGA.if we have to do it then we must redesign our
> hardware to give an addtional line from that system to the FPGA.We will
> do it only if nothing else can be done to solve the problem(because it
> costs heavily).
>
> Kindly let me know how can i deal with this problem.
>
> Thank you very much,
> Monica
>
Reply by Monica●January 4, 20062006-01-04
Dear John Adair,
Thank you very much for the reply.I need an addtional lines to the FPGA
to indicate this frequency change.Time to fight with PCB engineer to
provide one additional line.
Thanks a lot,
Monica
Reply by John Adair●January 4, 20062006-01-04
Monica
The status lines may not be enough. Depending on what happens when you clock
changes but you may get the "not present" showing long enough that you can
register the event.
Other ways to detect clocks running fast or slow but usually you need some
kind of reference clock to compare or run logic from. With the large step
frequency you have it would be easy to detect. Either way you will need more
than the DCM alone to get an indicator. I don't think Xilinx every envisaged
coping with a dynamic clock input as you describe. DCMs tend to like nice
stable clocks.
John Adair
Enterpoint Ltd. - Home of Broaddown2. The Ultimate Spartan3 Development
Board.
http://www.enterpoint.co.uk
"Monica" <monica_dsz@yahoo.com> wrote in message
news:1136387011.980099.285940@f14g2000cwb.googlegroups.com...
> Hallo,
>
> Thank you very much for the suggestion.
>
> If I understand the datasheet of the DCM correctly,status bits indicate
> the following things.
>
> status[0] indicate if phase shifter has reached its maximum value
> status[1] indicate if CLKIN is present or not
> status[2] indicate CLKFX and CLKFX180 are present or not
> and remaining status bits are reserved(invalid).
>
> How can we determine whether DCM has locked or not using these status
> lines?Did I interpret the data sheet incorrectly?
>
> yes I will reset the DCM if it can show that it is not locked.The
> problem is it is showing that it has locked but giving incorrect
> clock.if it can give an indication that it cannot lock or lock is
> lost,then I can reset the DCM.
>
> Unfortunately system which changes the frequency cannot reset or give
> an indication to the FPGA.if we have to do it then we must redesign our
> hardware to give an addtional line from that system to the FPGA.We will
> do it only if nothing else can be done to solve the problem(because it
> costs heavily).
>
> Kindly let me know how can i deal with this problem.
>
> Thank you very much,
> Monica
>
Reply by Monica●January 4, 20062006-01-04
Hallo,
Thank you very much for the suggestion.
If I understand the datasheet of the DCM correctly,status bits indicate
the following things.
status[0] indicate if phase shifter has reached its maximum value
status[1] indicate if CLKIN is present or not
status[2] indicate CLKFX and CLKFX180 are present or not
and remaining status bits are reserved(invalid).
How can we determine whether DCM has locked or not using these status
lines?Did I interpret the data sheet incorrectly?
yes I will reset the DCM if it can show that it is not locked.The
problem is it is showing that it has locked but giving incorrect
clock.if it can give an indication that it cannot lock or lock is
lost,then I can reset the DCM.
Unfortunately system which changes the frequency cannot reset or give
an indication to the FPGA.if we have to do it then we must redesign our
hardware to give an addtional line from that system to the FPGA.We will
do it only if nothing else can be done to solve the problem(because it
costs heavily).
Kindly let me know how can i deal with this problem.
Thank you very much,
Monica