Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
Announcements
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.
15378 Discussions

How to specify the 'Optimization Technique' in my System Verilog source code.

BrianHG
New Contributor I
464 Views

Hello,

     I would like to specify which 'Optimization Technique' to be used for specific .sv modules in my code.  I've tried:

 

/* synthesis CYCLONEII_OPTIMIZATION_TECHNIQUE = "SPEED" */

 

But quartus returns:

Warning (10335): Unrecognized synthesis attribute "CYCLONEII_OPTIMIZATION_TECHNIQUE" at ../BrianHG_DDR3/BrianHG_DDR3_PHY_SEQ.sv(52)

 

What's the proper way.

I would also like to disable 'Auto ram replacement' and 'Auto shift register replacement' for a few sections.  How do I go about this in my System Verilog Source code?

 

0 Kudos
9 Replies
sstrell
Honored Contributor III
453 Views

These are not synthesis attributes.  These are assignments you'd put in your .qsf file, either manually or using the Assignment Editor, targeting the specific part of the design where you want them applied.

BrianHG
New Contributor I
447 Views

Thank you for answering.

I know about the .qsf and the Assignment editor.  However, such assignments will only be present if I supply an entire project.  I have developed SystemVerilog source code where I need specific modules to have specific settings depending on a set of parameters at the top of my code.  It is not efficient for me to begin to instruct all my third parties who use my code to begin to setup numerous assignments based on their parameter selection within their own project when they import my code into their design.

 

Is there no way to specify a number of synthesis settings within my .sv code?

sstrell
Honored Contributor III
444 Views

I don't understand.  You have parameterizable IP that includes parameters that can change how Quartus compiles the design?  The source files have to be a part of a project at some point.

I guess you could build a Tcl script that can be sourced by the .qsf file that can parse a design file and apply assignments as needed.  Or you can use the revisions feature in Quartus to create a single project and then, depending on which design files you use, you create appropriate assignments for each project revision.

Maybe I'm not clear on what your end goal is.

BrianHG
New Contributor I
431 Views

I'm only trying to provide an ASCII .sv source code file for others to use in anyway they like, IE: integrate my function into their own project.  I'm not trying to provide a complete Quartus project.

 

SyafieqS
Moderator
436 Views

Brian,


Assuming I understand your question correctly, have you consider to use preserve and keep attribute in Quartus? Maybe that's what you are looking for.


BrianHG
New Contributor I
430 Views

Hello SyafieqS_Intel,

     Thank you for recommending the (*preserve*).  It has solved the 'auto-generated alt_syncram' and 'auto-generated altshift taps'.  This allows my bus shift register to now exceed 300MHz as needed.  Now the only thing left is for the a method to assign the 'CYCLONEII_OPTIMIZATION_TECHNIQUE' which appears to vastly help with performance on some of my combinational logic.

 

     I wonder why the 'CYCLONEII_OPTIMIZATION_TECHNIQUE' is some sort of hidden synthesis setting deep in the menu separate of the normal compiler settings optimization mode which doesn't appear to do much for my code.

ak6dn
Valued Contributor II
419 Views

Whenever I have shared code with others that required additional setup such as you seem to need, I supplied a MODULE.qsf file along with the MODULE.v (in my case) file.

SyafieqS
Moderator
355 Views

Brian,


May I know if there is any update regarding this?



SyafieqS
Moderator
333 Views

We do not receive any response from you to the previous reply that I have provided, thus I will put this case to close pending. Please post a response in the next 15 days to allow me to continue to support you. After 15 days, this thread will be transitioned to community support. The community users will be able to help you with your follow-up questions. 


Reply