Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
17255 Discussions

Maximum Operating Frequency

Altera_Forum
Honored Contributor II
2,900 Views

Hi everybody, 

 

I designed a sample architecture in Quartus 10.1 by using EP4CE22F17C6. I used a bit generator and parallel mux blocks and run all architectures. I connect output of the bit generator to sel input of the mux blocks. When I added a mux block or removed a mux block, maximum operating freqeuncy of the system changed. I think that this case can not influence maximum operating frequency, because all mux blocks consists of same code and operate parallel.  

 

The System's clock name is clk and I write "create_clock -period 0.25 -name clk_100 [get_ports clk]" in SDC file. I atteched my files in this message. I could not solve this problem. 

 

Can anyone help me? 

 

Thank you very much.
0 Kudos
15 Replies
Altera_Forum
Honored Contributor II
1,872 Views

The max frequncy will change depending on the design, routing and random fitter seed. 

Changing the design will change the routing and hence the Fmax
0 Kudos
Altera_Forum
Honored Contributor II
1,872 Views

 

--- Quote Start ---  

The max frequncy will change depending on the design, routing and random fitter seed. 

Changing the design will change the routing and hence the Fmax 

--- Quote End ---  

 

 

Tricky, thank you for your reply. 

 

However, I think that Fmax depends on maximum path delay. In the my design, max. path delay is always fixed. I only change number of parallel mux which consist of same code.
0 Kudos
Altera_Forum
Honored Contributor II
1,872 Views

does it really need to code multiplexor as you ? 

why not to use simple else clause in single if instead of multiple if , and if you want multiplexor more than for 2 signal it is better to use case. 

in any case your multiplexor have the same arhitecture and you need only one definition to make instance of all others. Only section for port map should be changed. 

Are you sure that 0.25 is good value for 100MHz clock??? 

 

So you need make code more readable and manageable. And calculate right value. 

you can apply restructure multiplexor global assignment if it be applicable you will see in report if it takes place. 

Check Analysis and Synthesis report for average and max LUT-depth keep average at 5 or below. Compare your RTL with structure your await.
0 Kudos
Altera_Forum
Honored Contributor II
1,872 Views

 

--- Quote Start ---  

does it really need to code multiplexor as you ? 

why not to use simple else clause in single if instead of multiple if , and if you want multiplexor more than for 2 signal it is better to use case. 

in any case your multiplexor have the same arhitecture and you need only one definition to make instance of all others. Only section for port map should be changed. 

Are you sure that 0.25 is good value for 100MHz clock??? 

 

So you need make code more readable and manageable. And calculate right value. 

you can apply restructure multiplexor global assignment if it be applicable you will see in report if it takes place. 

Check Analysis and Synthesis report for average and max LUT-depth keep average at 5 or below. Compare your RTL with structure your await. 

--- Quote End ---  

 

 

Alex96, thank you for your reply.  

 

It is important that Fmax is changing when parallel mux blocks are added or removed. Therefore, my aim doesn't design a mux block. My aim is providing of unchanged Fmax for adding or removing of parallel operating blocks. Additionally, I havnt got a 100MHz clock. My period is 0.25. Yes, the code dont manageable, however, more readable and manageable code cant help how change Fmax. The subject isnt manageable or structure of the code, the subject is that Fmax affacts from number of the parallel architecture with same path delay. My architecture is only simple example.  

 

Yes, I make a some mistakes, but I couldnt find the problem. I think that I make mistake usage of the tools or Tricky said: random fitter seed. If second is correct, how are there parallel architectures with fixed Fmax?
0 Kudos
Altera_Forum
Honored Contributor II
1,872 Views

Start by adding a pll to compensate clock

0 Kudos
Altera_Forum
Honored Contributor II
1,872 Views

your clock signal operates at 4GHz according to report and provided value :) and fitter achieved Fmax at 178Mhz in worst-case scenario (Slow 1200mV, 85C).  

the worst path in report is yout bit_gen entity.
0 Kudos
Altera_Forum
Honored Contributor II
1,872 Views

 

--- Quote Start ---  

Start by adding a pll to compensate clock 

--- Quote End ---  

 

 

flz47655, thank you for your suggestion. I trid it but, I obtained same results.
0 Kudos
Altera_Forum
Honored Contributor II
1,872 Views

 

--- Quote Start ---  

your clock signal operates at 4GHz according to report and provided value :) and fitter achieved Fmax at 178Mhz in worst-case scenario (Slow 1200mV, 85C).  

the worst path in report is yout bit_gen entity. 

--- Quote End ---  

 

 

Alex96, 

 

I tried for different frequency values, yet results are same as. For example: create_clock -name "clk_20" -period 10.000ns [get_ports {clk}] -waveform {0.000 5.000}. If the problem is it, I will be very happy to solve my problem :)
0 Kudos
Altera_Forum
Honored Contributor II
1,872 Views

Provide real frequency for chip and your task it will exclude undesired Fmax changing)  

You can check chip plan how far your instained multiplexors and try to compare when you do muxing in one if for all signals like  

Out1 := d1&d3&d5 out2 := d2&d4&d6 if sel='0' then out <= out1 else out<=out2 end if 

I am lazy for semicolons
0 Kudos
Altera_Forum
Honored Contributor II
1,872 Views

 

--- Quote Start ---  

Tricky, thank you for your reply. 

 

However, I think that Fmax depends on maximum path delay. In the my design, max. path delay is always fixed. I only change number of parallel mux which consist of same code. 

--- Quote End ---  

 

 

but thats it - the path is not always fixed. 

When it does the fit, the logic can get put in different places, so the routing delays can vary from build to build - hence the variability.
0 Kudos
Altera_Forum
Honored Contributor II
1,872 Views

 

--- Quote Start ---  

but thats it - the path is not always fixed. 

When it does the fit, the logic can get put in different places, so the routing delays can vary from build to build - hence the variability. 

--- Quote End ---  

 

 

Tricky and Alex96 thank you for your comments. I now understand it. I obtained some examples in chip planer and atteched at this message.
0 Kudos
Altera_Forum
Honored Contributor II
1,872 Views

For same code, I tried in Xilinx ISE. When I added or removed parallel blocks, maximum operating frequency didnt change.

0 Kudos
Altera_Forum
Honored Contributor II
1,872 Views

But early you said that you understand that routing delays take place in final value for Fmax. 

Quartus provides very nice analysis for time-driven synthesis and provides arbitrary values for Fmax in worst-case scenario Slow(1200, 85c). It is not your iternal working frequency, it is upper limit only. So if you will far away from the worst condition then Fmax increased, check the Fmax in Slow(1200, 0v). You should conclude if desired slack achieved your working frequnecy could be beetwen Fmax(85C) and Fmax(0).
0 Kudos
Altera_Forum
Honored Contributor II
1,872 Views

Try LogicLock (only Quartus Subscription / Standard) for fixing logic into chipplanner

0 Kudos
Altera_Forum
Honored Contributor II
1,872 Views

Alex96 and flz47655, Thank you for your suggestion. 

 

Alex96, It is true that check the Fmax in Slow(1200, 0v). flz47655, I think that this problem occurs due to your said"partititon". I will try it.
0 Kudos
Reply