Architecture Rules

architecture_001

This rule checks for blank spaces before the architecture keyword.

Violation

  architecture RTL of FIFO is
begin

Fix

architecture RTL of FIFO is
begin

architecture_002

This rule checks for a single space between architecture, of, and is keywords.

Violation

architecture  RTL  of    FIFO   is

Fix

architecture RTL of FIFO is

architecture_003

This rule check for a blank line above the architecture declaration.

Violation

library ieee;
architecture RTL of FIFO is

Fix

library ieee;

architecture RTL of FIFO is

architecture_004

This rule checks the proper case of the architecture keyword in the architecture declaration.

Note

The default is lowercase.

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

Violation

ARCHITECTURE RTL of FIFO is
architecture RTL of FIFO is

architecture_005

This rule checks the of keyword is on the same line as the architecture keyword.

Violation

architecture RTL
  of FIFO is

Fix

architecture RTL of FIFO is

architecture_006

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

Violation

architecture RTL of FIFO
  is

architecture RTL of FIFO

Fix

architecture RTL of FIFO is

architecture RTL of FIFO is

architecture_007

This rule checks for spaces before the begin keyword.

Violation

architecture RTL of FIFO is
  begin

Fix

architecture RTL of FIFO is
begin

architecture_008

This rule checks for spaces before the end architecture keywords.

Violation

architecture RTL of FIFO is
begin
  end architecture

Fix

architecture RTL of FIFO is
begin
end architecture

architecture_009

This rule checks the end and architecture keywords are lower case.

Violation

END architecture;

end Architecture;

Fix

end architecture;

end architecture;

architecture_010

This rule checks for the keyword architecture in the end architecture statement. It is clearer to the reader to state what is ending.

Violation

end ARCHITECTURE_NAME;

Fix

end architecture ARCHITECTURE_NAME;

architecture_011

This rule checks the architecture name case in the end architecture statement.

Note

The default is uppercase.

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

Violation

end architecture architecture_name;

Fix

end architecture ARCHITECTURE_NAME;

architecture_012

This rule checks for a single space between end and architecture keywords.

Violation

end    architecture ARCHITECTURE_NAME;

Fix

end architecture ARCHITECTURE_NAME;

architecture_013

This rule checks the case of the architecture name in the architecture declaration.

Note

The default is uppercase.

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

Violation

architecture rtl of FIFO is

Fix

architecture RTL of FIFO is

architecture_014

This rule checks the case of the entity name in the architecture declaration.

Note

The default is uppercase.

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

Violation

architecture RTL of fifo is

Fix

architecture RTL of FIFO is

architecture_015

This rule check for a blank line below the architecture declaration.

Violation

architecture RTL of FIFO is
  signal wr_en : std_logic;
begin

Fix

architecture RTL of FIFO is

  signal wr_en : std_logic;
begin

architecture_016

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

Violation

architecture RTL of FIFO is

  signal wr_en : std_logic;
begin

Fix

architecture RTL of FIFO is

  signal wr_en : std_logic;

begin

architecture_017

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

Violation

begin
  wr_en <= '0';

Fix

begin

  wr_en <= '0';

architecture_018

This rule checks for a blank line above the end architecture declaration.

Violation

  rd_en <= '1';
end architecture RTL;

Fix

  rd_en <= '1';

end architecture RTL;

architecture_019

This rule checks the proper case of the of keyword in the architecture declaration.

Note

The default is lowercase.

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

Violation

architecture RTL OF FIFO is

Fix

architecture RTL of FIFO is

architecture_020

This rule checks the proper case of the is keyword in the architecture declaration.

Note

The default is lowercase.

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

Violation

architecture RTL of FIFO IS

Fix

architecture RTL of FIFO is

architecture_021

This rule checks the proper case of the begin keyword.

Note

The default is lowercase.

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

Violation

architecture RTL of FIFO is
BEGIN

Fix

architecture RTL of FIFO is
begin

architecture_022

This rule checks for a single space before the entity name in the end architecture declaration.

Violation

end architecture    FIFO;

Fix

end architecture FIFO;

architecture_023

This rule ensures the inline comments are aligned between the architecture declaration and the begin keyword.

Violation

architecture RTL of FIFO is

  signal wr_en : std_logic;   -- Enables writes to FIFO
  signal rd_en : std_logic;  -- Enables reads from FIFO
  signal overflow : std_logic;    -- Indicates the FIFO has overflowed when asserted

begin

Fix

architecture RTL of FIFO is

  signal wr_en : std_logic;       -- Enables writes to FIFO
  signal rd_en : std_logic;       -- Enables reads from FIFO
  signal overflow : std_logic;    -- Indicates the FIFO has overflowed when asserted

begin

architecture_024

This rule checks for the architecture name in the end architecture statement. It is clearer to the reader to state which architecture the end statement is closing.

Violation

end architecture;

Fix

end architecture ARCHITECTURE_NAME;

architecture_025

This rule checks for valid names for the architecture. Typical architecture names are: RTL, EMPTY, and BEHAVE. This rule allows the user to restrict what can be used for an architecture name.

Note

This rule is disabled by default. You can enable and configure the names using the following configuration.

---

rule :
  architecture_025 :
    disabled : False
    names :
      - rtl
      - empty
      - behave

Violation

architecture SOME_INVALID_ARCH_NAME of ENTITY1 is

Fix

The user is required to decide which is the correct architecture name.