- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- 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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- 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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Start by adding a pll to compensate clock
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- 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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- 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 :)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- 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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- 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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
For same code, I tried in Xilinx ISE. When I added or removed parallel blocks, maximum operating frequency didnt change.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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).- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Try LogicLock (only Quartus Subscription / Standard) for fixing logic into chipplanner
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page