CAUSE: In an Attribute Specification at the specified location in a
VHDL Design File (.vhd), you specified an attribute for an object. However, the Attribute Specification conflicts with another Attribute Specification that previously specified the same attribute for the same object. This error can occur unintentionally when an Attribute Specification uses the
ALL keyword to set an attribute on all objects of a class. Later, a conflict may occur if another Attribute Specification sets the same attribute on a specific object of the same class. For example, in the following code, the first Attribute Specification sets the critical attribute on all signals in the current scope to false. The second Attribute Specification attempts to override the value of the same attribute on the signal
sig1, which is in the same scope.
attribute critical of ALL : signal is false;
attribute critical of sig1 : signal is true;
ACTION: Remove one of the conflicting Attribute Specifications. If the conflict involves an Attribute Specification that uses the
ALL keyword, you may want to use the
OTHERS keyword rather than the
ALL keyword. For the previous example, you can use the following code:
attribute critical of sig1: signal is true;
attribute critical of OTHERS: signal is true;