Global Clock

N

nfirtaps

On a Xilinx Spartan 3.

If I have a clock that comes into the FPGA through the following order

1.) Onto IO line pin
2.) Into IBUFG
3.) Out of IBUFG
4.) Into DCM
5.) Output of DCM goes to signal, just 1x multiplication, feeback is
this signal
6.) DCM 1x output signal goes into a BUFG
7.) Output of BUFG goes into a component
8.) Component drives control signals based on the input clock
9.) Output of control signals go to OBUF's and out the FPGA

Are there any problems with this?


I seem to have some clocking issues where a control signal from this
clock is not going low before another rising egde of the clock.

Thanks,
Lloyd
 
M

Mike Treseler

nfirtaps said:
Are there any problems with this?

If there are "clocking issues", there is a problem
I seem to have some clocking issues where a control signal from this
clock is not going low before another rising egde of the clock.

I count about four clock domains.
The ideal situation is to clock everything
from the same global net (one clock domain).
If this is not possible standard practice is
to employ PLL constraints, synchronized handshakes,
or fifos to make clean crossings.

-- Mike Treseler
 
N

nfirtaps

I don't see a way around using this many clock domains. The Spartan 3
data sheet recommends having the output of a DCM go out into a bufg or
bufgmux, and the input to the DCM should be in from an ibufg I assume.
Having the clock port mapped into a component this does not switch
clock domains does it? In all the code examples I have seen this is
how the clock is handled.
 
N

Neo

The ISE should have inferred a single clock for this but are you doing
hand routing?
 
N

nfirtaps

Yes I am doing this by hand routing. I am literally instantiating
buffer components in my code.
 
M

markus_1401

I work with Virtex more than Spartan, but it looks like your connection
is valid.

Try connecting the output of the BUFG into the feedback as opposed to
DCM output directly into CLKFB. By the way, when you say clock 1x, you
really mean CLK0 output of DCM right?
 
J

John Jensen

Does the 1x output of the DCM (step 5) or the output of the BUFG (step 6)
connect to the feedback input? For proper deskewing, the feedback should come
from the BUFG (step 6).

John Jensen
 
N

nfirtaps

John said:
Does the 1x output of the DCM (step 5) or the output of the BUFG (step 6)
connect to the feedback input? For proper deskewing, the feedback should come
from the BUFG (step 6).

John Jensen


John, Thanks so much for the reply. The feedback does not go through a
BUFG before going back into the DCM. I will change my design so the
feedback goes through a BUFG, and the output CLK0 goes through a BUFG
and is then used as the main clock.
 
J

John Jensen

John, Thanks so much for the reply. The feedback does not go through a
BUFG before going back into the DCM. I will change my design so the
feedback goes through a BUFG, and the output CLK0 goes through a BUFG
and is then used as the main clock.

Lloyd,

Just to clarify your response, are you going to use two BUFGs (one for the
feedback and one for CLK0)? You probably want to use a single BUFG derived
from the CLK0 output to source the feedback into the DCM and clock your
circuit.

Xilinx has a good application note on how to use the DCM in a variety of
configurations. The link is
http://direct.xilinx.com/bvdocs/appnotes/xapp462.pdf . The ISE architecture
wizard can also help build up these DCM circuits with various configuration
options. Hope this helps.

John Jensen
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,572
Members
45,046
Latest member
Gavizuho

Latest Threads

Top