- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I would like to disable messages for specific locations. For example I have a global clock that could potentially cause problems in how it is used in many locations. At present I have one location where a warning is raised, but that use is ok and therefore I want to suppress the warning. However, if I use the normal means of message suppression, every message related to this clock will be suppressed. This is NOT what I want.
The manual suggests using set_global_assignment -name MESSAGE_DISABLE -entity <name> in the .qsf file to suppress messages for a specific design entity. However, it fails to explain what <name> actually is expected to look like. Also, there are no examples for this anywhere to be found. Quartus uses '-entity' a lot and I assume it should look always the same. But again: nowhere in the manual does it actually describe what a proper name is for -entity. I tried to use Instance names for the Verilog module in question as well as the for the local signal name in that module, but that does not work. Tcl functions like get_nets and get_clocks also fail. How does this actually work?
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The easiest way to do this is use the GUI. Right-click the entity in the Project Navigator Hierarchy (or in any other part of Quartus where you have found this entity after performing at least Analysis & Elaboration) and choose to Locate (cross-probe) to the Assignment Editor. That way you can then choose the "Disable Message" assignment for the selected entity with the correct hierarchical path name to the entity already filled in for you.
#iwork4intel
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi sstrell,
thanks for the answer. That helped.
To be honest, I don't find that easier. I find the GUI to be a bit of a maze. I even had to use the manual to find out exactly how to do this cross-probing thing. Thanks for adding the '(cross-probe)' That's what enabled me to find the answer. Anyway, doing this will of course simply generate the entry in the .qsf file that I wanted to add in the first place. It turns out there is an error in the user manual. It says there to place the following in the .qsf file:
set_global_assignment -name MESSAGE_DISABLE -entity <name>
In reality it needs to be:
set_instance_assignment -name MESSAGE_DISABLE <message ID> -entity "<entity name>"
Notice the <message ID> after MESSAGE_DISABLE. Also the name must be in double quotes. The name itself is exactly as I had expected the Verilog instance name.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
May I know which user manual that you saw an error? Please help to share the link and the specified page. We will review this based on your feedback.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sure. It is in the Quartus online user manual here: https://www.intel.com/content/www/us/en/programmable/documentation/spj1513986956763.html
You have to scroll down a bit to '2.1.3.1. Suppressing Message Display' under subsection 'Suppressing Message by Design Entity'
With the setting entered in the .qsf file as shown, Quartus won't even load the .qsf file anymore. Instead it will display an error for the offending line, but the message gives no hint what exactly it is it doesn't like.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I also got an error when using below line without the message ID included:
set_global_assignment -name MESSAGE_DISABLE -entity <name>
Allow me to feedback this to the internal team. We will either fix the error issue or correct the lines in the user manual.
Though Quartus recognizes the lines even without the double quotes, could you help to confirm?
set_instance_assignment -name MESSAGE_DISABLE <message ID> -entity <entity name>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The double quotes I was taking from the the line that Quartus had inserted from the GUI interaction. But correct, it also works without the double quotes.
Also, with experimentation I find that this can be done as a global setting and as an instance setting. So, the real problem is the missing message ID in the manual. It would be quite helpful though if the error message would be saying that, rather than just saying there is an error. That is so unhelpful.
So, another question that develops form this is: What is the difference between making this a global setting vs. an instance setting? Would be nice if the manual was to explain this as well.
Thanks for your support.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
With a global assignment (a setting), as you found, you can't point to a specific entity. You either suppress all messages with the same message ID or you don't. You can't do what you want: suppress this message ID if it appears for this part of my design.
The Design Constraints User Guide goes into detail on these differences:
#iwork4intel
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page