Skip to content

Latest commit

 

History

History
687 lines (375 loc) · 9.49 KB

block_rules.rst

File metadata and controls

687 lines (375 loc) · 9.49 KB

Block Rules

block_001

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

This rule checks for the existence of the is keyword.

Violation

block_label : block
block_label : block (guard_condition)

Fix

block_label : block is
block_label : block (guard_condition) is

block_003

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

Violation

block_label : block
is

Fix

block_labeel : block is

block_004

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

Violation

block is begin

Fix

block is
begin

block_005

This rule checks for code after the begin keyword.

Violation

begin a <= b;

Fix

begin
a <= b;

block_006

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

Violation

a <= b; end block;

Fix

a <= b;
end block;

block_007

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

Violation

end block;

Fix

end block block_label;

block_100

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

Violation

block_label    :    block    (guard_condition)   is
block_label  :   block    is

Fix

block_label : block (guard_condition) is
block_label : block is

block_101

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

Violation

end   block   block_label;

Fix

end block block_label;

block_200

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

Violation

a <= b;
block_label : block is

Fix

a <= b;

block_label : block is

block_201

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

Violation

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

Fix

block_label : block is

  constant width : integer := 32;

block_202

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

Violation

block_label block is

  constant width : integer := 32;
begin

Fix

block_label block is

  constant width : integer := 32;

begin

block_203

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

Violation

begin
  a <= b;

Fix

begin

  a <= b;

block_204

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

Violation

begin

  a <= b;
end block block_label;

Fix

begin

  a <= b;

end block block_label;

block_205

This rule checks for a blank line below the semicolon.

Violation

end block block_label;
a <= b;

Fix

end block block_label;

a <= b;

block_300

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

This rule checks the indent of the begin keyword.

Violation

block_label : block is

  begin

Fix

block_label : block is

begin

block_302

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

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

Violation

variable    var1 : natural;
constant  c_period : time;

Fix

variable var1     : natural;
constant c_period : time;

block_401

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

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

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

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

This rule checks the label has proper case.

Violation

BLOCK_LABEL : block is

Fix

block_label : block is

block_501

This rule checks the block keyword has proper case.

Violation

block_label : BLOCK is

Fix

block_label : block is

block_502

This rule checks the is keyword has proper case.

Violation

block_label : block IS

Fix

block_label : block is

block_503

This rule checks the begin keyword has proper case.

Violation

block_label : block is
BEGIN

Fix

block_label : block is
begin

block_504

This rule checks the end keyword has proper case.

Violation

END block block_label;

Fix

end block block_label;

block_505

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

Violation

end BLOCK block_label;

Fix

end block block_label;

block_506

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

Violation

end block BLOCK_LABEL;

Fix

end block block_label;

block_600

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

Violation

block_label : block is

Fix

block_label_blk : block is

block_601

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

Violation

block_label : block is

Fix

blk_block_label : block is