14.7.2 Drivers
Every signal assignment statement in a process statement defines a set of drivers for certain scalar signals.
There is a single driver for a given scalar signal S in a process statement, provided that there is at least one
signal assignment statement in that process statement and that the longest static prefix of the target signal of
that signal assignment statement denotes S or denotes a composite signal of which S is a subelement. Each
such signal assignment statement is said to be associated with that driver. Execution of a signal assignment
statement affects only the associated driver(s).
A driver for a scalar signal is represented by a projected output waveform. A projected output waveform
consists of a sequence of one or more transactions, where each transaction is a pair consisting of a value
component and a time component. For a given transaction, the value component represents a value that the
driver of the signal is to assume at some point in time, and the time component specifies which point in time.
These transactions are ordered with respect to their time components.
A driver always contains at least one transaction. The initial contents of a driver associated with a given
signal are defined by the default value associated with the signal (see 6.4.2.3). The kernel process contains a
variable representing the current value of the driver. The initial value of the variable is the value component
of the initial transaction of the driver.
For any driver, if, as the result of the advance of time, the current time becomes equal to the time component
of the second transaction of the driver, the first transaction is deleted from the projected output waveform,
and what was the second transaction becomes the first transaction. Then, or if a force or deposit is scheduled
for the driver, the variable containing the current value of the driver is updated as follows: