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

IP Core configuration file

Altera_Forum
Honored Contributor II
982 Views

Greetings! 

 

I am trying to find a better solution to a file sharing system for our firmware developing team. Currently we are sharing the source code (.vhd, .v files), projet files (.qpf and .qsf), plus a set of IP cores. In order to ease the sharing process, namely to share as little data as possible, we are trying get rid of all the unnecessary files which Quartus creates when an IP core is generated. Is there any way that for each IP core we could share only a handful of files (idealy only one) such that it contains all the parameters of that core? I am hoping there is a way to do this such that using this file I can generate the IP core locally, on each machine, and therefore avoid sharing all those files associated with each core which Quartus can easily generate anytime. If such a file exists, how would I pass it to MegaWizard or QSYS? At a first glance it seems that the .sopcinfo files are a candidate for my problem, but they are associated apparently only with QSYS generated cores. 

 

 

Thanks in advance, 

Radu
0 Kudos
2 Replies
Altera_Forum
Honored Contributor II
251 Views

Hi, 

 

I checked a few projects of mine: 

  • in an older project using a PLL and some on-chip memory, probably created with Quartus 14.x or 15.x, I only put the .vhd and .qip files under version control 

  • in a more recent project using a PLL, I only put the .qsys file under version control 

  • in another more-or-less recent project using gigabit-transceivers, I just gave up and put a ton of .sv, .qip, etc. files under version control 

 

All of those projects synthesize without any problems after the non-versioned files are deleted. 

 

So, for simple things like PLLs or memory, one or two files indeed seem enough. However, in the case of the transceiver, more files might be necessary. It is not always easy to figure out which you really need. 

 

If in doubt, do what I did: copy the project somewhere else, delete the files you think are not needed, and synthesize. Quartus is very good at complaining when something is missing. Don't forget to try to open the IP components with the corresponding IP editor, to see if that information is also still available. 

 

However, keep in mind that deleting files that Quartus generated means that you'll have to re-synthesize completely, which will very likely change the resource utilization and/or timing characteristics. I don't have access to fancy features like rapid recompile and logic-lock, but I assume it's not a good idea to delete synthesis artifacts if you're relying on those features. 

 

 

Best regards, 

GooGooCluster
0 Kudos
Altera_Forum
Honored Contributor II
251 Views

Hi Radu, 

 

for qsys components it is enough to keep the .qsys file. I keep the in an own folder referenced with  

"set_global_assignment -name QSYS_FILE qsys/soc.qsys" 

in the qsf. 

 

Quartus will build the qsys every time you compile your system. To save time you should uncomment this and build the qsys manually one time. Take care of the generated ip files. They may result in different folders. 

 

For megafunctions i only keep the component.v file with the "Retrieval infos". 

 

This tcl procedure builds the megafunctions with every run if called as PRE_FLOW_SCRIPT_FILE without modifying it's version controlled original file. 

 

proc create_megafunction {file_name} { 

file copy -force "$file_name" "${file_name}_" 

 

set cmd "qmegawiz -silent OPTIONAL_FILES=NONE ${file_name}" 

post_message "cmd: ${cmd}" 

 

if { [catch {open "|$cmd"} input] } { 

post_message -type error "couldn't run $cmd" 

} else { 

post_message -type info [read $input] 

file rename -force "${file_name}_" "$file_name" 

return 

 

Best regards, 

Dirk
0 Kudos
Reply