Only methods that are used by the automatically generated code are listed in the following table.
Besides the constructor there are two groups of methods:
If the VHDL compiler can exactly determine the scalar element of a
composite signal which is target of an signal assignment statement
then this methods is used to create the corresponding transaction for
this scalar element. In case of a composite signal the information
which scalar element is target of the assignment is stored in the
driver_info
instance. Note, in VHDL all composite signals are
converted into a set of scalar signals.
To speedup transaction creation a separate method exists for each scalar VHDL type group integer, enumeration, physical, and floating point.
If the VHDL compiler cannot determine the scalar target of a signal assignment statement or several scalar elements are target then this methods are used. An ``acl'' instance is used to define the set of signals which are target of the assignment.
Further, there are two different groups to add transactions with inertial delay:
A parameter start_time
of type time is used to specify
the pulse reject interval. The left bound of the pulse reject interval
is set to ``current simulation time'' + start_time
.
Here the left bound of the pulse reject interval is set to ``current simulation time''.
Method | Description |
---|---|
driver_info(process_base *proc,
sig_info_base *sig, acl *a = NULL) |
Instantiates a new ``driver_info'' object. ``proc'' is the process which includes at least one assignment operation to a set of elements of signal ``sig''. The elements are specified by ``a''. |
void transport_assign(void *value,
acl *aclp, const time &time_value) |
This method adds new transactions with transport delay to one or more scalar elements on a composite signal. ``value'' points to the new transaction value. ``aclp'' determines the elements which are addressed by the assignment operation. Current simulation time + ``time_value'' is the time stamp of the new transaction. |
void inertial_assign(void *value,
acl *aclp, const time &time_value, const time &start_time) |
This method adds new transactions with inertial delay to one ore more scalar elements of a composite signal. ``value'' points to the new transaction value. ``aclp'' determines the elements which are addressed by the assignment operation. Current simulation time + ``time_value'' is the time stamp of the new transaction. All transactions currently on the transaction list with a time stamp greater equal ``start_time'' are subject to the pulse reject mechanism. |
void transport_assign(
const integer_base &value, const time &time_value) |
This method adds a new transaction with transport delay to a scalar integer signal resp. scalar integer signal element. ``value'' is the new transaction value. The time stamp of the new transaction is set to simulation time + ``time_value''. |
void transport_assign(
const floating_base &value, const time &time_value) |
Same as previous method but for floating point signals resp. scalar floating point signal elements. |
void transport_assign(
const enumeration_base &value, const time &time_value) |
Same as previous method but for enumeration signals resp. scalar enumeration signal elements. |
void transport_assign(
const physical_base &value, const time &time_value) |
Same as previous method but for physical point signals resp. scalar physical signal elements. |
void inertial_assign(
|
This method adds a new transaction with inertial delay to a scalar integer signal resp. scalar integer signal element. ``value'' points to the new transaction value. Current simulation time + ``time_value'' is the time stamp of the new transaction. All old transactions currently on the transaction list with a time stamp greater equal the current simulation time + ``start_time'' are subject to the pulse reject mechanism. |
void inertial_assign(
const floating_base &value, const time &time_value, const time &start_time) |
Same as previous method but for floating point signals resp. scalar floating point signal elements. |
void inertial_assign(
const enumeration_base &value, const time &time_value, const time &start_time) |
Same as previous method but for enumeration point signals resp. scalar enumeration point signal elements. |
void inertial_assign(
const physical_base &value, const time &time_value, const time &start_time) |
Same as previous method but for physical point signals resp. scalar physical point signal elements. |
void inertial_assign(
|
This method adds a new transaction with inertial delay to a scalar integer signal resp. scalar integer signal element. ``value'' points to the new transaction value. Current simulation time + ``time_value'' is the time stamp of the new transaction. All old transactions currently on the transaction list with a time stamp greater equal the current simulation time are subject to the pulse reject mechanism. |
void inertial_assign(
const floating_base &value, const time &time_value) |
Same as previous method but for floating point signals resp. scalar floating point signal elements. |
void inertial_assign(
const enumeration_base &value, const time &time_value) |
Same as previous method but for enumeration point signals resp. scalar enumeration point signal elements. |
void inertial_assign(
const physical_base &value, const time &time_value) |
Same as previous method but for physical point signals resp. scalar physical point signal elements. |