|
|
|
|
|
by adwn
4445 days ago
|
|
> Not knowing what a latch is or why it is bad seems like more a failure of the class than an inherent problem with Verilog. You misunderstood the problem: It's not a problem that you can describe a latch, but that it's so easy to make the mistake of describing a latch instead of combinational logic. It's a common mistake and clearly a failure of the language, because two very different intents are described by very similar code. > The simulation/synthesis disconnect is inherent to that. [...] No, you're confusing simulation/synthesis mismatch with non-synthesizable code. The former means that simulation gives you different results than the hardware at runtime, which is a very bad thing and should be avoided wherever possible (that's the point of simulation, after all). The latter is unavoidable to a certain degree if the HDL should be usable for simulation. |
|
While I'd accept that perhaps exposing this so easily might be an annoyance in the language, it is hardly a failing.
Synthesis: Again, from experience, this is an issue with your synthesis flow, not the HDL. Synthesis is absurdly complicated, to the point where any team I've been on has at least one guy where that is the entirety of his job. If the generated netlist breaks simulation when your HDL made it all the way through all other flows, more than likely it's an issue with synthesis.