Skip to content

Latest commit

 

History

History
422 lines (246 loc) · 6.96 KB

constant_rules.rst

File metadata and controls

422 lines (246 loc) · 6.96 KB

Constant Rules

constant_001

|phase_4| |error| |indent|

This rule checks the indent of a constant declaration.

Violation

architecture RTL of FIFO is

constant size : integer := 1;
    constant width : integer := 32

Fix

architecture RTL of FIFO is

  constant size : integer := 1;
  constant width : integer := 32

constant_002

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

This rule checks the constant keyword has proper case.

|configuring_uppercase_and_lowercase_rules_link|

Violation

CONSTANT size : integer := 1;

Fix

constant size : integer := 1;

constant_003

This rule was deprecated and replaced with rules: function_015, package_019, procedure_010, architecture_029 and process_037.

constant_004

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

This rule checks the constant identifier has proper case.

|configuring_uppercase_and_lowercase_rules_link|

Violation

constant SIZE : integer := 1;

Fix

constant size : integer := 1;

constant_005

|phase_2| |error| |whitespace|

This rule checks for a single space after the colon.

|configuring_whitespace_rules_link|

Violation

constant size  :integer := 1;
constant width :     integer := 32;

Fix

constant size  : integer := 1;
constant width : integer := 32;

constant_006

|phase_2| |error| |whitespace|

This rule checks for at least a single space before the colon.

|configuring_whitespace_rules_link|

Violation

constant size: integer := 1;
constant width     : integer := 32;

Fix

constant size : integer := 1;
constant width     : integer := 32;

constant_007

|phase_1| |error| |structure|

This rule checks the := is on the same line at the constant keyword.

Violation

constant size : integer
   := 1;
constant width : integer
   := 32;

Fix

constant size    : integer :=
  1;
constant width   : integer :=
  32

constant_010

|phase_2| |error| |whitespace|

This rule checks for a single space before the := keyword in constant declarations. Having a space makes it clearer where the assignment occurs on the line.

|configuring_whitespace_rules_link|

Violation

constant size : integer:= 1;
constant width : integer   := 10;

Fix

constant size : integer := 1;
constant width : integer := 10;

constant_011

The function of this rule has been superceeded by the following rules:

  • ieee_500
  • subtype_002
  • type_014

constant_012

|phase_5| |error| |alignment|

This rule checks the alignment of multiline constants that contain arrays.

|configuring_multiline_indent_rules_link|

Note

The structure of multiline array constants is handled by the rule constant_016.

Violation

constant rom : romq_type :=
(
         0,
     65535,
     32768
  );

Fix

constant rom : romq_type :=
(
  0,
  65535,
  32768
);

constant_013

|phase_6| |error| |case|

This rule checks for consistent capitalization of constant names.

Violation

architecture RTL of ENTITY1 is

  constant c_size  : integer := 5;
  constant c_ones  : std_logic_vector(c_size - 1 downto 0) := (others => '1');
  constant c_zeros : std_logic_vector(c_size - 1 downto 0) := (others => '0');

  signal data : std_logic_vector(c_size - 1 downto 0);

begin

  data <= C_ONES;

  PROC_NAME : process () is
  begin

    data <= C_ones;

    if (sig2 = '0') then
      data <= c_Zeros;
    end if;

  end process PROC_NAME;

end architecture RTL;

Fix

architecture RTL of ENTITY1 is

  constant c_size  : integer := 5;
  constant c_ones  : std_logic_vector(c_size - 1 downto 0) := (others => '1');
  constant c_zeros : std_logic_vector(c_size - 1 downto 0) := (others => '0');

  signal data : std_logic_vector(c_size - 1 downto 0);

begin

  data <= c_ones;

  PROC_NAME : process () is
  begin

    data <= c_ones;

    if (sig2 = '0') then
      data <= c_zeros;
    end if;

  end process PROC_NAME;

end architecture RTL;

constant_014

|phase_5| |error| |alignment|

This rule checks the indent of multiline constants that do not contain arrays.

|configuring_multiline_indent_rules_link|

Violation

constant width : integer := a + b +
  c + d;

Fix

constant width : integer := a + b +
                            c + d;

constant_015

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

This rule checks for valid prefixes on constant identifiers. The default constant prefix is c_.

|configuring_prefix_and_suffix_rules_link|

Violation

constant my_const : integer;

Fix

constant c_my_const : integer;

constant_016

|phase_5| |error| |structure|

This rule checks the structure of multiline constants that contain arrays.

|configuring_array_multiline_structure_rules_link|

Note

The indenting of multiline array constants is handled by the rule constant_012.

Violation

constant rom : romq_type := (0, 65535, 32768);

Fix

constant rom : romq_type :=
(
  0,
  65535,
  32768
);

constant_017

|phase_1| |error| |structure|

This rule checks the structure of constant constraints.

|configuring_multiline_constraint_rules_link|

Violation

constant con_a : my_record(element1(7 downto 0), element2(3 downto 0));

Fix

constant con_a : my_record(
    element1(7 downto 0),
    element2(3 downto 0)
  );

constant_100

|phase_2| |error| |whitespace|

This rule checks for a single space after the := assignment in constant declarations. Having a space makes it clearer where the assignment occurs on the line.

|configuring_whitespace_rules_link|

Violation

constant size : integer :=1;
constant width : t_type :=(

Fix

constant size : integer := 1;
constant width : t_type := (

constant_600

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

This rule checks for valid suffixes on constant identifiers. The default constant suffix is _c.

|configuring_prefix_and_suffix_rules_link|

Violation

constant my_const : integer;

Fix

constant my_const_c : integer;