Subprogram Body Rules

subprogram_body_201

phase_3 error blank_line

This rule checks for a blank line below the is keyword.

This rule allows the begin keyword to occupy the blank line:

function overflow (a: integer) return integer is
begin

Refer to Configuring Blank Lines for more information.

Violation

function overflow (a: integer) return integer is
  constant width : integer := 32;
begin

Fix

function overflow (a: integer) return integer is

  constant width : integer := 32;
begin

subprogram_body_202

phase_3 error blank_line

This rule checks for blank lines above the begin keyword.

This rule allows the is keyword to occupy the blank line:

function overflow (a: integer) return integer is
begin

Refer to Configuring Blank Lines for more information.

Violation

function overflow (a: integer) return integer is

  constant width : integer := 32;
begin

Fix

function overflow (a: integer) return integer is

  constant width : integer := 32;

begin

subprogram_body_203

phase_3 error blank_line

This rule checks for a blank line below the begin keyword.

Refer to Configuring Blank Lines for more information.

Violation

function overflow (a: integer) return integer is
begin
  a <= b;

Fix

function overflow (a: integer) return integer is
begin

  a <= b;

subprogram_body_204

phase_3 error blank_line

This rule checks for blank lines above the end keyword.

Refer to Configuring Blank Lines for more information.

Violation

begin

  a <= b;
end function overflow;

Fix

begin

  a <= b;

end function overflow;

subprogram_body_205

phase_3 error blank_line

This rule checks for a blank line below the end of the function declaration.

Refer to Configuring Blank Lines for more information.

Violation

function overflow (a: integer) return integer is
end;
signal wr_en : std_logic;

Fix

function overflow (a: integer) return integer is
end;

signal wr_en : std_logic;

subprogram_body_400

phase_5 error alignment

This rule checks the alignment of the <= and := operators over consecutive sequential assignments in subprogram bodies.

Following extra configurations are supported:

  • if_control_statements_ends_group,

  • case_control_statements_ends_group.

  • case_keyword_statements_ends_group.

  • loop_control_statements_ends_group,

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

Violation

wr_en <= '1';
rd_en   <= '0';
v_variable := 10;

Fix

wr_en      <= '1';
rd_en      <= '0';
v_variable := 10;

subprogram_body_401

phase_5 error alignment

This rule checks the colons are in the same column for all attribute specifications.

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

Violation

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

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";