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

How to improve Fmax for SOPC System?

Altera_Forum
Honored Contributor II
2,378 Views

Hi, 

 

My simple SOPC system can only run at fmax=70MHz, what I hope is 100Mhz. 

I found that all the critical paths were exist inside niosii cpu.  

Is there any way to improve fmax?:mad:  

P.S. My target device is CycloneIIEP2C70F896I8. 

 

 

Thanks for any response. 

David
0 Kudos
6 Replies
Altera_Forum
Honored Contributor II
750 Views

You're off by 4ns(40%), which is quite a bit. My personal experience is that most options in Quartus to improve SOPC system timing don't make drastic improvements. (Make sure the design is constrained to 100MHz, make sure: 

- Assignments -> Settings -> Analysis and Synthesis Optimizations is set to Speed 

- Assignments -> Settings -> Netlist Optimizations are turned On 

- Assignments -> Settings -> Physical Synthesis Optimizations are turned on(don't turn on the ones for Area) 

Also look at the Timing Optimization Advisor under Tools. 

 

But as I've said, I've seen large gains with these for some designs, but SOPC systems(or more exactly, the large muxes inside SOPC bridges) don't have huge gains here. I've seen users re-architect their designs and get the best results(systems where everyone talks to everyone, and this really isn't necessary, are much better if you limit your connections. I believe there are some nice things in ~SOPC 7.2 that allow you to pipeline components, which adds latency to those specific components but can increase the system speed.) Optimizing the actual SOPC system is out of my expertise, but hopefully someone else can comment. (Niosforum may help too)
0 Kudos
Altera_Forum
Honored Contributor II
750 Views

Yes, I have used avalon MM pipelined bridge to improve interconnect among components. 

But the current problem is within one component. 

I think what I can do is to try optimization switch in QuartusII. 

 

Thanks...
0 Kudos
Altera_Forum
Honored Contributor II
750 Views

You said your problem is within the NIOS. 

Doubt you will get 40% more performance by changing Quartus-II settings.  

Suggest you try changing the NIOS settings as well. 

Change mode, I have seen a simple fast mode NIOS compile to better fmax than economy, and the other way around as well. Try things such as reducing or turning off Cache, reducing the debug complexity, eliminate special features such as custom instructions etc. As a last resort you could run the NIOS at a slower clock rate than the rest of the design and use clock domain crossing bridge(s).
0 Kudos
Altera_Forum
Honored Contributor II
751 Views

:mad::confused: :mad: We also encountered the same problem, increase the cache, fmax becomes very low, but the reduced cache, program runs very slowly, nios 2 can not be used, please altera of the company's engineers should pay attention to and solve this problem, otherwise our project can not be completed on time, our company suffered a great deal

0 Kudos
Altera_Forum
Honored Contributor II
751 Views

Note that Nios/SOPC performance is dictated by the FPGA performance, and is therefore not "solvable" to become faster. Compared to soft processors by other vendors or soft processors in other FPGAs, Nios is minimally equivalent and often better. Naturally, I don't know what you're doing or what your critical path is that dictates the performance, so it's hard to say. There are a number of examples and documentation on the website, such as using low-speed bridges to help performance, using custom instructions, C2H, etc. I think there are some useful posts on the website too. Good luck.

0 Kudos
Altera_Forum
Honored Contributor II
751 Views

THANKS 

 

I question the premise, why enter the interrupt program, the program execution time is sometimes fast, sometimes slow, the problem we have now is not resolved, there is no way in the circumstances, the clock frequency from the original 50mhz raised to 80mhz, also quarts -ii soft would version upgrade from the original 7.2 upgrade to 9.0, but in the case of 80mhz can not run, but the cache from the original 8k reduced to 4k, can run at 80mhz, but this way, reducing the cashe, program execution time and slower, and we feel this is a contradiction, we use the assembly language, can not be used c2h, please help us, thank you 

http://www.alteraforum.com/forum/showthread.php?t=19389
0 Kudos
Reply