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 it’s 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 the section Configuring Optional Items for options.

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 the section Configuring Blank Lines for options regarding comments.

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 options.

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 options.

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 options.

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 the section Configuring Uppercase and Lowercase Rules for information on changing the default case.

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 the section Configuring Uppercase and Lowercase Rules for information on changing the default case.

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 the section Configuring Uppercase and Lowercase Rules for information on changing the default case.

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 the section Configuring Uppercase and Lowercase Rules for information on changing the default case.

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 the section Configuring Uppercase and Lowercase Rules for information on changing the default case.

Violation

end loop LABEL;
end loop Label;

Fix

end loop label;
end loop label;