Skip to content

Latest commit

 

History

History
694 lines (382 loc) · 9.67 KB

loop_statement_rules.rst

File metadata and controls

694 lines (382 loc) · 9.67 KB

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| |structure_optional|

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

|configuring_optional_items_link|

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

|configuring_whitespace_rules_link|

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.

|configuring_whitespace_rules_link|

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.

|configuring_whitespace_rules_link|

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.

|configuring_whitespace_rules_link|

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.

|configuring_whitespace_rules_link|

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.

|configuring_previous_line_rules_link|

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.

|configuring_blank_lines_link|

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.

|configuring_previous_line_rules_link|

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.

|configuring_blank_lines_link|

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.

|configuring_uppercase_and_lowercase_rules_link|

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.

|configuring_uppercase_and_lowercase_rules_link|

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.

|configuring_uppercase_and_lowercase_rules_link|

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.

|configuring_uppercase_and_lowercase_rules_link|

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.

|configuring_uppercase_and_lowercase_rules_link|

Violation

end loop LABEL;
end loop Label;

Fix

end loop label;
end loop label;

loop_statement_600

|phase_7| |disabled| |error| |naming|

This rule checks for valid prefixes on loop labels. The default prefix is loop_.

|configuring_prefix_and_suffix_rules_link|

Violation

label : for index in 4 to 23 loop

Fix

loop_label : for index in 4 to 23 loop

loop_statement_601

|phase_7| |disabled| |error| |naming|

This rule checks for valid suffixes on loop labels. The default prefix is _loop.

|configuring_prefix_and_suffix_rules_link|

Violation

label : for index in 4 to 23 loop

Fix

label_loop : for index in 4 to 23 loop

loop_statement_602

|phase_7| |disabled| |error| |naming|

This rule checks for valid prefixes on loop parameter identifiers. The default loop prefix is lv_.

|configuring_prefix_and_suffix_rules_link|

Violation

for index in t_range loop

Fix

for lv_index in t_range loop

loop_statement_603

|phase_7| |disabled| |error| |naming|

This rule checks for valid suffixes on loop parameter identifiers. The default loop suffix is _lv.

|configuring_prefix_and_suffix_rules_link|

Violation

for index in t_range loop

Fix

for index_lv in t_range loop