You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
} elseif (driver ==null&& receiver.value.isValid) {
assignments.add(_SynthAssignment(receiver.value, synthReceiver));
} elseif (driver ==null&&!receiver.value.isFloating) {
// this is a signal that is *partially* invalid (e.g. 0b1z1x0)
assignments.add(_SynthAssignment(receiver.value, synthReceiver));
}
This appears to indicate that if a signal has no driver, yet has valid (or partially valid) values, then the generation of SystemVeriog will conclude that it must be a constant value. This means non-synthesizable signal deposition like put could affect the constant values present in generated outputs. The checks for constants need to be more significant, such as checking for Const, unassignable, etc.
To Reproduce
Make a design with an undriven signal which has a valid value deposited via put and check generated SystemVerilog of the design.
Expected behavior
An undriven signal remains undriven in generated outputs.
Actual behavior
An undriven signal, with a value deposited on it, becomes a constant value in generated outputs.
Additional: Dart SDK info
No response
Additional: pubspec.yaml
No response
Additional: Context
No response
The text was updated successfully, but these errors were encountered:
Describe the bug
Code like this exists in "systemverilog.dart":
This appears to indicate that if a signal has no driver, yet has valid (or partially valid) values, then the generation of SystemVeriog will conclude that it must be a constant value. This means non-synthesizable signal deposition like
put
could affect the constant values present in generated outputs. The checks for constants need to be more significant, such as checking forConst
,unassignable
, etc.To Reproduce
Make a design with an undriven signal which has a valid value deposited via
put
and check generated SystemVerilog of the design.Expected behavior
An undriven signal remains undriven in generated outputs.
Actual behavior
An undriven signal, with a value deposited on it, becomes a constant value in generated outputs.
Additional: Dart SDK info
No response
Additional: pubspec.yaml
No response
Additional: Context
No response
The text was updated successfully, but these errors were encountered: