- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm in the process of setting up source control using SVN. If there is a good reason to avoid SVN for Quartus projects I'm open to suggestions.
Anyway, the hard thing seems to be to bring in the right files. In my opinion I need the binaries as well, because I want to get an old version without running the compile again. As for reports no-one here seems to be using them, so I see little reason to keep them. How does this look (apart from the copy-paste->layout disaster)? --------------------------------------------------------------------- EDIT : The following have been updated according to your suggestions: EDIT2: Updated again, also sorted this time... --------------------------------------------------------------------- Files used by the compilation can be found in “Analysis & Synthesis Source files read” report. Quartus output folder can be set to \qout to separate source from output files (Project settings -> Compilation Process Settings) “Name” refers to project/top entity name. source files (always under source control) *.bdf Schematic *.bsf Symbols *.inc AHDL include *.lai Logic analyzer interface *.mif Memory init *.ptf SOPC file (old but recommended) *.qip MegaWizard IP *.sopc SOPC file *.tcl Scripts *.tdf AHDL source *.v Verilog source *.vhd VHDL source *.vwf Simulation stimuli assignments & settings (always under source control) Name.cdf Programming chain settings Name.qdf Default assignments Name.qpf Project file Name.qsf Assignments (except timing) Name.sdc Timing constrains. This file should never be written directly by TimeQuest, since it might get randomly rearranged. Write to a separate file and copy-paste into main file. Name.srf Message supressions output files (normally under source control) NOTE: Do not generate rbf or ttf files unless they are used Name.pof Programming file Name.rbf Programming file (normally not present) Name.sof Programming file Name.ttf Output in text format (normally not present) special cases (consider source control) \db\*.* Improves quartus compilation time. Lots of files. If and only if incremental compilation will be used this should be under source control. \simulation\*.* This folder is for ModelSim. Quartus Simulator works without this folder. If ModelSim is used this should be under source control. report files (normally not under source control) *.done Date *.qarlog Log of project archiving *.rpt Reports *.summary Report summaries generated files (never under source control) \timing\*.* No settings, just generated timing stuff Name.qws GUI settings (window positions is a user rather than project option) *.cmp Component declarations *.dpf - *.eqn Equations *.html - *.jpg Images generated by some megawizards? *.pin - *.ppf - backup files (never under source control) *.bak Backup of single files *.qar Quartus archiveLink Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
At my previous company, we used SVN for our Quartus projects. It works just fine. We never stored the binaries but you certainly can. Obviously subversion can't do anything with them but store them.
Your list of files seems appropriate. I never kept the .qdf files. Depending on your project you may also want to include SOPC builder files. Personally I wouldn't store so many programming files. You can generate all other formats from the SOF file. Jake- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Check the "Analysis & Synthesis Source Files Read" table in the compilation report to make sure you haven't overlooked any source files.
If you are using incremental compilation and want to reproduce your results without going through the same complete sequence of incremental compiles again, then you need the db directory. (Actually, you need only certain files in that directory, but Altera doesn't document which ones. To be sure you have everything you need, you have to keep the whole thing.) You listed Name.out.sdc, which makes me think you are using write_sdc. That command is OK to create your initial .sdc file, but never use that command again after the file exists. It always creates a new file from scratch with its own file organization. Anything you've done to rearrange lines or add comments will be lost. write_sdc can change the file in other ways too as controlled by the -expand argument. You said that the "simulator seems to work without [the \simulation\*.*] folder". You need to keep the simulation folder to do a gate-level simulation unless you regenerate the .vo/.vho/.sdo.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- I never kept the .qdf files. --- Quote End --- See the header of the .qsf for comments about .qdf files. If there is a .qdf file in the project directory, then keep it. It controls the default settings for everything not listed explicitly in the .qsf. If you omit a local .qdf and it has something different from the defaults of the Quartus version currently being used, then the next compile will use different defaults.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
One other thing I'm a big fan of, though slightly off topic, is going to Assignments -> Settings -> Compilation Settings and having the output files go to a sub-directory, one I usually call qout, or whatever. Quartus puts all it's output files in this directory rather than the project directory, which I think keeps things much cleaner, and makes it much more obvious what is an output file. Just a suggestion. (And Brad's comment about not using write_sdc to overwrite your .sdc, and at most write it to a dummy file and cut and paste, is something I would strongly second...)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Subversion is working fine. What I do is as follow :
Development brenches : - source file (verilog, ...) : version control - settings file, project file : version control - programming files (pof, sof) : version control (not strictly needed, but handy if you need the file, it is there without recompilation). Release branch : - I just include everything (source files and all generated files and db directory) - I don't use qar - Subversion will compress the information anyway, - If you need information on a release (timing issues, ...), the information is just there. - you have (most of the times) few releases - Is it worth the effort to minimise the content on these 'few' branches? Stefaan- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- I don't use qar --- Quote End --- I think .qar files are intended primarily for giving someone else (like a support person at Altera) your design, not for users to create project archives for their own use. The project archive function modifies your directory structure for any directories that were not originally subdirectories of the project main directory. It moves those directories under the project directory. Because the project archive function changes the directory structure, it adds user library directories to make it more likely Quartus compilation will find all the needed files in case the archive function didn't update all the pathnames correctly inside the .qsf. (At least I think that's why project archive creates all those superfluous user libraries that annoy me.) Project archive with default settings doesn't automatically find all files needed for all designs. For example, the user has to tell it to include memory-interface MegaCore .tcl files sourced by .sdc files unless the user has listed these .tcl files inside the .qsf with Project --> Add/Remove Files in Project. To use project archive to capture everything you would want to keep, you would need to go through some of the same exercise Jonas Lindén is doing to decide what files to keep with a version control/configuration management tool.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks you for all the replies. I don't use Quartus archiving either, but I want to put the file type on the list to keep it out of my SVN repository....since some of my co-workers seems to use it.
We don't use incremental compilation and we normally stay with the built-in simulator (for the small blocks, we never simulate the complete setup). Now its included in case someone would like to use it. As for SOPC: I have never used it, so I don't know which files I should pick...I'll just leave it open for now.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- As for SOPC: I have never used it, so I don't know which files I should pick...I'll just leave it open for now. --- Quote End --- All you really need is the .v file for the system, the .sopc file and the .ptf file. All of these will have the same prefix. For example if your system is named "my_sopc", you would need: my_sopc.v my_sopc.sopc (7.1 and later) my_sopc.ptf (not required after 7.1 but recommended) All other files can be generated from these files. In addition, you would need to store the source files for any custom components and user libraries that the SOPC system depends on. Jake
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When I tried to add another project I got a few more unknowns:
Keep: .srf Message suppression rules .rbf binary .lai logic analyzer if .cdf programming chain Remove: .eqn equations?? undo_redo.txt session_rec Unknown, some log I think Unknown: signalprobe_qsf.tcl .qip MegaWiz something... .jdi JTAG something .cmp Component declarations .dpf No idea what this is- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- Remove: .eqn equations?? --- Quote End --- You can generate equation files on demand just when you need them instead of during every compilation. At "Tools --> Options --> General --> Processing", turn off "Automatically generate equation files during compilation". For those rare times when you need equation files, run "Start Equation Writer (Post-synthesis)" and/or "Start Equation Writer (Post-fitting)" at "Processing --> Start". When I use equation files, I turn on "Automatically generate HTML-Format Report Files (.htm) after design processing" at "Tools --> Options --> General --> Processing". This results in HTML equation files with hyperlinks that make it easy to trace backward through the equations. --- Quote Start --- Unknown: ... .qip MegaWiz something... --- Quote End --- Starting with QII 8.0, use the .qip files. When you add the .qip file to the project, you don't have to manually add the other individual MegaWizard files to the project. After running a MegaWizard that produces a .qip file, you will get a prompt to add the .qip to the project unless you have turned on "Automatically add Quartus II IP Files to all projects" at "Tools --> Options --> General". --- Quote Start --- Unknown: ... .cmp Component declarations --- Quote End --- This is a VHDL component declaration file optionally generated by the MegaWizard. The option is on the MegaWizard Summary page. This file is the component declaration for insertion into your source file that instantiates the component. The _inst.vhd file that you can select on the same MegaWizard page is a template for the instantiation of that component. --- Quote Start --- Unknown: ... .dpf No idea what this is --- Quote End --- Inside this file it says "pin_planner". I haven't looked up what this file does. I don't know whether there is ever any value in keeping it (it might be useful if you do more with the Pin Planner later in the same design), but I doubt that this file is ever necessary to reproduce your results when you recompile.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanx for your input. Main post is updated again. Apparently I had the .dpf file in my list already, but i missed it. This time its sorted alphabetically....
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Also need *.iv and *.stp
*.iv was needed when the megawizard generated a ddr file for me. *.stp is for the built in logic analyzer. To add files I use a file finder (called file locator pro), then select all, right click and svnadd. When adding the search filter is: *.bdf;*.bsf;*.inc;*.lai;*.mif;*.ptf; *.qpf; *.qip;*.sopc;*.tcl;*.tdf;*.v;*.vhd;*.vwf; *.cdf;*.qdf;*.qpf;*.qsf;*.sdc;*.srf;*.pof;*.rbf;*.sof;*.ttf;*.iv;*.stp; Exclude is the same way; search for the following files, then select all and right click / exclude by extension. *.done;*.qarlog;*.rpt;*.summary; *.qws;*.cmp;*.dpf;*.eqn;*.html;*.jpg;*.pin;*.ppf;*.bak;*.qar
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page