Why is this an issue?

Sharing some naming conventions is a key point to make it possible for a team to efficiently collaborate. This rule checks that process labels match a provided regular expression.

Different naming conventions can be defined depending on the type of file (synthesis or simulation) and type of process (combinational or clocked).

How to fix it

Code examples

Noncompliant code example

On synthesis file, with the default naming convention: ^[a-z]|[a-z]+[a-z0-9_]*[a-z0-9]+$

MyLabel : process (s) is -- Noncompliant: Label not matching naming convention
begin
end process;

On synthesis file, with the following custom naming conventions:

MyLabel: process (s) is -- Noncompliant: Label not matching combinational process naming convention
begin
  temp_s <= s;
end process;

MyLabel : process (clk) is -- Noncompliant: Label not matching clocked process naming convention
begin
  if (rising_edge(clk)) then
    temp_clk <= clk;
  end if;
end process;

Compliant solution

On synthesis file, with the default naming convention: ^[a-z]|[a-z]+[a-z0-9_]*[a-z0-9]+$

my_label : process (s) is -- Compliant: Label matching naming convention
begin
end process;

On synthesis file, with the following custom naming conventions:

C_mylabel: process (s) is -- Compliant: Label matching combinational process naming convention
begin
  temp_s <= s;
end process;

S_mylabel : process (clk) is -- Compliant: Label matching clocked process naming convention
begin
  if (rising_edge(clk)) then
    temp_clk <= clk;
  end if;
end process;

Note

To be aware of the process type (combinational or clocked), the process must be synthesized. If the process is not synthesized, naming convention will be checked against both clockedSynthesisFormat and combinationalSynthesisFormat formats. If, at least, one format matches, no issue is raised. If no format matches, an issue is raised.