Block Rules

block_001

phase_1 error structure

This rule checks the block label and the block keyword are on the same line. Keeping the label and generate on the same line reduces excessive indenting.

Violation

block_label :
  block is

Fix

block_label : block is

block_002

phase_1 error structure structure_optional

This rule checks for the existence of the is keyword.

Refer to Configuring Optional Items for more information.

Violation

block_label : block
block_label : block (guard_condition)

Fix

block_label : block is
block_label : block (guard_condition) is

block_003

phase_1 error structure

This rule checks the is keyword is on the same line as the block keyword.

Violation

block_label : block
is

Fix

block_label : block is

block_004

phase_1 error structure

This rule checks the begin keyword is on its own line.

Violation

block is begin

Fix

block is
begin

block_005

phase_1 error structure

This rule checks for code after the begin keyword.

Violation

begin a <= b;

Fix

begin
a <= b;

block_006

phase_1 error structure

This rule checks the end keyword is on its own line.

Violation

a <= b; end block;

Fix

a <= b;
end block;

block_007

phase_1 error structure structure_optional

This rule checks the block label exists in the closing of the block statement.

Refer to Configuring Optional Items for more information.

Violation

end block;

Fix

end block block_label;

block_100

phase_2 error whitespace

This rule checks for a single space between the following block elements: label, label colon, block keyword, guard open parenthesis, guard close parenthesis, and is keywords.

Refer to Configuring Whitespace Rules for options on changing the number of whitespaces..

Violation

block_label    :    block    (guard_condition)   is
block_label  :   block    is

Fix

block_label : block (guard_condition) is
block_label : block is

block_101

phase_2 error whitespace

This rule checks for a single space between the end and block keywords and label.

Refer to Configuring Whitespace Rules for options on changing the number of whitespaces..

Violation

end   block   block_label;

Fix

end block block_label;

block_200

phase_3 error blank_line

This rule checks for blank lines or comments above the block label.

Refer to Configuring Previous Line Rules for more information.

Violation

a <= b;
block_label : block is

Fix

a <= b;

block_label : block is

block_201

phase_3 error blank_line

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

Refer to Configuring Blank Lines for more information.

Violation

block_label : block is
  constant width : integer := 32;

Fix

block_label : block is

  constant width : integer := 32;

block_202

phase_3 error blank_line

This rule checks for blank lines or comments above the begin keyword.

Refer to Configuring Blank Lines for more information.

Violation

block_label block is

  constant width : integer := 32;
begin

Fix

block_label block is

  constant width : integer := 32;

begin

block_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

begin
  a <= b;

Fix

begin

  a <= b;

block_204

phase_3 error blank_line

This rule checks for blank lines or comments above the end keyword.

Refer to Configuring Blank Lines for more information.

Violation

begin

  a <= b;
end block block_label;

Fix

begin

  a <= b;

end block block_label;

block_205

phase_3 error blank_line

This rule checks for a blank line below the semicolon.

Refer to Configuring Blank Lines for more information.

Violation

end block block_label;
a <= b;

Fix

end block block_label;

a <= b;

block_300

phase_4 error indent

This rule checks the indent of the block label.

Violation

a <= b;

   block_label : block is

Fix

a <= b;

block_label : block is

block_301

phase_4 error indent

This rule checks the indent of the begin keyword.

Violation

block_label : block is

  begin

Fix

block_label : block is

begin

block_302

phase_4 error indent

This rule checks the indent of the end keyword.

Violation

block_label : block is

begin

  end block block_label;

Fix

block_label : block is

begin

end block block_label;

block_400

phase_5 error alignment

This rule checks the identifiers for all declarations are aligned in the block declarative region.

Refer to Configuring Identifier Alignment Rules for more information.

Violation

variable    var1 : natural;
constant  c_period : time;

Fix

variable var1 : natural;
constant c_period : time;

block_401

phase_5 error alignment

This rule checks the colons are in the same column for all declarations in the block declarative part.

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

Violation

signal sig1: natural;
variable var2  : natural;
constant c_period : time;
file my_test_input : my_file_type;

Fix

signal sig1        : natural;
variable var2      : natural;
constant c_period  : time;
file my_test_input : my_file_type;

block_402

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

block_500

phase_6 error case case_label

This rule checks the label has proper case.

Refer to Configuring Uppercase and Lowercase Rules for more information.

Violation

BLOCK_LABEL : block is

Fix

block_label : block is

block_501

phase_6 error case case_keyword

This rule checks the block keyword has proper case.

Refer to Configuring Uppercase and Lowercase Rules for more information.

Violation

block_label : BLOCK is

Fix

block_label : block is

block_502

phase_6 error case case_keyword

This rule checks the is keyword has proper case.

Refer to Configuring Uppercase and Lowercase Rules for more information.

Violation

block_label : block IS

Fix

block_label : block is

block_503

phase_6 error case case_keyword

This rule checks the begin keyword has proper case.

Refer to Configuring Uppercase and Lowercase Rules for more information.

Violation

block_label : block is
BEGIN

Fix

block_label : block is
begin

block_504

phase_6 error case case_keyword

This rule checks the end keyword has proper case.

Refer to Configuring Uppercase and Lowercase Rules for more information.

Violation

END block block_label;

Fix

end block block_label;

block_505

phase_6 error case case_keyword

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

Refer to Configuring Uppercase and Lowercase Rules for more information.

Violation

end BLOCK block_label;

Fix

end block block_label;

block_506

phase_6 error case case_label

This rule checks the label has proper case on the end block declaration.

Refer to Configuring Uppercase and Lowercase Rules for more information.

Violation

end block BLOCK_LABEL;

Fix

end block block_label;

block_600

phase_7 disabled error unfixable naming

This rule checks for valid suffixes on block labels. The default suffix is _blk.

Refer to Configuring Prefix and Suffix Rules for more information.

Violation

block_label : block is

Fix

block_label_blk : block is

block_601

phase_7 disabled error unfixable naming

This rule checks for valid prefixes on block labels. The default prefix is blk_.

Refer to Configuring Prefix and Suffix Rules for more information.

Violation

block_label : block is

Fix

blk_block_label : block is