From: Mathias Weierganz on 4 Dec 2009 05:30 As a beginner in FPGA design I run to the following problem: I want to generate a 200MHz clock by the DCM from 2 different clock sources, one is a 10MHz clock, the other is 60MHz. My idea was to divide the 60MHz by 6 and alternatively switch between the both clock-signals. I use the Xilinx ISE9.1 and a Spartan3. The synthesis (XST) was ok, but the Translate process shows this error: ERROR:NgdBuild:455 - logical net 'clk10mhz' has multiple driver(s): pin O on block clk10mhz1 with type LUT3, pin PAD on block clk10mhz with type PAD ERROR:NgdBuild:924 - input pad net 'clk10mhz' is driving non-buffer primitives: pin O on block clk10mhz1 with type LUT3 When I put the selected clock to an output and read it from another input and put it direct to the DCM then my design works very well. What is my fault? Mathias
From: Gabor on 4 Dec 2009 09:16 On Dec 4, 5:30 am, Mathias Weierganz <mwe...(a)expires-31-12-2009.news- group.org> wrote: > As a beginner in FPGA design I run to the following problem: > I want to generate a 200MHz clock by the DCM from 2 different > clock sources, one is a 10MHz clock, the other is 60MHz. > My idea was to divide the 60MHz by 6 and alternatively > switch between the both clock-signals. > > I use the Xilinx ISE9.1 and a Spartan3. > The synthesis (XST) was ok, but the Translate process shows > this error: > > ERROR:NgdBuild:455 - logical net 'clk10mhz' has multiple driver(s): > pin O on block clk10mhz1 with type LUT3, > pin PAD on block clk10mhz with type PAD > ERROR:NgdBuild:924 - input pad net 'clk10mhz' is driving non-buffer > primitives: > pin O on block clk10mhz1 with type LUT3 > > When I put the selected clock to an output and read it from > another input and put it direct to the DCM then my design > works very well. > > What is my fault? > > Mathias Did you use the architecture wizard (or CoreGen) to "create" your DCM? This method has a habit of adding the input pin buffer, which you obviously don't want if the input to the DCM comes from an internal signal. Regards, Gabor
From: Mathias Weierganz on 7 Dec 2009 02:49 > Did you use the architecture wizard (or CoreGen) to "create" > your DCM? This method has a habit of adding the input pin > buffer, which you obviously don't want if the input to the > DCM comes from an internal signal. Thank you very much: Yes, I use the wizard and there is a checkbox if the clkin source is internal or external. But after a change of this checkbox it is necessary to make a little change in the source code. A view to the intantiation template is helpful. Mathias.
From: Angus on 24 Dec 2009 12:25 On 4 Dec, 10:30, Mathias Weierganz <mwe...(a)expires-31-12-2009.news- group.org> wrote: > As a beginner in FPGA design I run to the following problem: > I want to generate a 200MHz clock by the DCM from 2 different > clock sources, one is a 10MHz clock, the other is 60MHz. > My idea was to divide the 60MHz by 6 and alternatively > switch between the both clock-signals. > > Mathias I am slightly confused with your suggestion. To generate a 200mhz clock signal from a 10 (or 60) mhz clock input, you have just to set the DCM frequency multiplication to 20(or 20/6). Am I mistaken?
From: Gabor on 24 Dec 2009 17:47 On Dec 24, 12:25 pm, Angus <angusdun...(a)googlemail.com> wrote: > On 4 Dec, 10:30, Mathias Weierganz <mwe...(a)expires-31-12-2009.news- > > group.org> wrote: > > As a beginner in FPGA design I run to the following problem: > > I want to generate a 200MHz clock by the DCM from 2 different > > clock sources, one is a 10MHz clock, the other is 60MHz. > > My idea was to divide the 60MHz by 6 and alternatively > > switch between the both clock-signals. > > > Mathias > > I am slightly confused with your suggestion. To generate a 200mhz > clock signal from a 10 (or 60) mhz clock input, you have just to set > the DCM frequency multiplication to 20(or 20/6). Am I mistaken? The issue would be switching clock sources on the fly. The DCM at least before Virtex 5 was completely programmed by the bitstream, so you couldn't change the multiplication / division factors without at least a partial reconfiguration. So the idea of creating the same input frequency from two sources seems sound. What you might lose is any constant phase relationship to the input clocks. However if this is just a frequency synthesis problem that shouldn't matter. There's no reason not to use a fabric signal to feed the DCM if you don't need that phase relationship back to the input source. I suppose the original idea was to allow two sources so the 200 MHz would be available even if only one of the two clocks is running. One note of caution, if you have two clocks and want to switch between them using a BUFGMUX, then you should be aware that the glitch prevention circuitry can prevent the switch from occurring if one of the clocks is not running. So it may be better to use a fabric-based mux followed by a simple BUFG. Regards, Gabor
|
Pages: 1 Prev: Where to go when Spartan-3A DSP 3400 is full? Next: Picoblaze bit file block ram remplacement |