because (at least two years ago) Migen generated always(*) blocks that unconditionally updated signal values >>
-
-
>> this scheduled other blocks, causing endless loops. Other sims were smart enough to break loops to different degrees
1 reply 0 retweets 0 likes -
modelsim (or vivado xsim. Don't remember) wasn't immune to this either. I had to manually fix up some generated code
2 replies 0 retweets 0 likes -
Replying to @OlofKindgren @oe1cxw
And you're just making the case against Verilog.
2 replies 1 retweet 1 like -
Replying to @M_Labs_Ltd @oe1cxw
verilog has many flaws, but precisely because of that, a new HDL should hide these flaws from the user, not expose them
1 reply 2 retweets 3 likes -
Replying to @OlofKindgren @oe1cxw
Just don't use poor Verilog simulators.
1 reply 0 retweets 0 likes -
Replying to @M_Labs_Ltd @OlofKindgren
Just don't generate Verilog code that only works with simulators that provide special functionality above and beyond the language spec. :)
3 replies 2 retweets 6 likes -
Replying to @oe1cxw @OlofKindgren
This "special functionality" is perfectly reasonable. If it doesn't have it then it can bite you randomly in manually written code as well.
1 reply 0 retweets 0 likes -
Replying to @M_Labs_Ltd @OlofKindgren
Yes you can manually write buggy code that is broken because it relies on undefined behavior. What's your point?
1 reply 0 retweets 0 likes -
Replying to @oe1cxw @OlofKindgren
Assigning its current value to a signal should not trigger always blocks. Built-in simulator (and others) do that, and things work.
1 reply 0 retweets 1 like
Yes, that's in the Verilog standard. But that's not a special "loop detection and breaking" feature. It's just the std behavior.
-
-
Replying to @oe1cxw @OlofKindgren
OK then there should not be much of a problem with Migen. Do you have any code that demonstrates the issue?
2 replies 0 retweets 0 likes -
Replying to @M_Labs_Ltd @OlofKindgren
I guess that's directed at
@OlofKindgren? Or do you want me to write a general example that can loop with a std compliant simulator?0 replies 0 retweets 0 likes
End of conversation
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.