An Altera Quartus II project consists of one *.qpf and one or more *.qsf files. The qsf seems to be a TCL script like other EDA related settings and config files (e.g. xdc, sdc, ...).

Is is possible to include other TCL scripts into the qsf?

I don't like the idea of storing all design settings in one file (source files, pin assignments, ...). Like in ISE or Vivado, I would like to store e.g. pin assignments in seperate files and included them.

Excurse ISE:

ISE uses UCF files to store constraints for pins, placement and timings. It's possible to add multiple ucf files to one project. E.g. a GPIO.LED.ucf or a Clock.SystemClock.ucf.

Excurse Vivado :

Vivado stores constraints in xdc files (Xilinx Design Constraints - a Xilinx extended version of SDC files - Synopsys Design Constraints). XDC/SDC files are TCL scripts. Quartus also uses SDC files.

  • \$\begingroup\$ Pin assignments can be in a separate TCL file. \$\endgroup\$ Aug 13, 2015 at 0:12
  • \$\begingroup\$ @LeonHeller Yes, but how I include this file? \$\endgroup\$
    – Paebbels
    Aug 14, 2015 at 2:02
  • \$\begingroup\$ Select Files in the Project Navigator and right click on Files. You can then add the TCL file. \$\endgroup\$ Aug 14, 2015 at 9:04

3 Answers 3


Tested with Quartus II 15.0

Its possible to add lines like these to the *.qsf file:

set LoadPinConstraints 1
source ../../constraints/DE4/GPIO.Button.Reset.sdc
source ../../constraints/DE4/GPIO.Buttons.sdc
source ../../constraints/DE4/GPIO.SlideSwitches.sdc
source ../../constraints/DE4/GPIO.LEDs.sdc

(These *.sdc files include pin assignments, I/O settings (voltage, standard, ...) and pin timings.)

But, Quartus will report a bad formatted *.qsf file with unsupported commands. After that, Quartus inlines all external pin assignments into the *.qsf file.

So yes it's possible, but the goal of modularization is gone.


Try these commands in the qsf file - set_global_assignment -name PRE_FLOW_SCRIPT_FILE quartus_sh:script_file.tcl

For an example checkout this page - The example script file is in the zip archive on that page.


In Quartus Prime ver. 18.1 it is possible to do:

set_global_assignment -name SOURCE_TCL_SCRIPT_FILE pinout.tcl

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.