I'm using Quartus 17.0 and I'm trying to automate a project build with a TCL script.
I got a SDC file which depends on some IP generated QIP files. In my script I add them to the QSF way before I ever call the SDC. However, when I open the QSF, the order has misteriously changed.
There was an issue in Quartus 12.1 regarding this, but it was fixed in 13.0, right??
I'm not clear how your script being structured or aware any issue regarding this. Just explain how it works here. Quartus tool reads those SDC files either written by user or IP embedded SDC(mostly added in IP .QIP) in a way that how they are placed in a file list (top to bottom). This flow should be the same for every version until the latest.
This is what my script does:
1) Closes the project if exists and creates a new project.
2) Sets up the basic info in the qsf file like device, family within a separate script.
(I call export_assignments every time I finish executing a script like this).
3) Includes IO and Area constraints (the same way as step )
4) Regenerates IPs and Qsys elements using mw-generate and qsys-generate commands
5) Searches for files within my local folders and adds them to the project (the same way as step )
6) Adds the SDC file and export_assignments
I notice one strange thing: Step 4 takes quite some time (as expected). However before finishing I can open the new qsf file and I find that all the file assignments have been done. This is shouldn't be possible since those assignments are done in Steps 5 and 6 and I would expect the tcl script to execute sequentially. Therefore if I open the qsf file while the IPs are being genererated I shouldn't be any source file assignment or SDC assignment.
Is there any old version of the qsf file that is being used instead of the new one and I am not aware of it?
Yes, script is executed sequentially. To debug the issue, you can stop both step 5 & 6 and check result after step4 . Each of project should load one .qsf at a time from the .qpf.