Loop Statement Rules

loop_statement_001

phase_1 error structure

This rule checks for code after the loop keyword.

Violation

loop a <= b;

Fix

loop
  a <= b;

loop_statement_002

phase_1 error structure

This rule checks the end keyword is on its own line.

Violation

loop
  a <= b; end loop;

Fix

loop
  a <= b;
end loop;

loop_statement_003

phase_1 error structure

This rule checks the end keyword is on the same line as the end loop keyword.

Violation

end
loop;

Fix

end loop;

loop_statement_004

phase_1 error structure

This rule checks the semicolon is on the same line as the end loop keyword.

Violation

end loop
;

end loop LOOP_LABEL
;

Fix

end loop;

end loop LOOP_LABEL;

loop_statement_005

phase_1 error structure

This rule checks the loop label and the while, for or loop keywords are on the same line.

Violation

LOOP_LABEL:
  loop

LOOP_LABEL:
  while condition loop

LOOP_LABEL:
  for x in range(15 downto 0) loop

Fix

LOOP_LABEL: loop

LOOP_LABEL: while condition loop

LOOP_LABEL: for x in range(15 downto 0) loop

loop_statement_006

phase_1 disabled error structure

This rule checks that loop statements have a label.

Violation

loop

while (condition) loop

for x in range (31 downto 0) loop

Fix

LOOP_LABEL : loop

LOOP_LABEL : while (condition) loop

LOOP_LABEL : for x in range (31 downto 0) loop

loop_statement_007

phase_1 disabled error structure

This rule checks the end loop_statement line has a label. The closing label will be added if the opening loop_statement label exists.

Refer to Configuring Optional Items for more information.

Violation

end loop;

Fix

end loop LOOP_LABEL;

loop_statement_100

phase_2 error whitespace

This rule checks that a single space exists between the end and loop keywords

Violation

end loop;
end    loop;

Fix

end loop;
end loop;

loop_statement_101

phase_2 error whitespace

This rule checks for a single space before the ending loop label if it exists.

Violation

end loop           END_LOOP_LABEL;

Fix

end loop END_LOOP_LABEL;

loop_statement_102

phase_2 error whitespace

This rule checks for a single space before the loop keyword.

Violation

for x in (0 to 30)loop
for x in (0 to 30)         loop

Fix

for x in (0 to 30) loop
for x in (0 to 30) loop

loop_statement_103

phase_2 error whitespace

This rule checks if a label exists that a single space exists between the label and the colon.

Violation

label: for index in 4 to 23 loop
label    : for index in 0 to 100 loop

Fix

label : for index in 4 to 23 loop
label : for index in 0 to 100 loop

loop_statement_104

phase_2 error whitespace

This rule checks if a label exists that a single space exists after the colon.

Violation

label :    for index in 4 to 23 loop
label :  for index in 0 to 100 loop

Fix

label : for index in 4 to 23 loop
label : for index in 0 to 100 loop

loop_statement_200

phase_3 error blank_line

This rule checks for blank lines or comments above loop statements.

Refer to Configuring Blank Lines for more information.

The default style is no_code.

Violation

-- Comment
LOOP_LABEL : loop

wr_en <= wr_en;
LOOP_LABEL : loop

Fix

-- Comment
LOOP_LABEL : loop

wr_en <= wr_en;

LOOP_LABEL : loop

loop_statement_201

phase_3 error blank_line

This rule checks for blank lines below the loop keyword.

Refer to Configuring Blank Lines for more information.

Violation

loop
  a <= b;

Fix

loop

  a <= b;

loop_statement_202

phase_3 error blank_line

This rule checks for blank lines or comments above the end keyword.

Refer to Configuring Previous Line Rules for more information.

Violation

loop
  a <= b;
end loop;

Fix

loop
  a <= b;

end loop;

loop_statement_203

phase_3 error blank_line

This rule checks for blank lines below the end loop keywords.

Refer to Configuring Blank Lines for more information.

Violation

end loop;
a <= b;

Fix

end loop;

a <= b;

loop_statement_300

phase_4 error indent

This rule checks the indentation of the loop keyword.

Violation

fifo_proc : process () is
begin

    loop

  end loop;

end process;

Fix

fifo_proc : process () is
begin

  loop

  end loop;

end process;

loop_statement_301

phase_4 error indent

This rule checks the indentation of the loop label if it exists.

Violation

fifo_proc : process () is
begin

    LOOP_LABEL : loop

  end loop;

end process;

Fix

fifo_proc : process () is
begin

  LOOP_LABEL : loop

  end loop;

end process;

loop_statement_302

phase_4 error indent

This rule checks the indentation of the end keyword.

Violation

fifo_proc : process () is
begin

  for index in 4 to 23 loop

     end loop;

end process;

Fix

fifo_proc : process () is
begin

  for index in 4 to 23 loop

  end loop;

end process;

loop_statement_500

phase_6 error case case_keyword

This rule checks the loop keyword has proper case.

Refer to Configuring Uppercase and Lowercase Rules for more information.

Violation

while (condition) LOOP

Fix

while (condition) loop

loop_statement_501

phase_6 error case case_keyword

This rule checks the end keyword has proper case.

Refer to Configuring Uppercase and Lowercase Rules for more information.

Violation

while (condition) loop

END loop;

Fix

while (condition) loop

end loop;

loop_statement_502

phase_6 error case case_keyword

This rule checks the loop keyword has proper case.

Refer to Configuring Uppercase and Lowercase Rules for more information.

Violation

while (condition) loop

end LOOP;

Fix

while (condition) loop

end loop;

loop_statement_503

phase_6 error case case_label

This rule checks the proper case of the label on a loop statement.

Refer to Configuring Uppercase and Lowercase Rules for more information.

Violation

LABEL : for index in 4 to 23 loop
Label : for index in 0 to 100 loop

Fix

label : for index in 4 to 23 loop
label : for index in 0 to 100 loop

loop_statement_504

phase_6 error case case_label

This rule checks the proper case of the end label on a loop statement.

Refer to Configuring Uppercase and Lowercase Rules for more information.

Violation

end loop LABEL;
end loop Label;

Fix

end loop label;
end loop label;