.. include:: includes.rst Package Body Rules ------------------ package_body_001 ################ |phase_1| |error| |structure| This rule checks the **is** keyword is on the same line as the **package** keyword. **Violation** .. code-block:: vhdl package body FIFO_PKG is **Fix** .. code-block:: vhdl package body FIFO_PKG is package_body_002 ################ |phase_1| |error| |structure| |structure_optional| This rule checks for the optional **package body** keywords on the end package body declaration. |configuring_optional_items_link| **Violation** .. code-block:: vhdl end FIFO_PKG; **Fix** .. code-block:: vhdl end package body FIFO_PKG; package_body_003 ################ |phase_1| |error| |structure| |structure_optional| This rule checks the package name exists in the closing of the package body declaration. |configuring_optional_items_link| **Violation** .. code-block:: vhdl end package body; **Fix** .. code-block:: vhdl end package body fifo_pkg; package_body_100 ################ |phase_2| |error| |whitespace| This rule checks for a single space between **package**, **body** and **is** keywords. |configuring_whitespace_rules_link| **Violation** .. code-block:: vhdl package body FIFO_PKG is **Fix** .. code-block:: vhdl package body FIFO_PKG is package_body_101 ################ |phase_2| |error| |whitespace| This rule checks for a single space between the **end**, **package** and **body** keywords and package name. |configuring_whitespace_rules_link| **Violation** .. code-block:: vhdl end package body FIFO_PKG; **Fix** .. code-block:: vhdl end package body FIFO_PKG; package_body_200 ################ |phase_3| |error| |blank_line| This rule checks for blank lines or comments above the **package** keyword. |configuring_previous_line_rules_link| **Violation** .. code-block:: vhdl library ieee; package body FIFO_PKG is **Fix** .. code-block:: vhdl library ieee; package body FIFO_PKG is package_body_201 ################ |phase_3| |error| |blank_line| This rule checks for a blank line below the **package** keyword. |configuring_blank_lines_link| **Violation** .. code-block:: vhdl package body FIFO_PKG is constant width : integer := 32; **Fix** .. code-block:: vhdl package body FIFO_PKG is constant width : integer := 32; package_body_202 ################ |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 constant depth : integer := 512; end package body FIFO_PKG; **Fix** .. code-block:: vhdl constant depth : integer := 512; end package body FIFO_PKG; package_body_203 ################ |phase_3| |error| |blank_line| This rule checks for a blank line below the **end package** keyword. |configuring_blank_lines_link| **Violation** .. code-block:: vhdl end package body FIFO_PKG; library ieee; **Fix** .. code-block:: vhdl end package body FIFO_PKG; library ieee; package_body_300 ################ |phase_4| |error| |indent| This rule checks the indent of the package body keyword. **Violation** .. code-block:: vhdl library ieee; package body FIFO_PKG is **Fix** .. code-block:: vhdl library ieee; package body FIFO_PKG is package_body_301 ################ |phase_4| |error| |indent| This rule checks the indent of the end package declaration. **Violation** .. code-block:: vhdl package body FIFO_PKG is end package body fifo_pkg; **Fix** .. code-block:: vhdl package body fifo_pkg is end package body fifo_pkg; package_body_400 ################ |phase_5| |error| |alignment| This rule checks the identifiers for all declarations are aligned in the package body 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; package_body_401 ################ |phase_5| |error| |alignment| This rule checks the colons are in the same column for all declarations in the package body declarative part. |configuring_keyword_alignment_rules_link| **Violation** .. code-block:: vhdl package my_package is signal wr_en : std_logic; signal rd_en : std_logic; constant c_period : time; end package my_package; **Fix** .. code-block:: vhdl package my_package is signal wr_en : std_logic; signal rd_en : std_logic; constant c_period : time; end package my_package; package_body_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"; package_body_500 ################ |phase_6| |error| |case| |case_keyword| This rule checks the **package** keyword has proper case. |configuring_uppercase_and_lowercase_rules_link| **Violation** .. code-block:: vhdl PACKAGE body FIFO_PKG is **Fix** .. code-block:: vhdl package body FIFO_PKG is package_body_501 ################ |phase_6| |error| |case| |case_keyword| This rule checks the **body** keyword has proper case. |configuring_uppercase_and_lowercase_rules_link| **Violation** .. code-block:: vhdl package BODY FIFO_PKG is **Fix** .. code-block:: vhdl package body FIFO_PKG is package_body_502 ################ |phase_6| |error| |case| |case_name| This rule checks the package name has proper case in the package declaration. |configuring_uppercase_and_lowercase_rules_link| **Violation** .. code-block:: vhdl package body FIFO_PKG is **Fix** .. code-block:: vhdl package body fifo_pkg is package_body_503 ################ |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 package fifo_pkg IS **Fix** .. code-block:: vhdl package fifo_pkg is package_body_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 package fifo_pkg; **Fix** .. code-block:: vhdl end package fifo_pkg; package_body_505 ################ |phase_6| |error| |case| |case_keyword| This rule checks the **package** keyword in the **end package body** has proper case. |configuring_uppercase_and_lowercase_rules_link| **Violation** .. code-block:: vhdl end PACKAGE body fifo_pkg; **Fix** .. code-block:: vhdl end package body fifo_pkg; package_body_506 ################ |phase_6| |error| |case| |case_keyword| This rule checks the **body** keyword in the **end package body** has proper case. |configuring_uppercase_and_lowercase_rules_link| **Violation** .. code-block:: vhdl end package BODY fifo_pkg; **Fix** .. code-block:: vhdl end package body fifo_pkg; package_body_507 ################ |phase_6| |error| |case| |case_name| This rule checks the package name has proper case on the end package declaration. |configuring_uppercase_and_lowercase_rules_link| **Violation** .. code-block:: vhdl end package body FIFO_PKG; **Fix** .. code-block:: vhdl end package fifo_pkg; package_body_600 ################ |phase_7| |disabled| |error| |unfixable| |naming| This rule checks for valid suffixes on package body identifiers. The default package suffix is *_pkg*. |configuring_prefix_and_suffix_rules_link| **Violation** .. code-block:: vhdl package body foo is **Fix** .. code-block:: vhdl package body foo_pkg is package_body_601 ################ |phase_7| |disabled| |error| |unfixable| |naming| This rule checks for valid prefixes on package body identifiers. The default package prefix is *pkg_*. |configuring_prefix_and_suffix_rules_link| **Violation** .. code-block:: vhdl package body foo is **Fix** .. code-block:: vhdl package body pkg_foo is