Generic Map Rules

generic_map_001

phase_6 error case case_keyword

This rule checks the generic map keywords have proper case.

Refer to Configuring Uppercase and Lowercase Rules for more information.

Violation

GENERIC MAP (

Fix

generic map (

generic_map_002

phase_6 error case case_name

This rule checks generic names have proper case.

Refer to Configuring Uppercase and Lowercase Rules for more information.

Violation

generic map (
  DEPTH => 512,
  WIDTH => 32
)

Fix

generic map (
  depth => 512,
  width => 32
)

generic_map_003

phase_1 error structure

This rule checks the ( is on the same line as the generic map keywords.

Violation

generic map
(
  WIDTH => 32,
  DEPTH => 512
)

Fix

Use explicit port mapping.

generic map (
  WIDTH => 32,
  DEPTH => 512
)

generic_map_004

phase_1 error structure

This rule checks the location of the closing “)” character for the generic map.

The default location is on a line by itself.

Refer to Configuring Move Token Rules for more information.

Violation

generic map (
  GENERIC_1 => 0,
  GENERIC_2 => TRUE,
  GENERIC_3 => FALSE)

Fix

generic map (
  GENERIC_1 => 0,
  GENERIC_2 => TRUE,
  GENERIC_3 => FALSE
)

generic_map_005

phase_1 error structure

This rule checks if the generic map keywords and a generic assignment are on the same line.

Violation

generic map (DEPTH => 512,
  WIDTH => 32
)

Fix

generic map (
  DEPTH => 512,
  WIDTH => 32
)

generic_map_006

phase_2 error whitespace

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

Violation

generic map(

generic map   (

Fix

generic map (

generic map (

generic_map_007

phase_2 error whitespace

This rule checks for a single space after the => keyword in generic maps.

Violation

generic map
(
  WIDTH =>    32,
  DEPTH => 512
)

Fix

generic map
(
  WIDTH => 32,
  DEPTH => 512
)

generic_map_008

phase_1 error structure

This rule checks for positional generics. Positional ports and generics are subject to problems when the position of the underlying component changes.

Violation

port map (
  WR_EN, RD_EN, OVERFLOW
);

Fix

Use explicit port mapping.

port map (
  WR_EN    => WR_EN,
  RD_EN    => RD_EN,
  OVERFLOW => OVERFLOW
);