.. include:: includes.rst

Alias Declaration Rules
-----------------------

alias_declaration_001
#####################

|phase_1| |error| |structure|

This rule checks the **alias** keyword is on its own line.

**Violation**

.. code-block:: vhdl

   signal sig1 : std_logic; alias designator is name;

**Fix**

.. code-block:: vhdl

   signal sig1 : std_logic;
   alias designator is name;

alias_declaration_100
#####################

|phase_2| |error| |whitespace|

This rule checks for a single space after the colon for the subtype_indication.

|configuring_whitespace_rules_link|

**Violation**

.. code-block:: vhdl

   alias alias_designator :    subtype_indication is name;
   alias alias_designator :subtype_indication is name;

**Fix**

.. code-block:: vhdl

   alias alias_designator : subtype_indication is name;
   alias alias_designator : subtype_indication is name;

alias_declaration_101
#####################

|phase_2| |error| |whitespace|

This rule checks for a single space before the **is** keyword if the : is present.

|configuring_whitespace_rules_link|

**Violation**

.. code-block:: vhdl

   alias alias_designator : subtype_indication     is name;
   alias alias_designator   is name;

**Fix**

.. code-block:: vhdl

   alias alias_designator : subtype_indication is name;
   alias alias_designator   is name;

alias_declaration_102
#####################

|phase_2| |error| |whitespace|

This rule checks for a single space after the **is** keyword.

|configuring_whitespace_rules_link|

**Violation**

.. code-block:: vhdl

   alias alias_designator is     name;

**Fix**

.. code-block:: vhdl

   alias alias_designator is name;

alias_declaration_103
#####################

|phase_2| |disabled| |error| |whitespace|

This rule checks for a single space before the designator.

|configuring_whitespace_rules_link|

**Violation**

.. code-block:: vhdl

   alias          alias_designator is name;

**Fix**

.. code-block:: vhdl

   alias alias_designator is name;

alias_declaration_300
#####################

|phase_4| |error| |indent|

This rule checks the indent of the **alias** keyword.

**Violation**

.. code-block:: vhdl

   signal sig1 : integer;

     alias is name;

**Fix**

.. code-block:: vhdl

   signal sig1 : integer;

   alias is name;

alias_declaration_500
#####################

|phase_6| |error| |case| |case_keyword|

This rule checks the **alias** keyword has proper case.

|configuring_uppercase_and_lowercase_rules_link|

**Violation**

.. code-block:: vhdl

   ALIAS alias_designator is name;

**Fix**

.. code-block:: vhdl

   alias alias_designator is name;

alias_declaration_501
#####################

|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

   alias alias_designator IS name;

**Fix**

.. code-block:: vhdl

   alias alias_designator is name;

alias_declaration_502
#####################

|phase_6| |error| |case| |case_name|

This rule checks the alias designator has proper case.

|configuring_uppercase_and_lowercase_rules_link|

**Violation**

.. code-block:: vhdl

   alias Alias_Designator is name;

**Fix**

.. code-block:: vhdl

   alias alias_designator is name;

alias_declaration_503
#####################

|phase_6| |error| |case|

This rule checks for consistent capitalization of alias designators.

**Violation**

.. code-block:: vhdl

   architecture RTL of ENTITY1 is

     signal instructure : bit_vector(15 downto 0);
     alias opcode : bit_vector(3 downto 0) is instructure(15 downto 12);

     signal data : std_logic_vector(OPCODE'range);

   begin

     data <= OpCode;

     PROC_NAME : process () is
     begin

       data <= OpCOde;

       if (opCODE = "0110") then
         data <= oPCode;
       end if;

     end process PROC_NAME;

   end architecture RTL;

**Fix**

.. code-block:: vhdl

   architecture RTL of ENTITY1 is

     signal instructure : bit_vector(15 downto 0);
     alias opcode : bit_vector(3 downto 0) is instructure(15 downto 12);

     signal data : std_logic_vector(opcode'range);

   begin

     data <= opcode;

     PROC_NAME : process () is
     begin

       data <= opcode;

       if (opcode = "0110") then
         data <= opcode;
       end if;

     end process PROC_NAME;

   end architecture RTL;

alias_declaration_600
#####################

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

This rule checks for valid prefixes on alias designators.

Default prefix is *a_*.

|configuring_prefix_and_suffix_rules_link|

**Violation**

.. code-block:: vhdl

   alias header is name;
   alias footer is name;

**Fix**

.. code-block:: vhdl

   alias a_header is name;
   alias a_footer is name;

alias_declaration_601
#####################

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

This rule checks for valid suffixes on alias designators.

Default prefix is *_a*.

|configuring_prefix_and_suffix_rules_link|

**Violation**

.. code-block:: vhdl

   alias header is name;
   alias footer is name;

**Fix**

.. code-block:: vhdl

   alias header_a is name;
   alias footer_a is name;
