If Rules

if_001

phase_4 error indent

This rule checks the indent of the if keyword.

Violation

  if (a = '1') then
  b <= '0'
elsif (c = '1') then
  d <= '1';
else
  e <= '0';
end if;

Fix

if (a = '1') then
  b <= '0'
elsif (c = '1') then
  d <= '1';
else
  e <= '0';
end if;

if_002

phase_1 error structure

This rule checks the boolean expression is enclosed in ().

Note

There is a configuration option parenthesis which will either insert or remove the parenthesis.

parenthesis set to ‘insert’ (Default)

Violation

if a = '1' then

Fix

if (a = '1') then

parenthesis set to ‘remove’

Violation

if (a = '1') then

Fix

if a = '1' then

if_003

phase_2 error whitespace

This rule checks for a single space between the if keyword and the (.

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

Violation

if(a = '1') then

if   (a = '1') then

Fix

if (a = '1') then

if (a = '1') then

if_004

phase_2 error whitespace

This rule checks for a single space between the ) and the then keyword.

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

Violation

if (a = '1')then

if (a = '1')    then

Fix

if (a = '1') then

if (a = '1') then

if_005

phase_2 error whitespace

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

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

Violation

elsif(c = '1') then

elsif   (c = '1') then

elsif    b = '0' then

Fix

elsif (c = '1') then

elsif (c = '1') then

elsif b = '0' then

if_006

phase_3 error blank_line

This rule checks for blank lines after the then keyword.

Violation

if (a = '1') then


  b <= '0'

Fix

if (a = '1') then
  b <= '0'

if_007

phase_3 error blank_line

This rule checks for blank lines before the elsif keyword.

Violation

  b <= '0'



elsif (c = '1') then

Fix

  b <= '0'
elsif (c = '1') then

if_008

phase_3 error blank_line

This rule checks for blank lines before the end if keywords.

Violation

  e <= '0';


end if;

Fix

  e <= '0';
end if;

if_009

phase_4 error alignment

This rule checks the alignment of multiline boolean expressions.

Refer to Configuring Multiline Indent Rules for more information.

Violation

if (a = '0' and b = '1' and
      c = '0') then

Fix

if (a = '0' and b = '1' and
    c = '0') then

if_010

phase_3 error blank_line

This rule checks for blank lines before the else keyword.

Violation

  d <= '1';


else

Fix

  d <= '1';
else

if_011

phase_3 error blank_line

This rule checks for blank lines after the else keyword.

Violation

else


  e <= '0';

Fix

else
  e <= '0';

if_012

phase_4 error indent

This rule checks the indent of the elsif keyword.

Violation

if (a = '1') then
  b <= '0'
  elsif (c = '1') then
  d <= '1';
else
  e <= '0';
end if;

Fix

if (a = '1') then
  b <= '0'
elsif (c = '1') then
  d <= '1';
else
  e <= '0';
end if;

if_013

phase_4 error indent

This rule checks the indent of the else keyword.

Violation

if (a = '1') then
  b <= '0'
elsif (c = '1') then
  d <= '1';
  else
  e <= '0';
end if;

Fix

if (a = '1') then
  b <= '0'
elsif (c = '1') then
  d <= '1';
else
  e <= '0';
end if;

if_014

phase_4 error indent

This rule checks the indent of the end if keyword.

Violation

if (a = '1') then
  b <= '0'
elsif (c = '1') then
  d <= '1';
else
  e <= '0';
  end if;

Fix

if (a = '1') then
  b <= '0'
elsif (c = '1') then
  d <= '1';
else
  e <= '0';
end if;

if_015

phase_2 error whitespace

This rule checks for a single space between the end if keywords.

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

Violation

end    if;

Fix

end if;

if_020

phase_1 error structure

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

Violation

if (a = '1') then c <= '1'; else c <= '0'; end if;

Fix

if (a = '1') then c <= '1'; else c <= '0';
end if;

if_021

phase_1 error structure

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

Violation

if (a = '1') then c <= '1'; else c <= '0'; end if;

Fix

if (a = '1') then c <= '0';
else c <= '1'; end if;

if_022

phase_1 error structure

This rule checks for code after the else keyword.

Violation

if (a = '1') then c <= '1'; else c <= '0'; end if;

Fix

if (a = '1') then c <= '1'; else
  c <= '0'; end if;

if_023

phase_1 error structure

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

Violation

if (a = '1') then c <= '1'; else c <= '0'; elsif (b = '0') then d <= '0'; end if;

Fix

if (a = '1') then c <= '1'; else c <= '0';
elsif (b = '0') then d <= '0'; end if;

if_024

phase_1 error structure

This rule checks for code after the then keyword.

Violation

if (a = '1') then c <= '1';

Fix

if (a = '1') then
  c <= '1';

if_025

phase_6 error case case_keyword

This rule checks the if keyword has proper case.

Refer to Configuring Uppercase and Lowercase Rules for more information.

Violation

IF (a = '1') then

Fix

if (a = '1') then

if_026

phase_6 error case case_keyword

This rule checks the elsif keyword has proper case.

Refer to Configuring Uppercase and Lowercase Rules for more information.

Violation

ELSIF (a = '1') then

Fix

elsif (a = '1') then

if_027

phase_6 error case case_keyword

This rule checks the else keyword has proper case.

Refer to Configuring Uppercase and Lowercase Rules for more information.

Violation

ELSE

Fix

else

if_028

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

End if;

Fix

end if;

end if;

if_029

phase_6 error case case_keyword

This rule checks the then keyword has proper case.

Refer to Configuring Uppercase and Lowercase Rules for more information.

Violation

if (a = '1') THEN

Fix

if (a = '1') then

if_030

phase_3 error blank_line

This rule checks a single blank line after the end if. In the case of nested if statements, the rule will be enforced on the last end if.

Refer to Configuring Blank Lines for more information.

Violation

if (A = '1') then
  B <= '0';
end if;
C <= '1';

Fix

if (A = '1') then
  B <= '0';
end if;

C <= '1';

if_031

phase_3 error blank_line

This rule checks for blank lines or comments above the if keyword. In the case of nested if statements, the rule will be enforced on the first if.

Refer to Configuring Previous Line Rules for more information.

The default style is no_code.

Violation

C <= '1';
if (A = '1') then
  B <= '0';
end if;

-- This is a comment
if (A = '1') then
  B <= '0';
end if;

Fix

C <= '1';

if (A = '1') then
  B <= '0';
end if;

-- This is a comment
if (A = '1') then
  B <= '0';
end if;

if_032

The function of this rule has been superseded with comment indent updates and is handled by rule comment_010.

if_033

The function of this rule has been superseded with comment indent updates and is handled by rule comment_010.

if_034

phase_6 error case case_keyword

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

Refer to Configuring Uppercase and Lowercase Rules for more information.

Violation

end If;

end IF;

Fix

end if;

end if;

if_035

phase_1 error structure

This rule checks the expression after the if or elsif keyword starts on the same line.

Violation

if
  a = '1' then

elsif
  b = '1' then

Fix

if a = '1' then

elsif b = '1' then

if_036

phase_1 error structure

This rule checks the then keyword is not on a line by itself.

Violation

if a = '1'
  then

Fix

if a = '1' then