put method
- dynamic val, {
- bool fill = false,
override
Puts a value val onto this signal, which may or may not be picked up
for changed in this Simulator tick.
The type of val should be an int, BigInt, bool, or LogicValue.
This function is used for propogating glitches through connected signals. Use this function for custom definitions of Module behavior.
If fill is set, all bits of the signal gets set to val, similar
to ' in SystemVerilog.
Implementation
@override
void put(dynamic val, {bool fill = false}) {
if (val is FixedPointValue) {
if ((signed != val.signed) |
(integerWidth != val.integerWidth) |
(fractionWidth != val.fractionWidth)) {
throw RohdHclException('Value is not compatible with signal. '
'Expected: signed=$signed, integerWidth=$integerWidth, '
'nWidth=$fractionWidth. '
'Got: signed=${val.signed}, fractionWidth=${val.integerWidth}, '
'nWidth=${val.fractionWidth}.');
}
super.put(val.value);
} else {
throw RohdHclException('Only FixedPointValue is allowed');
}
}