Why is this an issue?

This rule checks that each generate statement is identified by begin and end labels. Set mandatoryEndLabel to false to not make end label mandatory.

It also checks that end label (when present) matches its begin label.

How to fix it

Code examples

Noncompliant code example

MyLabel : for i in 0 to 7 generate
  w_vector(i) <= r_vector(i+8);
end generate; -- Noncompliant: No end label

my_other_label : for i in 0 to 7 generate
  w_vector(i) <= r_vector(i+8);
end generate MyOtherLabel; -- Noncompliant: End label does not match begin label

Compliant solution

MyLabel : for i in 0 to 7 generate
  w_vector(i) <= r_vector(i+8);
end generate MyLabel;

my_other_label : for i in 0 to 7 generate
  w_vector(i) <= r_vector(i+8);
end generate my_other_label;