Forum Discussion
Change VHDL generic via command line for synthesis
- 2 years ago
Hi,
then how should I make the pin assignments for the pins not used when generic = 0 (they're only used when generic = 1). Is there a way to set them 'conditionally' in the qsf file ?
For above mentioned can't be achieved in .qsf, you may need to use .tcl script if/then/else already as mentioned. For example like below in .tcl:
set a [get_parameter -name C3_CNT]
if {$a == 1} {
set disable 0
set enable 1
} else {
set enable 0
set disable 1
}
if {$enable} {
set_location_assignment PIN_W28 -to outclk6 -disable -comment IOBANK_3C -remove
set_location_assignment PIN_W28 -to outclk6 -comment IOBANK_3C
export_assignments
}
if {$disable} {
set_location_assignment PIN_W28 -to outclk6 -disable -comment IOBANK_3C
export_assignments
}
Remember that if want to enable, make sure source the .tcl twice in order to remove the previous -disable assignment.
[Take Note This]: Critical Warning(19941): QSF command 'set_parameter' can only apply to the top-level design and cannot include '-to' or '-entity' arguments.
If you notice that 'set_parameter' doesn't take effect, remove the '-to' or '-entity' arguments because it can only apply to top-level design.
Thanks,
Best Regards,
Sheng
Hi,
You can add this tcl command to a .tcl file. Then go to View -> Tcl Console, in the Tcl Console type source <file_name>.tcl. Besides, can go to Tools -> Tcl Scripts and then Select and Run.
Also, you can straightaway include that tcl command in the .qsf file.
Thanks,
Best Regards,
Sheng
Hi,
Adding the tcl command directly to the qsf file is totally fine for me, but I have a follow-up question. As I mentioned, the entity's port widths are dependent on this generic, then how should I make the pin assignments for the pins not used when generic = 0 (they're only used when generic = 1). Is there a way to set them 'conditionally' in the qsf file ?
Cheers