Why is this an issue?

This rule ensures that every generate statement is clearly identified with begin and end labels. You can disable the requirement for an end label by setting mandatoryEndLabel to false.

The rule also verifies that — when an end label is present — it exactly matches the corresponding begin label.

How to fix it

Code examples

Noncompliant code example

With mandatoryEndLabel parameter set to trhe.

for i in 0 to 7 generate -- Noncompliant: No label at all
  ...
end generate;

MyLabel : for i in 0 to 7 generate
  ...
end generate; -- Noncompliant: Missing end label

my_other_label : for i in 0 to 7 generate
  ...
end generate MyOtherLabel; -- Noncompliant: Mismatched labels

Compliant solution

With mandatoryEndLabel parameter set to trhe.

my_label: for i in 0 to 7 generate
  ...
end generate my_label;;

MyLabel : for i in 0 to 7 generate
  ...
end generate MyLabel;

my_other_label : for i in 0 to 7 generate
  ...
end generate my_other_label;