Sign in

username:

password:



Not a member?

Search Comp.Arch.FPGA



Search tips

fpga by Keywords

Altera | ASIC | CPLD | Cyclone | DCM | DDR | DSP | Ethernet | ISE | JTAG | Linux | LVDS | Microblaze | ML310 | Modelsim | NIOS | OPB | PCI | Quartus | RocketIO | SDRAM | Spartan | Spartan3 | SRAM | Stratix | Verilog | VHDL | Virtex | Virtex-4 | Virtex-II | Xilinx | XST


Ads

See Also

DSPEmbedded SystemsElectronics

Comp.Arch.FPGA | To get higher clock frequencies at output using propagation delays.

There are 11 messages in this thread.

You are currently looking at messages 0 to 10.

To get higher clock frequencies at output using propagation delays. - Pallavi - 2010-02-09 21:11:00

Hi,

I'm implementing this project where I've to generate higher output clkfrequencies using DCM module. I have used a counter for delay generator,for propagation delays(Pls suggest if there is any other method). I havealso instantiated the DCM module with an input freq of 50MHz and an outputfrequency of 320 MHz. I dont know how to write the test bench for this(orhow to connect the DCM logic to the propagation delays to get higher outputclock frequencies). I'm new to this technology and would highly appreciateif anyone could help me with this. 
the instantiation template is:
dcm1 instance_name (
    .CLKIN_IN(CLKIN_IN), 
    .RST_IN(RST_IN), 
    .CLKFX_OUT(CLKFX_OUT), 
    .CLKIN_IBUFG_OUT(CLKIN_IBUFG_OUT), 
    .CLK0_OUT(CLK0_OUT), 
    .LOCKED_OUT(LOCKED_OUT)
    );
and the counter logic is:
module Counter(Clock, Direction, Count_Out);
    input Clock;
    input Direction;
	 output [3:0] Count_Out;
    reg [3:0] count_int = 0;
   always @(posedge Clock)
      if (Direction)
         count_int <= count_int + 1;
      else
         count_int <= count_int - 1;
			
	assign Count_Out = count_int;		
endmodule



 	   
					
---------------------------------------		
Posted through http://www.FPGARelated.com
______________________________
Join the blogging team on FPGARelated.com and earn rewards! Details Here.



Re: To get higher clock frequencies at output using propagation delays. - Rob Gaddi - 2010-02-10 12:07:00

On Tue, 09 Feb 2010 20:11:02 -0600
"Pallavi" <pallavi_mp@n_o_s_p_a_m.rediffmail.com> wrote:

> Hi,
> 
> I'm implementing this project where I've to generate higher output clk
> frequencies using DCM module. I have used a counter for delay
> generator, for propagation delays(Pls suggest if there is any other
> method). I have also instantiated the DCM module with an input freq
> of 50MHz and an output frequency of 320 MHz. I dont know how to write
> the test bench for this(or how to connect the DCM logic to the
> propagation delays to get higher output clock frequencies). I'm new
> to this technology and would highly appreciate if anyone could help
> me with this. the instantiation template is:
> dcm1 instance_name (
>     .CLKIN_IN(CLKIN_IN), 
>     .RST_IN(RST_IN), 
>     .CLKFX_OUT(CLKFX_OUT), 
>     .CLKIN_IBUFG_OUT(CLKIN_IBUFG_OUT), 
>     .CLK0_OUT(CLK0_OUT), 
>     .LOCKED_OUT(LOCKED_OUT)
>     );
> and the counter logic is:
> module Counter(Clock, Direction, Count_Out);
>     input Clock;
>     input Direction;
> 	 output [3:0] Count_Out;
>     reg [3:0] count_int = 0;
>    always @(posedge Clock)
>       if (Direction)
>          count_int <= count_int + 1;
>       else
>          count_int <= count_int - 1;
> 			
> 	assign Count_Out = count_int;		
> endmodule
> 

I know I'm going to regret this.  I know you're going to wind up being
some student misunderstanding some inane assignment.  But I'm feeling
charitable today and so, against my better judgement, I'm going to try
to walk you back out of the woods.

You're saying you need to generate higher output clock frequencies and
have delays?  Why?  What is it you're actually trying to design here?
I'm making the possibly over-generous assumption here that you're not
simply throwing logic blocks together in random assortments; what's the
actual goal that you're hoping to wind up with?  Because so far what
you're saying doesn't make any sense.  Take a step back, describe what
the project is, and maybe someone will be able to get you pointed in
the right direction.

-- 
Rob Gaddi, Highland Technology
Email address is currently out of order

Re: To get higher clock frequencies at output using propagation delays. - Pallavi - 2010-02-10 20:22:00

>On Tue, 09 Feb 2010 20:11:02 -0600
>"Pallavi" <pallavi_mp@n_o_s_p_a_m.rediffmail.com> wrote:
>
>> Hi,
>> 
>> I'm implementing this project where I've to generate higher output clk
>> frequencies using DCM module. I have used a counter for delay
>> generator, for propagation delays(Pls suggest if there is any other
>> method). I have also instantiated the DCM module with an input freq
>> of 50MHz and an output frequency of 320 MHz. I dont know how to write
>> the test bench for this(or how to connect the DCM logic to the
>> propagation delays to get higher output clock frequencies). I'm new
>> to this technology and would highly appreciate if anyone could help
>> me with this. the instantiation template is:
>> dcm1 instance_name (
>>     .CLKIN_IN(CLKIN_IN), 
>>     .RST_IN(RST_IN), 
>>     .CLKFX_OUT(CLKFX_OUT), 
>>     .CLKIN_IBUFG_OUT(CLKIN_IBUFG_OUT), 
>>     .CLK0_OUT(CLK0_OUT), 
>>     .LOCKED_OUT(LOCKED_OUT)
>>     );
>> and the counter logic is:
>> module Counter(Clock, Direction, Count_Out);
>>     input Clock;
>>     input Direction;
>> 	 output [3:0] Count_Out;
>>     reg [3:0] count_int = 0;
>>    always @(posedge Clock)
>>       if (Direction)
>>          count_int <= count_int + 1;
>>       else
>>          count_int <= count_int - 1;
>> 			
>> 	assign Count_Out = count_int;		
>> endmodule
>> 
>
>I know I'm going to regret this.  I know you're going to wind up being
>some student misunderstanding some inane assignment.  But I'm feeling
>charitable today and so, against my better judgement, I'm going to try
>to walk you back out of the woods.
>
>You're saying you need to generate higher output clock frequencies and
>have delays?  Why?  What is it you're actually trying to design here?
>I'm making the possibly over-generous assumption here that you're not
>simply throwing logic blocks together in random assortments; what's the
>actual goal that you're hoping to wind up with?  Because so far what
>you're saying doesn't make any sense.  Take a step back, describe what
>the project is, and maybe someone will be able to get you pointed in
>the right direction.
>
>-- 
>Rob Gaddi, Highland Technology
>Email address is currently out of order
>

Hello,
Thanks for the reply. This is what the project abstract says:
"FPGA devices are, in general, synchronous machines driven by a systemclock (or several clocks if multiple domains are simultaneouslyimplemented). Thus, the clock period is the basic unit for measuring timeproperties of designs and/or to provide control signals at the outputs.However, FPGA are equipped (at least potentially) with mechanisms providingmuch finer time measurements/generation. For example, by using diversifiedpropagation delays within the implemented designs it is possible togenerate frequencies that are much higher than the system clock frequency.The objective of the project is to propose and implement techniques forgenerating signals (either frequencies of individual pulses) which arebelow the clock period threshold. At the system level, the project consistsin determining propagation delays using programming tools (ISE platform).At the experimental level, the estimated timing characteristics are to beverified for repeatability, stability and consistency".
My professor has asked me to propose delay generators(I dont know what thatmeans). Can you please guide me on this.	   
					
---------------------------------------		
Posted through http://www.FPGARelated.com

Re: To get higher clock frequencies at output using propagation delays. - rickman - 2010-02-10 21:50:00

On Feb 10, 8:22=A0pm, "Pallavi"
<pallavi_mp@n_o_s_p_a_m.rediffmail.com>
wrote:
> >On Tue, 09 Feb 2010 20:11:02 -0600
> >"Pallavi" <pallavi_mp@n_o_s_p_a_m.rediffmail.com> wrote:
>
> >> Hi,
>
> >> I'm implementing this project where I've to generate higher output clk
> >> frequencies using DCM module. I have used a counter for delay
> >> generator, for propagation delays(Pls suggest if there is any other
> >> method). I have also instantiated the DCM module with an input freq
> >> of 50MHz and an output frequency of 320 MHz. I dont know how to write
> >> the test bench for this(or how to connect the DCM logic to the
> >> propagation delays to get higher output clock frequencies). I'm new
> >> to this technology and would highly appreciate if anyone could help
> >> me with this. the instantiation template is:
> >> dcm1 instance_name (
> >> =A0 =A0 .CLKIN_IN(CLKIN_IN),
> >> =A0 =A0 .RST_IN(RST_IN),
> >> =A0 =A0 .CLKFX_OUT(CLKFX_OUT),
> >> =A0 =A0 .CLKIN_IBUFG_OUT(CLKIN_IBUFG_OUT),
> >> =A0 =A0 .CLK0_OUT(CLK0_OUT),
> >> =A0 =A0 .LOCKED_OUT(LOCKED_OUT)
> >> =A0 =A0 );
> >> and the counter logic is:
> >> module Counter(Clock, Direction, Count_Out);
> >> =A0 =A0 input Clock;
> >> =A0 =A0 input Direction;
> >> =A0 =A0 =A0 =A0 output [3:0] Count_Out;
> >> =A0 =A0 reg [3:0] count_int =3D 0;
> >> =A0 =A0always @(posedge Clock)
> >> =A0 =A0 =A0 if (Direction)
> >> =A0 =A0 =A0 =A0 =A0count_int <=3D count_int + 1;
> >> =A0 =A0 =A0 else
> >> =A0 =A0 =A0 =A0 =A0count_int <=3D count_int - 1;
>
> >> =A0 =A0 =A0 =A0assign Count_Out =3D count_int; =A0 =A0 =A0 =A0 =A0
> >> endmodule
>
> >I know I'm going to regret this. =A0I know you're going to wind up being
> >some student misunderstanding some inane assignment. =A0But I'm feeling
> >charitable today and so, against my better judgement, I'm going to try
> >to walk you back out of the woods.
>
> >You're saying you need to generate higher output clock frequencies and
> >have delays? =A0Why? =A0What is it you're actually trying to design here=
?
> >I'm making the possibly over-generous assumption here that you're not
> >simply throwing logic blocks together in random assortments; what's the
> >actual goal that you're hoping to wind up with? =A0Because so far what
> >you're saying doesn't make any sense. =A0Take a step back, describe what
> >the project is, and maybe someone will be able to get you pointed in
> >the right direction.
>
> >--
> >Rob Gaddi, Highland Technology
> >Email address is currently out of order
>
> Hello,
> Thanks for the reply. This is what the project abstract says:
> "FPGA devices are, in general, synchronous machines driven by a system
> clock (or several clocks if multiple domains are simultaneously
> implemented). Thus, the clock period is the basic unit for measuring time
> properties of designs and/or to provide control signals at the outputs.
> However, FPGA are equipped (at least potentially) with mechanisms providi=
ng
> much finer time measurements/generation. For example, by using diversifie=
d
> propagation delays within the implemented designs it is possible to
> generate frequencies that are much higher than the system clock frequency=
.
> The objective of the project is to propose and implement techniques for
> generating signals (either frequencies of individual pulses) which are
> below the clock period threshold. At the system level, the project consis=
ts
> in determining propagation delays using programming tools (ISE platform).
> At the experimental level, the estimated timing characteristics are to be
> verified for repeatability, stability and consistency".
> My professor has asked me to propose delay generators(I dont know what th=
at
> means). Can you please guide me on this. =A0 =A0 =A0 =A0 =A0


It sounds to me that your professor either does not really understand
FPGAs (in the real world) or this is just an exercise for the mind.

A delay generator is just that, a function block that just delays a
signal by some known amount of time.  But anyone who knows anything
about working with FPGAs or any other type of logic design knows that
logic delays vary over a wide range depending on the power voltage,
the chip temperature and the processing that created the chip.  The
rule of thumb I have read is that delays can vary (considering all of
the above over their full range) by a factor of 2!  This makes it very
hard to use the delays for most purposes.

The idea of using delays in the FPGA has been discussed here a number
of times and no one has ever described anything but theory.

Using a DCM is one way to reduce the minimum timing period in a way
intended by the FPGA vendors and fully supported by them.  A DCM is
capable of acting as a PLL to multiply the frequency of the supplied
clock.  This is mainly useful for running the logic at a higher rate.
I am not clear on what is meant by "generating signals (either
frequencies of individual pulses) which are below the clock period
threshold".  I think by "frequencies" he means clocks, so the DCM
should do the job here.

But whether this is what your professor wants depends on what he
intends to use it for.

Good Luck,

Rick

Re: To get higher clock frequencies at output using propagation delays. - -jg - 2010-02-10 23:23:00

On Feb 11, 2:22=A0pm, "Pallavi"
<pallavi_mp@n_o_s_p_a_m.rediffmail.com>
wrote:
> However, FPGA are equipped (at least potentially) with mechanisms providi=
ng
> much finer time measurements/generation.

This is correct.

> For example, by using diversified
> propagation delays within the implemented designs it is possible to
> generate frequencies that are much higher than the system clock frequency=
.

This is on thinner ice, as you DO need to be very clear about TIME and
FREQUENCY, and the two are not quite as interchangable as the Prof
might think.

> The objective of the project is to propose and implement techniques for
> generating signals (either frequencies of individual pulses) which are
> below the clock period threshold.

Pulse delays you can do, to sub-ns granularity, but Frequencies will
hit a practical ClockMax ceiling.
So usable Fmax is NOT 1/(delay granularity)

> At the system level, the project consists
> in determining propagation delays using programming tools (ISE platform).

You will need more than programming tools.
At the very least, a Frequency Counter.
If you scale within the FPGA (easy to do) you can use
a Sound Card + SW.

Typically you construct a ring oscillator, using a significant number
of delay/logic elements, then  measure the Frequency, and calculate
the element delay from that.

> At the experimental level, the estimated timing characteristics are to be
> verified for repeatability, stability and consistency".

Be sure to vary Voltage and temperature.

-jg


Re: To get higher clock frequencies at output using propagation delays. - Morten Leikvoll - 2010-02-11 04:50:00

"Pallavi"
<pallavi_mp@n_o_s_p_a_m.rediffmail.com> wrote in message 
news:w...@giganews.com...
> Hello,
> Thanks for the reply. This is what the project abstract says:
> "FPGA devices are, in general, synchronous machines driven by a system
> clock (or several clocks if multiple domains are simultaneously
> implemented). Thus, the clock period is the basic unit for measuring time
> properties of designs and/or to provide control signals at the outputs.
> However, FPGA are equipped (at least potentially) with mechanisms 
> providing
> much finer time measurements/generation. For example, by using diversified
> propagation delays within the implemented designs it is possible to
> generate frequencies that are much higher than the system clock frequency.
> The objective of the project is to propose and implement techniques for
> generating signals (either frequencies of individual pulses) which are
> below the clock period threshold. At the system level, the project 
> consists
> in determining propagation delays using programming tools (ISE platform).
> At the experimental level, the estimated timing characteristics are to be
> verified for repeatability, stability and consistency".
> My professor has asked me to propose delay generators(I dont know what 
> that
> means). Can you please guide me on this.

My initial understanding of this is that he wants to see a syncronous input 
output delay by a certain resolution higher than the sysem clk.
So if your DLL multiplies the input clk with the factor M, where M is 
limited by input clk and max dll freq, you should be able to delay a signal 
through, say one or several srl16 primitives with this systemclk*M 
resolution.
The new delayed output signal will of course be syncronous in the sysclk*M 
domain, not in the sysclk.



Re: To get higher clock frequencies at output using propagation delays. - Pallavi - 2010-02-14 22:04:00

Thank you all for your replies. I discussed with
my prof regarding theproject and this is what I'm supposed to do. I have implemented a counteralready. Using the propagation delays for each clock cycle i need to drivea shift register. That is, this shift register will be having a higherinput clock(330MHZ) than the counter(25MHz). And it will be cleared for theduration the propagation delay is active for the counter. Before clearing,the value needs to be copied to a priority encoder. So finally, the numberof f/fs storing the value times the clock freq in nanoseconds (approx. 3nsin this case) will be the output. Hope I was able to expalin it properly.DO I have to write the shift regiater as a different module? Which type ofregister to use for this purpose? How to implement the clearing logic forshift register considering the propagation delays of counter? Please helpme.	   
					
---------------------------------------		
Posted through http://www.FPGARelated.com
______________________________
Join the blogging team on FPGARelated.com and earn rewards! Details Here.

Re: To get higher clock frequencies at output using propagation delays. - glen herrmannsfeldt - 2010-02-14 22:19:00

Pallavi
<pallavi_mp@n_o_s_p_a_m.rediffmail.com> wrote:

> Thank you all for your replies. I discussed with my prof regarding the
> project and this is what I'm supposed to do. I have implemented a counter
> already. Using the propagation delays for each clock cycle i need to drive
> a shift register. That is, this shift register will be having a higher
> input clock(330MHZ) than the counter(25MHz). And it will be cleared for the
> duration the propagation delay is active for the counter. 

Not knowing about your design, it would seem easier to use a wider
shift register at a slower clock rate.  Maybe that isn't possible,
but if it is that is probably a better way.  (Though since 330
isn't divisible by 25, maybe I don't know what you are doing at all.)

> Before clearing,
> the value needs to be copied to a priority encoder. So finally, the number
> of f/fs storing the value times the clock freq in nanoseconds (approx. 3ns
> in this case) will be the output. Hope I was able to expalin it properly.
> DO I have to write the shift regiater as a different module? 

You pretty much never NEED to write something as a different
module, but often it is easier to write (and for someone else to read.)

> Which type of
> register to use for this purpose? How to implement the clearing logic for
> shift register considering the propagation delays of counter? Please help
> me.        

How long is the SR and how wide is the priority encoder?

-- glen

Re: To get higher clock frequencies at output using propagation delays. - Pallavi - 2010-02-15 06:06:00

The length of the SR and the width of priority
encoder is for me todecide(8-bit should be sufficient, I guess). Can you please suggest whatshould be the appropiate length. To write a testbench the counter and SRshould be in the same module right? Or can we have more than one modules ina single 'Verilog file'? Please let me know how to use the propagationdelay of counter output to get the clearing logic for SR. The i/p clk forSR should be a multiple of Counter clk? In that case the clk for SR can betaken as 300Mhz.	   
					
---------------------------------------		
Posted through http://www.FPGARelated.com

Re: To get higher clock frequencies at output using propagation delays. - RCIngham - 2010-02-15 07:19:00

>The length of the SR and the width of
priority encoder is for me to
>decide(8-bit should be sufficient, I guess). Can you please suggest what
>should be the appropiate length. To write a testbench the counter and SR
>should be in the same module right? Or can we have more than one modulesin
>a single 'Verilog file'? Please let me know how to use the propagation
>delay of counter output to get the clearing logic for SR. The i/p clk for
>SR should be a multiple of Counter clk? In that case the clk for SR canbe
>taken as 300Mhz.	   
>					

"Normal industrial practice" is to have 1 module per file. But the toolsthat you will use (simulator, synthesizer) will probably allow multiplemodules in a file. 

Perhaps you should go through any tutorials that come with the tools - orthat you can download from the FPGA vendor's website - before proceedingany further. These should answer your more obvious questions...

	   
					
---------------------------------------		
Posted through http://www.FPGARelated.com

| 1 | 2 | next