Process Rules

process_001

This rule checks the indent of the process declaration.

Violation

architecture RTL of FIFO is

begin

PROC_A : process (rd_en, wr_en, data_in, data_out,

Fix

architecture RTL of FIFO is

begin

  PROC_A : process (rd_en, wr_en, data_in, data_out,

process_002

This rule checks for a single space after the process keyword.

Violation

PROC_A : process(rd_en, wr_en, data_in, data_out,

PROC_A : process    (rd_en, wr_en, data_in, data_out,

Fix

PROC_A : process (rd_en, wr_en, data_in, data_out,

PROC_A : process (rd_en, wr_en, data_in, data_out,

process_003

This rule checks the indent of the begin keyword.

Violation

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is
  begin

Fix

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is
begin

process_004

This rule checks the begin keyword has proper case.

Note

The default is lowercase.

Violation

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is
BEGIN

Fix

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is
begin

process_005

This rule checks the process keyword has proper case.

Note

The default is lowercase.

Violation

PROC_A : PROCESS (rd_en, wr_en, data_in, data_out,

Fix

PROC_A : process (rd_en, wr_en, data_in, data_out,

process_006

This rule checks the indent of the end process keywords.

Violation

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is
begin

  end process PROC_A;

Fix

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is
begin

end process PROC_A;

process_007

This rule checks for a single space after the end keyword.

Violation

end   process PROC_A;

Fix

end process PROC_A;

process_008

This rule checks the end keyword has proper case.

Note

The default is lowercase.

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

Violation

END process PROC_A;

Fix

end process PROC_A;

process_009

This rule checks the process keyword has proper case in the end process line.

Note

The default is lowercase.

Violation

end PROCESS PROC_A;

Fix

end process PROC_A;

process_010

This rule checks the begin keyword is on it’s own line.

Violation

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is begin

Fix

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is
begin

process_011

This rule checks for a blank line after the end process keyword.

Violation

end process PROC_A;
WR_EN <= wr_en;

Fix

end process PROC_A;

WR_EN <= wr_en;

process_012

This rule checks for the existence of the is keyword on the same line as the closing parenthesis of the sensitivity list.

Violation

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 )
begin

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 )
is begin

Fix

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is
begin

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is
begin

process_013

This rule checks the is keyword has proper case.

Note

The default is lowercase.

Violation

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) IS
begin

Fix

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is
begin

process_014

This rule checks for a single space before the is keyword.

Violation

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 )     is
begin

Fix

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is
begin

process_015

This rule checks for a blank line or comment above the process declaration.

Violation

-- This process performs FIFO operations.
PROC_A : process (rd_en, wr_en, data_in, data_out,

WR_EN <= wr_en;
PROC_A : process (rd_en, wr_en, data_in, data_out,

Fix

-- This process performs FIFO operations.
PROC_A : process (rd_en, wr_en, data_in, data_out,

WR_EN <= wr_en;

PROC_A : process (rd_en, wr_en, data_in, data_out,

process_016

This rule checks the process has a label.

Violation

process (rd_en, wr_en, data_in, data_out,
         rd_full, wr_full
        ) is
begin

Fix

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is
begin

process_017

This rule checks the process label has proper case.

Note

The default is uppercase.

Violation

proc_a : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is
begin

Fix

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is
begin

process_018

This rule checks the end process line has a label. The closing label will be added if the opening process label exists.

Violation

end process;

Fix

end process PROC_A;

process_019

This rule checks the end process label is uppercase.

Violation

end process proc_a;

Fix

end process PROC_A;

process_020

This rule checks the indentation of multiline sensitivity lists.

Violation

PROC_A : process (rd_en, wr_en, data_in, data_out,
                     rd_full, wr_full,
            overflow, underflow
                 ) is begin

Fix

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full,
                  overflow, underflow
                 ) is
begin

process_021

This rule checks for blank lines between the end of the sensitivity list and before the begin keyword.

Violation

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is



begin

Fix

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is
begin

process_022

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

Violation

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is
begin
  rd_en <= '0';

Fix

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is
begin

  rd_en <= '0';

process_023

This rule checks for a blank line above the end process keyword.

Violation

  wr_en <= '1';
end process PROC_A;

Fix

  wr_en <= '1';

end process PROC_A;

process_024

This rule checks for a single space after the process label.

Violation

PROC_A: process (rd_en, wr_en, data_in, data_out,
                 rd_full, wr_full
                ) is
begin

Fix

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is
begin

process_025

This rule checks for a single space after the : and before the process keyword.

Violation

PROC_A :process (rd_en, wr_en, data_in, data_out,
                 rd_full, wr_full
                ) is begin

Fix

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is
begin

process_026

This rule checks for blank lines between the end of the sensitivity list and process declarative lines.

Violation

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is
  -- Keep track of the number of words in the FIFO
  variable word_count : integer;
begin

Fix

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is

  -- Keep track of the number of words in the FIFO
  variable word_count : integer;
begin

process_027

This rule checks for blank lines between process declarative lines and the begin keyword.

Violation

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is

  -- Keep track of the number of words in the FIFO
  variable word_count : integer;
begin

Fix

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 ) is

  -- Keep track of the number of words in the FIFO
  variable word_count : integer;

begin

process_028

This rule checks the alignment of the closing parenthesis of a sensitivity list. Parenthesis on multiple lines should be in the same column.

Violation

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                    )

Fix

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 )

process_029

This rule checks for rising_edge and falling_edge in processes.

Violation

if (rising_edge(CLK)) then

if (falling_edge(CLK)) then

Fix

if (CLK'event and CLK = '1') then

if (CLK'event and CLK = '0') then

process_030

This rule checks for a single signal per line in a sensitivity list that is not the last one. The sensitivity list is required by the compiler, but provides no useful information to the reader. Therefore, the vertical spacing of the sensitivity list should be minimized. This will help with code readability.

Note

This rule is left to the user to fix.

Violation

PROC_A : process (rd_en,
                  wr_en,
                  data_in,
                  data_out,
                  rd_full,
                  wr_full
                 )

Fix

PROC_A : process (rd_en, wr_en, data_in, data_out,
                  rd_full, wr_full
                 )

process_031

This rule checks for alignment of identifiers and colons of constant, variable, and file.

Violation

PROC_1 : process(A) is

 variable     var1 : boolean;
 constant  cons1 : integer;
 file            file1 : load_file_file open read_mode is load_file_name;

begin

end process PROC_1;

Fix

PROC_1 : process(A) is

 variable var1  : boolean;
 constant cons1 : integer;
 file     file1 : load_file_file open read_mode is load_file_name;

begin

end process PROC_1;

process_032

This rule checks the process label is on the same line as the process keyword.

Violation

PROC_1 :

process(A) is

Fix

PROC_1 : process(A) is