Skip to content

Latest commit

 

History

History
1017 lines (647 loc) · 15.8 KB

port_rules.rst

File metadata and controls

1017 lines (647 loc) · 15.8 KB

Port Rules

port_001

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

Violation

entity FIFO is

  port (

Fix

entity FIFO is
  port (

port_002

This rule checks the indent of the port keyword.

Violation

entity FIFO is
port (

Fix

entity FIFO is
  port (

port_003

This rule checks for a single space after the port keyword and (.

Violation

port   (

port(

Fix

port (

port (

port_004

This rule checks the indent of port declarations.

Violation

port (
WR_EN    : in    std_logic;
     RD_EN    : in    std_logic;
  OVERFLOW : out   std_logic
);

Fix

port (
  WR_EN    : in    std_logic;
  RD_EN    : in    std_logic;
  OVERFLOW : out   std_logic
);

port_005

This rule has been deprecated and it's function has been included in rules port_007, port_008 and port_009.

port_006

This rule has been deprecated and it's function was include in rule port_005.

port_007

This rule checks for spaces before and after the in mode keyword.

Violation

port (
  WR_EN    : in std_logic;
  RD_EN    : in        std_logic;
  OVERFLOW : out   std_logic
);

Fix

port (
  WR_EN    : in    std_logic;
  RD_EN    : in    std_logic;
  OVERFLOW : out   std_logic
);

port_008

This rule checks for spaces before and after the out mode keyword.

Violation

port (
  WR_EN    : in    std_logic;
  RD_EN    : in    std_logic;
  OVERFLOW : out   std_logic
);

Fix

port (
  WR_EN    : in    std_logic;
  RD_EN    : in    std_logic;
  OVERFLOW : out std_logic
);

port_009

This rule checks for spaces before and after the inout mode keyword.

Violation

port (
  WR_EN    : in    std_logic;
  RD_EN    : in    std_logic;
  DATA     : inout    std_logic
);

Fix

port (
  WR_EN    : in    std_logic;
  RD_EN    : in    std_logic;
  DATA     : inout std_logic
);

port_010

This rule checks the port names have proper case.

Violation

port (
  wr_en     : in    std_logic;
  rd_en     : in    std_logic;
  OVERFLOW  : out   std_logic;
  underflow : out   std_logic
);

Fix

port (
  wr_en     : in    std_logic;
  rd_en     : in    std_logic;
  overflow  : out   std_logic;
  underflow : out   std_logic
);

port_011

This rule checks for valid prefixes on port identifiers. The default port prefixes are: i_, o_, io_.

Violation

port (
  wr_en    : in    std_logic;
  rd_en    : in    std_logic;
  overflow : out   std_logic;
  data     : inout std_logic
);

Fix

port (
  i_wr_en    : in    std_logic;
  i_rd_en    : in    std_logic;
  o_overflow : out   std_logic;
  io_data    : inout std_logic
);

port_012

This rule checks for default assignments on port declarations.

This rule is defaulted to not fixable and can be overridden with a configuration to remove the default assignments.

Violation

port (
  I_WR_EN    : in    std_logic := '0';
  I_RD_EN    : in    std_logic := '0';
  O_OVERFLOW : out   std_logic;
  IO_DATA    : inout std_logic := (others => 'Z')
);

Fix

port (
  I_WR_EN    : in    std_logic;
  I_RD_EN    : in    std_logic;
  O_OVERFLOW : out   std_logic;
  IO_DATA    : inout std_logic
);

port_013

This rule checks for multiple ports declared on a single line.

Violation

port (
  WR_EN    : in    std_logic;RD_EN    : in    std_logic;
  OVERFLOW : out   std_logic;DATA     : inout std_logic
);

Fix

port (
  WR_EN    : in    std_logic;
  RD_EN    : in    std_logic;
  OVERFLOW : out   std_logic;
  DATA     : inout std_logic
);

port_014

This rule checks the location of the closing ")" character for the port clause.

The default location is on a line by itself.

Violation

port (
  WR_EN    : in    std_logic;
  RD_EN    : in    std_logic;
  OVERFLOW : out   std_logic;
  DATA     : inout std_logic);

Fix

port (
  WR_EN    : in    std_logic;
  RD_EN    : in    std_logic;
  OVERFLOW : out   std_logic;
  DATA     : inout std_logic
);

port_015

This rule checks the indent of the closing parenthesis for port maps.

Violation

port (
  WR_EN    : in    std_logic;
  RD_EN    : in    std_logic;
  OVERFLOW : out   std_logic;
  DATA     : inout std_logic
  );

Fix

port (
  WR_EN    : in    std_logic;
  RD_EN    : in    std_logic;
  OVERFLOW : out   std_logic;
  DATA     : inout std_logic
);

port_016

This rule checks for a port definition on the same line as the port keyword.

Violation

port (WR_EN    : in    std_logic;
  RD_EN    : in    std_logic;
  OVERFLOW : out   std_logic;
  DATA     : inout std_logic
);

Fix

port (
  WR_EN    : in    std_logic;
  RD_EN    : in    std_logic;
  OVERFLOW : out   std_logic;
  DATA     : inout std_logic
);

port_017

This rule checks the port keyword has proper case.

Violation

PORT (

Fix

port (

port_018

This rule checks the port type has proper case if it is a VHDL keyword.

Violation

port (
  WR_EN    : in    STD_LOGIC;
  RD_EN    : in    std_logic;
  OVERFLOW : out   t_OVERFLOW;
  DATA     : inout STD_LOGIC_VECTOR(31 downto 0)
);

Fix

port (
  WR_EN    : in    std_logic;
  RD_EN    : in    std_logic;
  OVERFLOW : out   t_OVERFLOW;
  DATA     : inout std_logic_vector(31 downto 0)
);

port_019

This rule checks the port direction has proper case.

Violation

port (
  WR_EN    : IN    std_logic;
  RD_EN    : in    std_logic;
  OVERFLOW : OUT   std_logic;
  DATA     : INOUT std_logic
);

Fix

port (
  WR_EN    : in    std_logic;
  RD_EN    : in    std_logic;
  OVERFLOW : out   std_logic;
  DATA     : inout std_logic
);

port_020

This rule checks for at least one space before the colon.

Violation

port (
  WR_EN    : in    std_logic;
  RD_EN    : in    std_logic;
  OVERFLOW: out   std_logic;
  DATA     : inout std_logic
);

Fix

port (
  WR_EN    : in    std_logic;
  RD_EN    : in    std_logic;
  OVERFLOW : out   std_logic;
  DATA     : inout std_logic
);

port_021

This rule checks the port keyword is on the same line as the (.

Violation

port
(

Fix

port (

port_022

This rule checks for blank lines after the port keyword.

Violation

port (


  WR_EN    : in    std_logic;
  RD_EN    : in    std_logic;
  OVERFLOW: out   std_logic;
  DATA     : inout std_logic
);

Fix

port (
  WR_EN    : in    std_logic;
  RD_EN    : in    std_logic;
  OVERFLOW : out   std_logic;
  DATA     : inout std_logic
);

port_023

This rule checks for missing modes in port declarations.

Note

This must be fixed by the user. VSG makes no assumption on the direction of the port.

Violation

port (
  WR_EN    : std_logic;
  RD_EN    : std_logic;
  OVERFLOW : std_logic;
  DATA     : inout std_logic
);

Fix

port (
  WR_EN    : in    std_logic;
  RD_EN    : in    std_logic;
  OVERFLOW : out   std_logic;
  DATA     : inout std_logic
);

port_024

This rule checks for blank lines before the close parenthesis in port declarations.

Violation

port (
  WR_EN    : std_logic;
  RD_EN    : std_logic;
  OVERFLOW : std_logic;
  DATA     : inout std_logic


);

Fix

port (
  WR_EN    : in    std_logic;
  RD_EN    : in    std_logic;
  OVERFLOW : out   std_logic;
  DATA     : inout std_logic
);

port_025

This rule checks for valid suffixes on port identifiers. The default port suffixes are _i, _o, _io.

Violation

port (
  wr_en    : in    std_logic;
  rd_en    : in    std_logic;
  overflow : out   std_logic;
  data     : inout std_logic
);

Fix

port (
  wr_en_i    : in    std_logic;
  rd_en_i    : in    std_logic;
  overflow_o : out   std_logic;
  data_io    : inout std_logic
);

port_026

This rule checks for multiple identifiers on port declarations.

Any comments are not replicated.

Violation

port (
  wr_en, rd_en : in    std_logic;  -- Comment
  data     : inout std_logic;
  overflow, empty : out   std_logic -- Other comment
);

Fix

port (
  wr_en    : in    std_logic;
  rd_en    : in    std_logic;  -- Comment
  data    : inout std_logic
  overflow : out   std_logic;
  empty : out   std_logic -- Other comment
);

port_027

This rule checks the semicolon is not on it's own line.

Violation

U_FIFO : FIFO
  port (
    I_WIDTH : in integer
  )
  ;

Fix

U_FIFO : FIFO
  generic (
    I_WIDTH : in integer
  );

port_600

This rule checks for valid prefixes on port identifiers for input ports.

The default prefix is: i_.

Violation

port (
  wr_en    : in    std_logic;
  rd_en    : in    std_logic
);

Fix

port (
  i_wr_en    : in    std_logic;
  i_rd_en    : in    std_logic
);

port_601

This rule checks for valid prefixes on port identifiers for output ports.

The default prefix is: o_.

Violation

port (
  wr_en    : out    std_logic;
  rd_en    : out    std_logic
);

Fix

port (
  o_wr_en    : out    std_logic;
  o_rd_en    : out    std_logic
);

port_602

This rule checks for valid prefixes on port identifiers for inout ports.

The default prefix is: io_.

Violation

port (
  wr_en    : inout    std_logic;
  rd_en    : inout    std_logic
);

Fix

port (
  io_wr_en    : inout    std_logic;
  io_rd_en    : inout    std_logic
);

port_603

This rule checks for valid prefixes on port identifiers for buffer ports.

The default prefix is: b_.

Violation

port (
  wr_en    : buffer    std_logic;
  rd_en    : buffer    std_logic
);

Fix

port (
  b_wr_en    : buffer    std_logic;
  b_rd_en    : buffer    std_logic
);

port_604

This rule checks for valid prefixes on port identifiers for linkage ports.

The default prefix is: l_.

Violation

port (
  wr_en    : linkage    std_logic;
  rd_en    : linkage    std_logic
);

Fix

port (
  l_wr_en    : linkage    std_logic;
  l_rd_en    : linkage    std_logic
);

port_605

This rule checks for valid suffixes on port identifiers for input ports.

The default suffix is: _i.

Violation

port (
  wr_en    : in    std_logic;
  rd_en    : in    std_logic
);

Fix

port (
  wr_en_i    : in    std_logic;
  rd_en_i    : in    std_logic
);

port_606

This rule checks for valid suffixes on port identifiers for output ports.

The default suffix is: _o.

Violation

port (
  wr_en    : out    std_logic;
  rd_en    : out    std_logic
);

Fix

port (
  wr_en_o    : out    std_logic;
  rd_en_o    : out    std_logic
);

port_607

This rule checks for valid suffixes on port identifiers for inout ports.

The default suffix is: _io.

Violation

port (
  wr_en    : inout    std_logic;
  rd_en    : inout    std_logic
);

Fix

port (
  wr_en_io    : inout    std_logic;
  rd_en_io    : inout    std_logic
);

port_608

This rule checks for valid suffixes on port identifiers for buffer ports.

The default suffix is: _b.

Violation

port (
  wr_en    : buffer    std_logic;
  rd_en    : buffer    std_logic
);

Fix

port (
  wr_en_b    : buffer    std_logic;
  rd_en_b    : buffer    std_logic
);

port_609

This rule checks for valid suffixes on port identifiers for linkage ports.

The default suffix is: _l.

Violation

port (
  wr_en    : linkage    std_logic;
  rd_en    : linkage    std_logic
);

Fix

port (
  wr_en_l    : linkage    std_logic;
  rd_en_l    : linkage    std_logic
);