.. include:: includes.rst If Rules -------- if_001 ###### |phase_4| |error| |indent| This rule checks the indent of the **if** keyword. **Violation** .. code-block:: vhdl if (a = '1') then b <= '0' elsif (c = '1') then d <= '1'; else e <= '0'; end if; **Fix** .. code-block:: vhdl if (a = '1') then b <= '0' elsif (c = '1') then d <= '1'; else e <= '0'; end if; if_002 ###### |phase_1| |error| |structure| This rule checks the boolean expression is enclosed in (). .. NOTE:: There is a configuration option **parenthesis** which will either insert or remove the parenthesis. parenthesis set to 'insert' (Default) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **Violation** .. code-block:: vhdl if a = '1' then **Fix** .. code-block:: vhdl if (a = '1') then parenthesis set to 'remove' ^^^^^^^^^^^^^^^^^^^^^^^^^^^ **Violation** .. code-block:: vhdl if (a = '1') then **Fix** .. code-block:: vhdl if a = '1' then if_003 ###### |phase_2| |error| |whitespace| This rule checks for a single space between the **if** keyword and the (. |configuring_whitespace_rules_link| **Violation** .. code-block:: vhdl if(a = '1') then if (a = '1') then **Fix** .. code-block:: vhdl if (a = '1') then if (a = '1') then if_004 ###### |phase_2| |error| |whitespace| This rule checks for a single space between the ) and the **then** keyword. |configuring_whitespace_rules_link| **Violation** .. code-block:: vhdl if (a = '1')then if (a = '1') then **Fix** .. code-block:: vhdl if (a = '1') then if (a = '1') then if_005 ###### |phase_2| |error| |whitespace| This rule checks for a single space after the **elsif** keyword. |configuring_whitespace_rules_link| **Violation** .. code-block:: vhdl elsif(c = '1') then elsif (c = '1') then elsif b = '0' then **Fix** .. code-block:: vhdl elsif (c = '1') then elsif (c = '1') then elsif b = '0' then if_006 ###### |phase_3| |error| |blank_line| This rule checks for blank lines after the **then** keyword. **Violation** .. code-block:: vhdl if (a = '1') then b <= '0' **Fix** .. code-block:: vhdl if (a = '1') then b <= '0' if_007 ###### |phase_3| |error| |blank_line| This rule checks for blank lines before the **elsif** keyword. **Violation** .. code-block:: vhdl b <= '0' elsif (c = '1') then **Fix** .. code-block:: vhdl b <= '0' elsif (c = '1') then if_008 ###### |phase_3| |error| |blank_line| This rule checks for blank lines before the **end if** keywords. **Violation** .. code-block:: vhdl e <= '0'; end if; **Fix** .. code-block:: vhdl e <= '0'; end if; if_009 ###### |phase_4| |error| |alignment| This rule checks the alignment of multiline boolean expressions. |configuring_multiline_indent_rules_link| **Violation** .. code-block:: vhdl if (a = '0' and b = '1' and c = '0') then **Fix** .. code-block:: vhdl if (a = '0' and b = '1' and c = '0') then if_010 ###### |phase_3| |error| |blank_line| This rule checks for blank lines before the **else** keyword. **Violation** .. code-block:: vhdl d <= '1'; else **Fix** .. code-block:: vhdl d <= '1'; else if_011 ###### |phase_3| |error| |blank_line| This rule checks for blank lines after the **else** keyword. **Violation** .. code-block:: vhdl else e <= '0'; **Fix** .. code-block:: vhdl else e <= '0'; if_012 ###### |phase_4| |error| |indent| This rule checks the indent of the **elsif** keyword. **Violation** .. code-block:: vhdl if (a = '1') then b <= '0' elsif (c = '1') then d <= '1'; else e <= '0'; end if; **Fix** .. code-block:: vhdl if (a = '1') then b <= '0' elsif (c = '1') then d <= '1'; else e <= '0'; end if; if_013 ###### |phase_4| |error| |indent| This rule checks the indent of the **else** keyword. **Violation** .. code-block:: vhdl if (a = '1') then b <= '0' elsif (c = '1') then d <= '1'; else e <= '0'; end if; **Fix** .. code-block:: vhdl if (a = '1') then b <= '0' elsif (c = '1') then d <= '1'; else e <= '0'; end if; if_014 ###### |phase_4| |error| |indent| This rule checks the indent of the **end if** keyword. **Violation** .. code-block:: vhdl if (a = '1') then b <= '0' elsif (c = '1') then d <= '1'; else e <= '0'; end if; **Fix** .. code-block:: vhdl if (a = '1') then b <= '0' elsif (c = '1') then d <= '1'; else e <= '0'; end if; if_015 ###### |phase_2| |error| |whitespace| This rule checks for a single space between the **end if** keywords. |configuring_whitespace_rules_link| **Violation** .. code-block:: vhdl end if; **Fix** .. code-block:: vhdl end if; if_020 ###### |phase_1| |error| |structure| This rule checks the **end if** keyword is on its own line. **Violation** .. code-block:: vhdl if (a = '1') then c <= '1'; else c <= '0'; end if; **Fix** .. code-block:: vhdl if (a = '1') then c <= '1'; else c <= '0'; end if; if_021 ###### |phase_1| |error| |structure| This rule checks the **else** keyword is on its own line. **Violation** .. code-block:: vhdl if (a = '1') then c <= '1'; else c <= '0'; end if; **Fix** .. code-block:: vhdl if (a = '1') then c <= '0'; else c <= '1'; end if; if_022 ###### |phase_1| |error| |structure| This rule checks for code after the **else** keyword. **Violation** .. code-block:: vhdl if (a = '1') then c <= '1'; else c <= '0'; end if; **Fix** .. code-block:: vhdl if (a = '1') then c <= '1'; else c <= '0'; end if; if_023 ###### |phase_1| |error| |structure| This rule checks the **elsif** keyword is on its own line. **Violation** .. code-block:: vhdl if (a = '1') then c <= '1'; else c <= '0'; elsif (b = '0') then d <= '0'; end if; **Fix** .. code-block:: vhdl if (a = '1') then c <= '1'; else c <= '0'; elsif (b = '0') then d <= '0'; end if; if_024 ###### |phase_1| |error| |structure| This rule checks for code after the **then** keyword. **Violation** .. code-block:: vhdl if (a = '1') then c <= '1'; **Fix** .. code-block:: vhdl if (a = '1') then c <= '1'; if_025 ###### |phase_6| |error| |case| |case_keyword| This rule checks the **if** keyword has proper case. |configuring_uppercase_and_lowercase_rules_link| **Violation** .. code-block:: vhdl IF (a = '1') then **Fix** .. code-block:: vhdl if (a = '1') then if_026 ###### |phase_6| |error| |case| |case_keyword| This rule checks the **elsif** keyword has proper case. |configuring_uppercase_and_lowercase_rules_link| **Violation** .. code-block:: vhdl ELSIF (a = '1') then **Fix** .. code-block:: vhdl elsif (a = '1') then if_027 ###### |phase_6| |error| |case| |case_keyword| This rule checks the **else** keyword has proper case. |configuring_uppercase_and_lowercase_rules_link| **Violation** .. code-block:: vhdl ELSE **Fix** .. code-block:: vhdl else if_028 ###### |phase_6| |error| |case| |case_keyword| This rule checks the **end** keyword has proper case. |configuring_uppercase_and_lowercase_rules_link| **Violation** .. code-block:: vhdl END if; End if; **Fix** .. code-block:: vhdl end if; end if; if_029 ###### |phase_6| |error| |case| |case_keyword| This rule checks the **then** keyword has proper case. |configuring_uppercase_and_lowercase_rules_link| **Violation** .. code-block:: vhdl if (a = '1') THEN **Fix** .. code-block:: vhdl if (a = '1') then if_030 ###### |phase_3| |error| |blank_line| This rule checks a single blank line after the **end if**. In the case of nested **if** statements, the rule will be enfoced on the last **end if**. |configuring_blank_lines_link| **Violation** .. code-block:: vhdl if (A = '1') then B <= '0'; end if; C <= '1'; **Fix** .. code-block:: vhdl if (A = '1') then B <= '0'; end if; C <= '1'; if_031 ###### |phase_3| |error| |blank_line| This rule checks for blank lines or comments above the **if** keyword. In the case of nested **if** statements, the rule will be enfoced on the first **if**. |configuring_previous_line_rules_link| The default style is :code:`no_code`. **Violation** .. code-block:: vhdl C <= '1'; if (A = '1') then B <= '0'; end if; -- This is a comment if (A = '1') then B <= '0'; end if; **Fix** .. code-block:: vhdl C <= '1'; if (A = '1') then B <= '0'; end if; -- This is a comment if (A = '1') then B <= '0'; end if; if_032 ###### The function of this rule has been superseded with comment indent updates and is handled by rule comment_010. if_033 ###### The function of this rule has been superseded with comment indent updates and is handled by rule comment_010. if_034 ###### |phase_6| |error| |case| |case_keyword| This rule checks the **if** keyword in the **end if** has proper case. |configuring_uppercase_and_lowercase_rules_link| **Violation** .. code-block:: vhdl end If; end IF; **Fix** .. code-block:: vhdl end if; end if; if_035 ###### |phase_1| |error| |structure| This rule checks the expression after the **if** or **elsif** keyword starts on the same line. **Violation** .. code-block:: vhdl if a = '1' then elsif b = '1' then **Fix** .. code-block:: vhdl if a = '1' then elsif b = '1' then if_036 ###### |phase_1| |error| |structure| This rule checks the **then** keyword is not on a line by itself. **Violation** .. code-block:: vhdl if a = '1' then **Fix** .. code-block:: vhdl if a = '1' then