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
- anonimcs2 years ago
Contributor
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