.. include:: includes.rst Block Rules ----------- block_001 ######### |phase_1| |error| |structure| This rule checks the block label and the **block** keyword are on the same line. Keeping the label and generate on the same line reduces excessive indenting. **Violation** .. code-block:: vhdl block_label : block is **Fix** .. code-block:: vhdl block_label : block is block_002 ######### |phase_1| |error| |structure| |structure_optional| This rule checks for the existence of the **is** keyword. |configuring_optional_items_link| **Violation** .. code-block:: vhdl block_label : block block_label : block (guard_condition) **Fix** .. code-block:: vhdl block_label : block is block_label : block (guard_condition) is block_003 ######### |phase_1| |error| |structure| This rule checks the **is** keyword is on the same line as the **block** keyword. **Violation** .. code-block:: vhdl block_label : block is **Fix** .. code-block:: vhdl block_label : block is block_004 ######### |phase_1| |error| |structure| This rule checks the **begin** keyword is on its own line. **Violation** .. code-block:: vhdl block is begin **Fix** .. code-block:: vhdl block is begin block_005 ######### |phase_1| |error| |structure| This rule checks for code after the **begin** keyword. **Violation** .. code-block:: vhdl begin a <= b; **Fix** .. code-block:: vhdl begin a <= b; block_006 ######### |phase_1| |error| |structure| This rule checks the **end** keyword is on its own line. **Violation** .. code-block:: vhdl a <= b; end block; **Fix** .. code-block:: vhdl a <= b; end block; block_007 ######### |phase_1| |error| |structure| |structure_optional| This rule checks the block label exists in the closing of the block statement. |configuring_optional_items_link| **Violation** .. code-block:: vhdl end block; **Fix** .. code-block:: vhdl end block block_label; block_100 ######### |phase_2| |error| |whitespace| This rule checks for a single space between the following block elements: label, label colon, **block** keyword, guard open parenthesis, guart close parenthesis, and **is** keywords. |configuring_whitespace_rules_link| **Violation** .. code-block:: vhdl block_label : block (guard_condition) is block_label : block is **Fix** .. code-block:: vhdl block_label : block (guard_condition) is block_label : block is block_101 ######### |phase_2| |error| |whitespace| This rule checks for a single space between the **end** and **block** keywords and label. |configuring_whitespace_rules_link| **Violation** .. code-block:: vhdl end block block_label; **Fix** .. code-block:: vhdl end block block_label; block_200 ######### |phase_3| |error| |blank_line| This rule checks for blank lines or comments above the block label. |configuring_previous_line_rules_link| **Violation** .. code-block:: vhdl a <= b; block_label : block is **Fix** .. code-block:: vhdl a <= b; block_label : block is block_201 ######### |phase_3| |error| |blank_line| This rule checks for a blank line below the **block** keyword. |configuring_blank_lines_link| **Violation** .. code-block:: vhdl block_label : block is constant width : integer := 32; **Fix** .. code-block:: vhdl block_label : block is constant width : integer := 32; block_202 ######### |phase_3| |error| |blank_line| This rule checks for blank lines or comments above the **begin** keyword. |configuring_blank_lines_link| **Violation** .. code-block:: vhdl block_label block is constant width : integer := 32; begin **Fix** .. code-block:: vhdl block_label block is constant width : integer := 32; begin block_203 ######### |phase_3| |error| |blank_line| This rule checks for a blank line below the **begin** keyword. |configuring_blank_lines_link| **Violation** .. code-block:: vhdl begin a <= b; **Fix** .. code-block:: vhdl begin a <= b; block_204 ######### |phase_3| |error| |blank_line| This rule checks for blank lines or comments above the **end** keyword. |configuring_blank_lines_link| **Violation** .. code-block:: vhdl begin a <= b; end block block_label; **Fix** .. code-block:: vhdl begin a <= b; end block block_label; block_205 ######### |phase_3| |error| |blank_line| This rule checks for a blank line below the semicolon. |configuring_blank_lines_link| **Violation** .. code-block:: vhdl end block block_label; a <= b; **Fix** .. code-block:: vhdl end block block_label; a <= b; block_300 ######### |phase_4| |error| |indent| This rule checks the indent of the block label. **Violation** .. code-block:: vhdl a <= b; block_label : block is **Fix** .. code-block:: vhdl a <= b; block_label : block is block_301 ######### |phase_4| |error| |indent| This rule checks the indent of the **begin** keyword. **Violation** .. code-block:: vhdl block_label : block is begin **Fix** .. code-block:: vhdl block_label : block is begin block_302 ######### |phase_4| |error| |indent| This rule checks the indent of the **end** keyword. **Violation** .. code-block:: vhdl block_label : block is begin end block block_label; **Fix** .. code-block:: vhdl block_label : block is begin end block block_label; block_400 ######### |phase_5| |error| |alignment| This rule checks the identifiers for all declarations are aligned in the block declarative region. |configuring_identifier_alignment_rules_link| **Violation** .. code-block:: vhdl variable var1 : natural; constant c_period : time; **Fix** .. code-block:: vhdl variable var1 : natural; constant c_period : time; block_401 ######### |phase_5| |error| |alignment| This rule checks the colons are in the same column for all declarations in the block declarative part. |configuring_keyword_alignment_rules_link| **Violation** .. code-block:: vhdl signal sig1: natural; variable var2 : natural; constant c_period : time; file my_test_input : my_file_type; **Fix** .. code-block:: vhdl signal sig1 : natural; variable var2 : natural; constant c_period : time; file my_test_input : my_file_type; block_402 ######### |phase_5| |error| |alignment| This rule checks the colons are in the same column for all attribute specifications. |configuring_keyword_alignment_rules_link| **Violation** .. code-block:: vhdl attribute mark_debug of wr_en : signal is "true"; attribute mark_debug of almost_empty : signal is "true"; attribute mark_debug of full : signal is "true"; **Fix** .. code-block:: vhdl attribute mark_debug of wr_en : signal is "true"; attribute mark_debug of almost_empty : signal is "true"; attribute mark_debug of full : signal is "true"; block_500 ######### |phase_6| |error| |case| |case_label| This rule checks the label has proper case. |configuring_uppercase_and_lowercase_rules_link| **Violation** .. code-block:: vhdl BLOCK_LABEL : block is **Fix** .. code-block:: vhdl block_label : block is block_501 ######### |phase_6| |error| |case| |case_keyword| This rule checks the **block** keyword has proper case. |configuring_uppercase_and_lowercase_rules_link| **Violation** .. code-block:: vhdl block_label : BLOCK is **Fix** .. code-block:: vhdl block_label : block is block_502 ######### |phase_6| |error| |case| |case_keyword| This rule checks the **is** keyword has proper case. |configuring_uppercase_and_lowercase_rules_link| **Violation** .. code-block:: vhdl block_label : block IS **Fix** .. code-block:: vhdl block_label : block is block_503 ######### |phase_6| |error| |case| |case_keyword| This rule checks the **begin** keyword has proper case. |configuring_uppercase_and_lowercase_rules_link| **Violation** .. code-block:: vhdl block_label : block is BEGIN **Fix** .. code-block:: vhdl block_label : block is begin block_504 ######### |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 block block_label; **Fix** .. code-block:: vhdl end block block_label; block_505 ######### |phase_6| |error| |case| |case_keyword| This rule checks the **block** keyword in the **end block** has proper case. |configuring_uppercase_and_lowercase_rules_link| **Violation** .. code-block:: vhdl end BLOCK block_label; **Fix** .. code-block:: vhdl end block block_label; block_506 ######### |phase_6| |error| |case| |case_label| This rule checks the label has proper case on the end block declaration. |configuring_uppercase_and_lowercase_rules_link| **Violation** .. code-block:: vhdl end block BLOCK_LABEL; **Fix** .. code-block:: vhdl end block block_label; block_600 ######### |phase_7| |disabled| |error| |naming| This rule checks for valid suffixes on block labels. The default suffix is *_blk*. |configuring_prefix_and_suffix_rules_link| **Violation** .. code-block:: vhdl block_label : block is **Fix** .. code-block:: vhdl block_label_blk : block is block_601 ######### |phase_7| |disabled| |error| |naming| This rule checks for valid prefixes on block labels. The default prefix is *blk_*. |configuring_prefix_and_suffix_rules_link| **Violation** .. code-block:: vhdl block_label : block is **Fix** .. code-block:: vhdl blk_block_label : block is