Closed chykon closed 1 year ago
Thanks for filing, you make some good points here, and thank you for the reference links. I think I agree with the idea that ROHD should support multiple assignments in Sequential
where the last one wins.
I'm not sure a global configuration knob is the right way to handle the behavior change. I'm wondering if the right solution might be:
Sequential
s have a default behaviorSequential
s constructor to toggle the behavior.The value of the "default" for this setting seems like it could go either way. It feels a little "safer" to default to the more restrictive behavior, but if it's unambiguous for simulation and synthesis anyway, why not default to the more flexible behavior? Then if someone wants to restrict themselves, they can enable the additional restriction. Sort of like unique
in Case
?
Motivation
As far as I understood, ROHD is capable of handling multiple consecutive nonblocking assignments to one variable (tried to comment out this line and everything worked). I found mentions of this (https://github.com/intel/rohd/issues/114) and cannot agree with the phrase
Here is an example where I needed this feature:
In this example, the module saves the control signals and processes them on the next cycle, when the data on the
intf.rfcuData
bus is ready. Theintf.branch
andtrigger
flags are set to zero by default, but this can be overridden depending on conditions. It seems to me that this way of using multiple consecutive non-blocking assignments simplifies the scheme.Some links:
Desired solution
It is proposed to add functionality for configuring
Simulator
, for example:Prefer default restrictive behavior.
Alternatives considered
No response
Additional details
I can do the implementation if the idea is accepted.