Generic

LRM §1.1.1.1.

A channel for static information to be communicated to a block from its environment.

Syntax:

generic ( generic_name, ... : data_type [ := expression ] );

Description:

A generic is used to parameterize a design entity. They support static information to blocks in a similar way as constants, but unlike constants the values of generics can be supplied externally. Different instances of the same design entity can have different values for the generic parameters. Generics are given values in the generic map of an instance.

Values supported by generics declared in an entity can be read either in the entity or in the associated architectures.

The generics of an entity must be duplicated in the corresponding component, to allow instances of the component to be configured implicitly via the default rules.

Example:

generic (BusWidth: integer := 16;
         Length, Size: positive);

Notes:

See also:

Component, Entity, Generic map, Port