.. _Semantic Checks:

Semantic Checks
===============

.. list-table::

   * - **ID**
     - **Message**
   * - **Architectures**
     -
   * - UNDECLARED_ARCHITECTURE
     - Architecture # is not declared
   * - DUPLICATE_ARCHITECTURE
     - Duplicate architecture #, already declared at line # in #
   * - SIGNAL_MULTIPLE_DRIVERS
     - Signal # has multiple drivers
   * - SIGNAL_NEVER_USED
     - Signal # is never used
   * - SIGNAL_NEVER_READ
     - Signal # is never read
   * - SIGNAL_NEVER_READ
     - Signal # is never read (connected to sub-instance output port)
   * - SIGNAL_NEVER_WRITTEN
     - Signal # is never written
   * - SIGNAL_NEVER_WRITTEN
     - Signal # is never written (connected to sub-instance input port)
   * - GENERIC_NEVER_USED
     - Generic # is never used
   * - PORT_CONNECTION
     - Output port # connected to an input port
   * - PORT_CONNECTION
     - Duplicate architecture #, already declared at line # in #
   * - PORT_CONNECTION
     - Inout/Output port # connected to a non-signal expression
   * - **Associated types (fields, variables, functions, etc.)**
     -
   * - NON_EXISTING_TYPE
     - Non existing type #
   * - USAGE_BEFORE_DECLARATION
     - Element # is used before being declared at line # in #
   * - **Blocks**
     -
   * - DUPLICATE_NAMED_BLOCK
     - Duplicate named block #, already declared at line # in #
   * - **Case enumerated choices**
     -
   * - DUPLICATE_WHEN_CHOICE
     - Duplicate case enumerated choice # already declared, already declared at line # in #
   * - MISSING_ENUM_CHOICE
     - Case enumerated choice # is not defined
   * - MISSING_OTHERS_CHOICE
     - Case choice 'others' is not defined
   * - OTHERS_CHOICE_USED
     - Case choice 'others' used for non-explicit enumerated choices # ...
   * - REDUNDANT_OTHERS_CHOICE
     - Case choice 'others' is redundant
   * - INCONSISTENT_CHOICES
     - Case choices inconsistent number of bits
   * - **Components**
     -
   * - UNDECLARED_COMPONENT
     - Component # is not declared
   * - DUPLICATE_COMPONENT
     - Duplicate component #, already declared at line # in #
   * - **Configurations**
     -
   * - UNDECLARED_CONFIGURATION
     - Configuration # is not declared
   * - DUPLICATE_CONFIGURATION
     - Duplicate configuration #, already declared at line # in #
   * - DIFFERENT_BLOCK_SPECIFICATION
     - Block specification # is different from binding block # of entity #
   * - MISSING_BLOCK_ALTERNATIVE
     - Conditional block specification # must specify an alternative
   * - **Design Elaboration**
     -
   * - UNELABORATED_PACKAGE
     - Package #.# is not elaborated
   * - UNELABORATED_ENTITY
     - Entity #.# is not elaborated
   * - UNSPECIFIED_TOP
     - Please specify a -top module/entity/configuration in the project build file
   * - INVALID_TOP
     - Top # cannot be instantiated
   * - CYCLICAL_ORDER
     - Cycle discovered when elaborating parameters
   * - INVALID_TOP_CONFIGURATION
     - Configuration # has no valid tops
   * - DUPLICATE_TOP_NAME
     - Another top with the same name # has been elaborated
   * - INVALID_LIBLIST
     - Liblist is empty for #
   * - UNRESTRICTED_LOOP_GENERATE
     - Loop generate # does not end
   * - UNINITIALIZED_LOOP_GENERATE
     - Cannot initialize loop generate #
   * - UNRESOLVED_LOOP_GENERATE_CONDITION
     - Cannot resolve loop generate # condition
   * - UNRESOLVED_LOOP_GENERATE_STEP
     - Cannot resolve loop generate # step assignment
   * - MAX_COUNT_LOOP_GENERATE
     - Max count # exceeded for loop generate #
   * - UNRESOLVED_GENERATE_CONDITION
     - Cannot resolve generate # condition #
   * - MISSING_GENERATE_CONDITION
     - No condition found for generate #
   * - BLACK_BOXED_INSTANCE
     - Instance # is black boxed
   * - BLACK_BOXED_GENERATE_BLOCK
     - Generate block # is black boxed
   * - SKIPPED_INSTANCE
     - Instance # is skipped
   * - SKIPPED_GENERATE_BLOCK
     - Generate block # is skipped
   * - **Entities**
     -
   * - UNDECLARED_ENTITY
     - Entity # is not declared
   * - DUPLICATE_ENTITY
     - Duplicate entity #, already declared at line # in #
   * - **Hierarchical identifiers**
     -
   * - UNDECLARED_IDENTIFIER
     - Identifier # is not declared
   * - UNDECLARED_IDENTIFIER
     - Identifier # is not a member of #
   * - UNEXPECTED_IDENTIFIER
     - Expecting function # but actual target is not a function
   * - UNDECLARED_ENUM
     - Enum type value # is undeclared
   * - **Instances**
     -
   * - DUPLICATE_INSTANCE
     - Duplicate instance #, already declared at line # in #
   * - NOF_PORT_CONNECTIONS
     - Expected # port connections, found #
   * - MISSING_PORT_CONNECTION
     - Missing port connection to # port(s) #
   * - MULTIPLE_PORT_CONNECTIONS
     - Multiple connections to port #
   * - NOT_IN_LIST_OF_PORTS
     - # not in the list of # ports
   * - UNDRIVEN_INPUT_PORT
     - Input port # is not driven
   * - INVALID_IMPLICIT_PORT_MAP
     - Input/Output component port #.# associated with input/output/inout entity port #.#
   * - INVALID_IMPLICIT_PORT_MAP
     - Type mismatch between # of component port #.# and # of entity port #.#
   * - INVALID_IMPLICIT_PORT_MAP
     - Entity/Component port #.# not in the list of component/entity # ports
   * - INVALID_IMPLICIT_GENERIC_MAP
     - Type mismatch between # of component generic #.# and # of entity generic #.#
   * - INVALID_IMPLICIT_GENERIC_MAP
     - Entity/Component generic #.# not in the list of component/entity # generics
   * - OPEN_PARAMETER_OVERRIDE
     - Expected default value for parameter #
   * - **Package, library use**
     -
   * - UNDECLARED_LIBRARY
     - Library # is not declared
   * - IMPLICIT_LIBRARY_ACCESS
     - Access to # library is implicit; the library clause can be removed
   * - UNDECLARED_PACKAGE
     - Package # is not declared
   * - NON_STANDARD_PACKAGE
     - Package # is deprecated, use IEEE.NUMERIC_STD package standard package
   * - NON_STANDARD_PACKAGE
     - NON_STANDARD_PACKAGE: Package # is non-standard
   * - **Parameters**
     -
   * - OPEN_PARAMETER_OVERRIDE
     - Expected default value for parameter #
   * - UNRESOLVED_FORMAL_PARAMETER
     - Cannot determine formal parameter # of #
   * - NON_EXISTING_PARAMETER
     - Non existing parameter # of type #
   * - UNRESOLVED_PARAMETER_VALUE
     - Cannot determine # value of parameter # from expression: #
   * - UNRESOLVED_ENUM_NAME_VALUE
     - Cannot determine value of enum name # from expression: #
   * - UNRESOLVED_CONSTANT_VALUE
     - Cannot determine value of constant # from expression: #
   * - UNCONNECTED_PARAMETER
     - Parameter # of entity/component # is not connected
   * - **Packages**
     -
   * - DUPLICATE_PACKAGE
     - Duplicate package #, already declared at line # in #
   * - DUPLICATE_PACKAGE_BODY
     - Duplicate package body #, already declared at line # in #
   * - MISSING_PACKAGE_BODY_DEFINITION
     - Deferred constant # is not initialized in package body #
   * - MISSING_PACKAGE_BODY_DEFINITION
     - Protected type # is not implemented in package body #
   * - MISSING_PACKAGE_BODY_DEFINITION
     - Subprogram # is not implemented in package body #
   * - MISSING_INSTANTIATED_PACKAGE_BODY
     - Instantiated package # does not have a body
   * - **Processes**
     -
   * - DUPLICATE_PROCESS
     - Duplicate process #, already declared at line # in #
   * - SENSITIVITY_MISSING
     - Missing # from sensitivity list
   * - SENSITIVITY_UNUSED
     - The process is not sensitive to #
   * - **Type aliases**
     -
   * - UNDECLARED_TYPE
     - Type # is not declared
   * - **Type Checking**
     -
   * - AMBIGUOUS_SUBPROGRAM
     - Subprogram call # is ambiguous; there are # visible: #
   * - AMBIGUOUS_EXPRESSION
     - Expression # is ambiguous; there are # visible: #
   * - ARRAY_INDEX_SELECT
     - Select # contains too few indices (#) for array type #
   * - ARRAY_INDEX_SELECT
     - Select # contains too many indices (#) for array type # of dimensionality #
   * - ILLEGAL_ASSIGNMENT
     - # cannot be assigned to #
   * - ILLEGAL SIGNAL ASSIGNMENT
     - Target # is not a signal
   * - ILLEGAL SIGNAL ASSIGNMENT
     - Cannot use signal # as left hand side in variable assignment
   * - ILLEGAL_CONSTANT_ASSIGN
     - Constant variable # cannot be assigned
   * - ILLEGAL_CONSTRAINT
     - Index constraint not allowed, type # in subtype of '# is already constrained
   * - ILLEGAL_CONSTRAINT
     - Index constraint not allowed, type # of record element # in subtype of # is already constrained
   * - ILLEGAL_CONSTRAINT
     - Cannot apply index constraint to non-composite type # of *record element / array* # in subtype of #
   * - ILLEGAL_CONSTRAINT
     - Cannot apply index constraint to non-composite type # in subtype of #
   * - ILLEGAL_TYPE_REFERENCE
     - # cannot be resolved to a variable
   * - INVALID_ACCESS
     - Type name # cannot be prefix of selected name #
   * - INVALID_AGGREGATE
     - Record aggregate choice # is not a simple name
   * - INVALID_AGGREGATE
     - Record aggregate choice # is not an element of record type #
   * - INVALID_AGGREGATE
     - Record elements of different types were used in multiple choice #
   * - INVALID_AGGREGATE
     - Others choice in # record aggregate must represent at least one element
   * - INVALID_AGGREGATE
     - Record aggregate is missing an association for element #
   * - INVALID_ATTRIBUTE
     - Attribute # is not defined for prefix
   * - INVALID_CASE_EXPRESSION
     - The case expression # must be a discrete type or a one-dimensional character array type
   * - INVALID_RANGE
     - Range left bound type # is different from right bound type #
   * - INVALID_LITERAL
     - String literal has a character # not in the enumeration type #
   * - INVALID_TYPE_CONVERSION
     - The type conversion operand # cannot be *a literal null / an allocator / a string literal*
   * - INVALID_TYPE_CONVERSION
     - The conversion target type # and operand type # are not closely related
   * - INCOMPLETE_ARRAY_AGGREGATE
     - Expected number of elements for # is #, actual number is #
   * - DUPLICATE_ARRAY_ASSOCIATION
     - Index # of # is associated more than once
   * - INCOMPLETE_RECORD_AGGREGATE
     - Formal # of type # is missing an association for element #
   * - OUT_OF_BOUNDS_VALUE_IN_AGGREGATE
     - Value out of range: # is not in the range #
   * - DUPLICATE_RECORD_ASSOCIATION
     - Formal # is associated more than once
   * - DISCONTINUOUS_ASSOCIATION
     - Formal # member associations must be consecutive
   * - MISSING_CONSTRAINT
     - *Record / Array* type # in subtype of # is missing an *index / element* constraint
   * - SUBTYPE_INDICATION
     - Subtype indication is allowed only for object aliases (i.e. a constant, a variable, a signal, or a file)
   * - TYPE_MISMATCH
     - Type error resolving expression # to type #
   * - UNDECLARED_ARGUMENT
     - # is not an argument
   * - UNDEFINED_PROCEDURE
     - Unable to find a procedure named #
   * - UNDEFINED_SUBPROGRAM
     - Subprogram call # is undefined
   * - UNDEFINED_SUBPROGRAM
     - Subprogram call # is undefined for expected return type #
   * - UNDEFINED_SUBPROGRAM
     - Subprogram # referred in alias/subprogram instantiation # is undefined
   * - UNDEFINED_SUBPROGRAM
     - Subprogram # referred in subprogram instantiation # is not an uninstantiated subprogram
   * - ILLEGAL_EMPTY_RETURN
     - Empty return not allowed in function, expecting #
   * - ILLEGAL_VALUE_RETURN
     - Value return not allowed in procedure
   * - ILLEGAL_RETURN
     - Return not allowed in process
   * - ILLEGAL_SUBPROGRAM_ALIAS
     - Alias # must specify the subprogram signature
   * - SUBPROGRAM_KIND_MISMATCH
     - Expecting uninstantiated function/procedure, found procedure/function instead
   * - UNEXPECTED_LOOP_LABEL
     - Expecting loop label # but actual target is not a loop
   * - **Types**
     -
   * - DUPLICATE_TYPE
     - Duplicate type #, already declared at line # in #
   * - MISSING_PROTECTED_TYPE_DECLARATION
     - Protected type body # does not have corresponding type declaration
   * - ILLEGAL_PROTECTED_TYPE_BODY_DECLARATION
     - Protected type body # not allowed inside package
   * - MISSING_SUBPROGRAM_BODY
     - Subprogram # is not implemented in protected type body #
   * - **Variables, Arguments, Attributes, Constants**
     -
   * - DUPLICATE_VARIABLE
     - Duplicate variable #, already declared at line # in #
   * - DUPLICATE_PORT
     - Duplicate port #, already declared at line # in #
   * - **Vunits**
     -
   * - DUPLICATE_VUNIT
     - Duplicate vunit #, already declared at line # in #

