Priorities with Multiple Wildcard Logic Lock Region Membership Assignments

While the relative priority of node assignments and entity assignments is clear (node assignments take precedence), the relative priority between multiple wildcard assignments can be ambiguous.

Consider the node a:inst1|mynode .

An assignment made to a:inst1 applies to the above node, same as an assignment made to a:inst1|mynode; however, the a:inst1|mynode assignment takes priority, because it is the more specific assignment.

If you make a wildcard assignment to a*, the order of precedence is as follows:

  • Highest prioritya:inst1|mynode
  • Second prioritya*
  • Lowest prioritya:inst1

However, if you make a second wildcard assignment, * mynode, the intended order of priority is ambiguous, as the two wildcard assignments seem to have equal priority:

  • Highest prioritya:inst1|mynode
  • Second prioritya* or * mynode
  • Lowest prioritya:inst1

The Quartus® Prime software manages such potential conflicts by applying the Logic Lock Region Priority parameter when you create wildcard or path-based assignments. The Logic Lock Region Priority parameter automatically assigns a number, establishing the wildcard or path-based assignment's relative priority. The Quartus® Prime software automatically assigns the highest priority to the most recently created assignment.

In the example, * mynode takes precedence over a*, resulting in the following order of precedence:

  • Highest prioritya:inst1|mynode
  • Second priority* mynode
  • Third prioritya*
  • Lowest prioritya:inst1

The Quartus® Prime software inserts the Logic Lock Region Priority parameter when you create assignments with the set_logiclock_contents Tcl command, with the Logic Lock Region Properties dialog box, or by dragging a resource into a Logic Lock region.

The Quartus® Prime software does not insert the Logic Lock Region Priority parameter for assignments created with the Assignment Editor.

Do not apply Logic Lock Region Priority parameters manually, such as with a set_instance_assignment statement.