Object Declarations

Constants

VHDL defines regular constants as an object. In addition, deferred constants are supported in package declarations. Often generics to e.g. packages or entities are constants. Also most in parameters to subprograms are constants.

Constant

A constant represents immutable data. This data (value) must be assigned via a default expression. If a constant’s value is delayed in calculation, it’s called a deferred constant. See Deferred Constant in next section.

Condensed definition of class Constant:

@export
class Constant(BaseConstant):
  # inherited from ModelEntity
  @property
  def Parent(self) -> ModelEntity:

  # inherited from NamedEntity
  @property
  def Name(self) -> str:

  # inherited from Object
  @property
  def Subtype(self) -> Subtype:

  @property
  def DefaultExpression(self) -> BaseExpression:

Deferred Constant

If a constant’s value is delayed in calculation, it’s a deferred constant. Such a deferred constant has a reference to the regular constant of the same name.

Condensed definition of class DeferredConstant:

@export
class DeferredConstant(BaseConstant):
  # inherited from ModelEntity
  @property
  def Parent(self) -> ModelEntity:

  # inherited from NamedEntity
  @property
  def Name(self) -> str:

  # inherited from Object
  @property
  def Subtype(self) -> Subtype:

  # inherited from WithDefaultExpressionMixin
  @property
  def ConstantReference(self) -> Constant:

Generic Constant

A generic without object class or a generic constant is a regular constant.

See also

See GenericConstantInterfaceItem for details.

Constant as Parameter

A subprogram parameter without object class of mode in or a parameter constant is a regular constant.

See also

See ParameterConstantInterfaceItem for details.

Variables

Variable

A variable represents mutable data in sequential regions. Assignments to variables have no delay. The initial value can be assigned via a default expression.

Condensed definition of class Variable:

@export
class Variable(Object):
  # inherited from ModelEntity
  @property
  def Parent(self) -> ModelEntity:

  # inherited from NamedEntity
  @property
  def Name(self) -> str:

  # inherited from Object
  @property
  def Subtype(self) -> Subtype:

  # inherited from WithDefaultExpressionMixin
  @property
  def DefaultExpression(self) -> BaseExpression:

Variable as Parameter

A subprogram parameter without object class of mode out or a parameter variable is a regular variable.

See also

See ParameterVariableInterfaceItem for details.

Shared Variable

Todo

Write documentation.

Signals

Signal

A signal represents mutable data in concurrent regions. Assignments to signals are delayed until next wait statement is executed. The initial value can be assigned via a default expression.

Condensed definition of class Signal:

@export
class Signal(Object):
  # inherited from ModelEntity
  @property
  def Parent(self) -> ModelEntity:

  # inherited from NamedEntity
  @property
  def Name(self) -> str:

  # inherited from Object
  @property
  def Subtype(self) -> Subtype:

  # inherited from WithDefaultExpressionMixin
  @property
  def DefaultExpression(self) -> BaseExpression:

Signal as Port

A port signal is a regular signal.

See also

See PortSignalInterfaceItem for details.

Signal as Parameter

A parameter signal is a regular signal.

See also

See ParameterSignalInterfaceItem for details.

Files

File

Todo

Write documentation.

File as Parameter

A parameter file is a regular file.

See also

See ParameterFileInterfaceItem for details.