FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
5881 Discussions

Multi frequency design in DSP Builder how manage clocks

Honored Contributor II

i have a 64 bit divider in a design. i can't meet setup constraint @100MHz. 


i would then add a PLL that thake the 100 MHz base clock and outputs 


PLL_clk0 @ 100MHz for my design 

PLL_clk1 @ 50 MHz for the divider 


So i wuold use the Tsamp blocks outputting PLL_clk0 for all inputs and outputs at the boundaries of my dsp builder design 


and Tsamp blocks outputting PLL_clk1 at the input of my divider. 


Am i right? Or i should use the base clock and the PLL_clk1 only?
0 Kudos
4 Replies
Honored Contributor II

If your are only failing to meet the setup constraints - then just delay the data until the next clock. 

If you are trying to do a 64bit divide in even 20ns you are being very hopeful! 


The simplest didvide logic will take approx 32 clocks (for 32bit divosor/quotent.
Honored Contributor II

thank you for your reply. 

I have 64 bit divider and divisor. 

I added 64 pipeline registers inside the divider. 

But i can't meet constraint at 100 MHz too. 

Now running at 50 MHz, setup constraints are met. 


I would like to know if i'm right with this solution or if a better solution is suggested and if i managed well the PLL in the design
Honored Contributor II

So you have 64 (ish) separate subtract-mux blocks separated by latches? 

Rather than a logic loop? 

Allowing you to feed in a new value every clock. 


You should be able to make the whole thing run at half speed by using an extra enable line for all the latches. 


There are much faster ways of doing divide that use a lot less logic.
Honored Contributor II

maybe there is a misunderstanding. 

i am using the divider of the standard blockset of Altera. 

In the GUI, i specified 64 stages of latency. 

i don't know how the divider works internally. 


I would know if i can use this divider at half frequency (50 MHz) and 64 stages of latency 


or if i have to do my own divider