Null Transactions
How can a driver be disconnected (i.e. not influence the output at all)?
- Use the null waveform element
bus_out <= NULL AFTER 17 ns;
What happens if all drivers of a resolved signal are disconnected?
- Use register kind in signal declaration to keep most recently determined value
- Use bus kind in signal declaration if resolution function will determine the value
signal t : wired_bus BUS;
Notes:
A NULL transaction is used to deactivate a signal driver. This is analogous to putting a tri-state driver in a high-impedance state. In such a case, the value of the signal is determined by the other active driver(s). Of course, if there is more than one active driver at any one time, a Bus Resolution Function would be needed.
There are two actions that can take place if all drivers of a signal are disconnected:
1. Use the last known value
2. Require that a bus resolution function specify a value
The keyword REGISTER is used if the last known value action is desired, and the keyword BUS is used if a bus resolution function must specify a value. The action to be used is established when the signal is declared.