FPGA Central - World's 1st FPGA / CPLD Portal

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > Verilog

Verilog comp.lang.verilog newsgroup / usenet

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 01-18-2007, 06:20 AM
K. Sudheer Kumar
Guest
 
Posts: n/a
Default Generation of Divided-by-3 clock

Hi,

I need to generate a 70MHz clock from 210MHz. Is there any way to
generate it rather than using a DCM.

Thanks,

Sudheer

Reply With Quote
  #2 (permalink)  
Old 01-18-2007, 07:22 AM
gallen
Guest
 
Posts: n/a
Default Re: Generation of Divided-by-3 clock

This is not a hard problem if you don't care about duty cycle. I'll
leave that for you to logic out, but if you need 50% duty cycle then
there are tricks.

Peter Alfke from Xilinx wrote an excellent article about clock dividers
titled "Unusual Clock Dividers." It was published the Xilinx's Xcell
Journal. I believe issue 33, but it appears Xilinx has gotten rid of
that article as it's archives don't go back far at all anymore.

You could probably find it through some googling, but this brings up
another point: Why would Xilinx remove it's archives? It's not like
the material was dated.

That particular article has been of use to me several times. Peter
wrote a great article. I'd like to see it come back.

-Arlen


K. Sudheer Kumar wrote:
> Hi,
>
> I need to generate a 70MHz clock from 210MHz. Is there any way to
> generate it rather than using a DCM.
>
> Thanks,
>
> Sudheer


Reply With Quote
  #3 (permalink)  
Old 01-18-2007, 06:26 PM
visiblepulse
Guest
 
Posts: n/a
Default Re: Generation of Divided-by-3 clock

module clock_div3
(
clock_in,
clock_out
);

input clock_in;
output clock_out;

reg clock_out;
reg [2:1] d_pos;
reg [2:1] d_neg;


always @ (posedge clock_in)
case (d_pos)
2'b00: d_pos[2:1] <= 2'b01;
2'b01: d_pos[2:1] <= 2'b11;
default: d_pos[2:1] <= 2'b00;
endcase

always @ (negedge clock_in)
case (d_neg)
2'b00: if (d_pos[1]) d_neg[2:1] <= 2'b01;
2'b01: d_neg[2:1] <= 2'b10;
default: d_neg[2:1] <= 2'b00;
endcase

always @ (posedge clock_in or posedge (d_neg[1] & !clock_in))
if (d_neg[1] & !clock_in)
clock_out <= 1'b0;
else
if (!d_pos[1]) clock_out <= 1'b1;

endmodule

Reply With Quote
  #4 (permalink)  
Old 01-19-2007, 03:14 PM
Ralf Hildebrandt
Guest
 
Posts: n/a
Default Re: Generation of Divided-by-3 clock

K. Sudheer Kumar schrieb:

> I need to generate a 70MHz clock from 210MHz. Is there any way to
> generate it rather than using a DCM.


You could use pseudo dual-edge flipflops.
http://www.ralf-hildebrandt.de/publi...ff/pde_dff.pdf

Ralf
Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Divide by 3/2 clock generation with 50% duty cycle? rsk Verilog 7 07-25-2005 09:36 PM
Verilog Generation Combinational Logic Verilog 2 05-28-2005 09:46 AM
an alternative method to do divided clocks Metin Yerlikaya Verilog 4 02-15-2005 11:23 PM
Random number generation in Windows - how to use wall clock? FGreen Verilog 2 10-27-2004 04:40 PM
sdf generation from dpsf kris Verilog 0 01-27-2004 04:04 AM


All times are GMT +1. The time now is 03:58 PM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved