- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Instead of doing:
set_instance_assignment -name IO_STANDARD "HSSI DIFFERENTIAL I/O" -to sfp0
set_instance_assignment -name IO_STANDARD "HSSI DIFFERENTIAL I/O" -to sfp1
set_instance_assignment -name IO_STANDARD "HSSI DIFFERENTIAL I/O" -to sfp2
I'd like to do:
set_instance_assignment -name IO_STANDARD "HSSI DIFFERENTIAL I/O" -to sfp*
But this doesn't work in either .sdc, .qsf, the IO_STANDARD isn't set in any of the sfp* ports/signals.
I read in the documentation, set_instance_assignment supports wildcard, what's wrong?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Actually, you don't have to do a full compilation, just Analysis & Elaboration.
But as mentioned, when you edit the .qsf manually and the design has not been compiled yet, when you use the wildcard, Quartus does not know about that object yet.
If you were to use the GUI instead, you always have to perform at least Analysis & Elaboration first so signals and objects appear in the Pin Planner or the Assignment Editor. It's the same situation here.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
The wildcard feature tested and works well in Quartus Pro v22.1. Have you do recompilation after making changes in .qsf file? After recompilation eventually will get something like below in .qsf file.
set_instance_assignment -name IO_STANDARD "HSSI DIFFERENTIAL I/O" -to sfp* -entity <your_entity_name>
Best Regards,
Sheng
p/s: If any answer from community or Intel support are helpful, please feel free to mark as solution and give Kudos.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi ShengN,
Tested, doesn't work:
1. .qsf:
2. Open the project and the Pin Planner
3. Close the project, change the .qsf, save
4. Open the project, open Pin Planner:
Quartus version:
There is no compilation, it's even before synthesis.
Regards,
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Then you have to open the project again and do compilation so Quartus can read the settings changes in .qsf file.
Best Regards,
Sheng
p/s: If any answer from community or Intel support are helpful, please feel free to mark as solution and give Kudos.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This has nothing to do with any compilation, it's a project setup step.
Also the .qsf is loaded when the project is opened, not at the compilation. (this is a .qsf not .sdc)
I can clearly see it by doing 1. and 2. after 4., the pin planner is still able to set the property without any compilation step.
Please raise a ticket to have this bug fixed.
Regards,
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Sorry for confusion. I think there are some misunderstandings. After you make changes in .qsf file, you should see the settings loaded in Assignment Editor. However in order to make the settings appear in pin planner you have to do the compilation. Hopefully it helps answering your problem.
**Check the file below.
Best Regards,
Sheng
p/s: If any answer from community or Intel support are helpful, please feel free to mark as solution and give Kudos.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Actually, you don't have to do a full compilation, just Analysis & Elaboration.
But as mentioned, when you edit the .qsf manually and the design has not been compiled yet, when you use the wildcard, Quartus does not know about that object yet.
If you were to use the GUI instead, you always have to perform at least Analysis & Elaboration first so signals and objects appear in the Pin Planner or the Assignment Editor. It's the same situation here.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
That's now clear, Quartus doesn't automatically detect the ports of the top. I was tricked by the Pin Planner showing the IO STD of the pins without running any compilation step.
I haven't tested to add a location assignment to a port that doesn't exist in the top but I guess it'd have given me errors only after a compilation step.
Thanks @sstrell !
And thanks @ShengN_Intel for the help!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks sstrell for clarification!
Since the issue addressed had been resolved. I'll now transition this thread to community support. If you have a new question, feel free to open a new thread to get the support from Intel experts.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@ShengN_Intel Sorry, I have one more question:
I want to keep Quartus away from my files. I still don't understand why HW vendors think it's a good idea to let the tool modifying the user's files.
I don't want to have anything I can store somewhere else in the .qsf. The pin locations with its constraints is a good example.
I come from Xilinx and Vivado accepts a tcl file containing pin assignments and constraints. I try that with Quartus, the set_location_assignment aren't detected...
Please tell me the way I can keep a single tcl/sdc file containing all the pins and their constraints in a single file that will never be modified by Quartus and loaded when I open the project.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You have to source the separate file from the .qsf:
source io_assignments.tcl
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @alexislms ,
Sure. You can have the pins in external tcl files. Check out this:
There are a few methods for this:
1. Go to View -> Tcl Console then entering individual Tcl commands in the Tcl Console, or creating a .tcl script and typing source <my_tcl_script>.tcl
2. Go to Tools -> Tcl Scripts then plugging in the .tcl script.
3. Using command line quartus_sh -t <my_tcl_script>.tcl
4. Set global assignment in .qsf file like this set_global_assignment -name POST_FLOW_SCRIPT_FILE "quartus_sh:<tcl_file_name>.tcl" then compile the project.
** Can also go to Project -> Generate Tcl File for Project.
Best Regards,
Sheng
p/s: If any answer from community or Intel support are helpful, please feel free to mark as solution and give Kudos.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page