Procedure Rules

There are three forms a procedure: with parameters, without parameters, and a package declaration:

with parameters

procedure average_samples (
   constant a : in integer;
   signal b : in std_logic;
   variable c : in std_logic_vector(3 downto 0);
   signal d : out std_logic) is
begin
end procedure average_samples;

without parameters

procedure average_samples is
begin
end procedure average_samples;

package declaration

procedure average_samples;

procedure average_samples (
   constant a : in integer;
   signal b : in std_logic;
   variable c : in std_logic_vector(3 downto 0);
   signal d : out std_logic);

procedure_001

phase_4 error

This rule checks the indent of the procedure keyword.

Violation

  procedure average_samples (
  constant a : in integer;
  signal b : in std_logic;
  variable c : in std_logic_vector(3 downto 0);
  signal d : out std_logic ) is
begin
end procedure average_samples;

Fix

procedure average_samples (
  constant a : in integer;
  signal b : in std_logic;
  variable c : in std_logic_vector(3 downto 0);
  signal d : out std_logic ) is
begin
end procedure average_samples;

procedure_002

phase_4 error

This rule checks the indent of the begin keyword.

Violation

procedure average_samples (
  constant a : in integer;
  signal b : in std_logic;
  variable c : in std_logic_vector(3 downto 0);
  signal d : out std_logic ) is
  begin
end procedure average_samples;

Fix

procedure average_samples (
  constant a : in integer;
  signal b : in std_logic;
  variable c : in std_logic_vector(3 downto 0);
  signal d : out std_logic ) is
begin
end procedure average_samples;

procedure_003

phase_4 error

This rule checks the indent of the end keyword.

Violation

procedure average_samples (
  constant a : in integer;
  signal b : in std_logic;
  variable c : in std_logic_vector(3 downto 0);
  signal d : out std_logic ) is
begin
  end procedure average_samples;

Fix

procedure average_samples (
  constant a : in integer;
  signal b : in std_logic;
  variable c : in std_logic_vector(3 downto 0);
  signal d : out std_logic ) is
begin
end procedure average_samples;

procedure_004

phase_4 error

This rule checks the indent of parameters.

Violation

procedure average_samples (
constant a : in integer;
    signal b : in std_logic;
   variable c : in std_logic_vector(3 downto 0);
 signal d : out std_logic ) is
begin
end procedure average_samples;

Fix

procedure average_samples (
  constant a : in integer;
  signal b : in std_logic;
  variable c : in std_logic_vector(3 downto 0);
  signal d : out std_logic ) is
begin
end procedure average_samples;

procedure_005

phase_4 error

This rule checks the indent of line between the is and begin keywords

Violation

procedure average_samples (
  constant a : in integer;
  signal d : out std_logic ) is
variable var_1 : integer;
    variable var_1 : integer;
begin
end procedure average_samples;

Fix

procedure average_samples (
  constant a : in integer;
  signal b : in std_logic;
  variable c : in std_logic_vector(3 downto 0);
  signal d : out std_logic ) is
  variable var_1 : integer;
  variable var_1 : integer;
begin
end procedure average_samples;

procedure_006

phase_4 error

This rule checks the indent of the closing parenthesis if it is on it’s own line.

Violation

procedure average_samples (
  constant a : in integer;
  signal d : out std_logic
  ) is

Fix

procedure average_samples (
  constant a : in integer;
  signal d : out std_logic
) is

procedure_007

phase_6 error

This rule checks for consistent capitalization of procedure names.

Violation

architecture rtl of entity1 is

  procedure average_samples (
    constant a : in integer;
    signal d : out std_logic
  ) is

begin

  proc1 : process () is
  begin

    Average_samples();

  end process proc1;

end architecture rtl;

Fix

architecture rtl of entity1 is

  procedure average_samples (
    constant a : in integer;
    signal d : out std_logic
  ) is

begin

  proc1 : process () is
  begin

    average_samples();

  end process proc1;

end architecture RTL;

procedure_008

phase_6 error

This rule checks the end keyword has proper case.

Refer to the section Configuring Uppercase and Lowercase Rules for information on changing the default case.

Violation

END;

End procedure proc;

Fix

end;

end procedure proc;

procedure_009

phase_6 error

This rule checks the procedure keyword in the end procedure has proper case.

Refer to the section Configuring Uppercase and Lowercase Rules for information on changing the default case.

Violation

end PROCEDURE;

end Procedure proc;

Fix

end procedure;

end procedure proc;

procedure_010

phase_5 error

This rule checks the identifiers for all declarations are aligned in the procedure declarative part.

Refer to the section Configuring Identifier Alignment Rules for information on changing the configurations.

Violation

variable var1 : natural;
signal sig1 : natural;
constant c_period : time;

Fix

variable var1     : natural;
signal   sig1     : natural;
constant c_period : time;