mirror of
https://github.com/verilator/verilator.git
synced 2025-01-04 05:37:48 +00:00
Commentary
This commit is contained in:
parent
a29ac44af9
commit
efc116323b
@ -4507,6 +4507,11 @@ likely all of them are oscillating. It may also be that e.g. "a" may be
|
|||||||
oscillating, then "a" feeds signal "c" which then is also reported as
|
oscillating, then "a" feeds signal "c" which then is also reported as
|
||||||
oscillating.
|
oscillating.
|
||||||
|
|
||||||
|
One way DIDNOTCONVERGE may occur is flops are built out of gate primitives.
|
||||||
|
error. Verilator does not support building flops or latches out of gate
|
||||||
|
primitives, and any such code must change to use behavioral constructs
|
||||||
|
(e.g. always_ff and always_latch).
|
||||||
|
|
||||||
Finally, rare, more difficult cases can be debugged like a "C" program;
|
Finally, rare, more difficult cases can be debugged like a "C" program;
|
||||||
either enter GDB and use its tracing facilities, or edit the generated C++
|
either enter GDB and use its tracing facilities, or edit the generated C++
|
||||||
code to add appropriate prints to see what is going on.
|
code to add appropriate prints to see what is going on.
|
||||||
@ -5012,6 +5017,13 @@ being generated from an always statement that consumed high bits of the
|
|||||||
same bus processed by another series of always blocks. The fix is the
|
same bus processed by another series of always blocks. The fix is the
|
||||||
same; split it into two separate signals generated from each block.
|
same; split it into two separate signals generated from each block.
|
||||||
|
|
||||||
|
Occasionally UNOPTFLAT may be indicated when there is a true circulation.
|
||||||
|
e.g. if trying to implement a flop or latch using individual gate
|
||||||
|
primitives. If UNOPTFLAT is suppressed the code may get a DIDNOTCONVERGE
|
||||||
|
error. Verilator does not support building flops or latches out of gate
|
||||||
|
primitives, and any such code must change to use behavioral constructs
|
||||||
|
(e.g. always_ff and always_latch).
|
||||||
|
|
||||||
Another way to resolve this warning is to add a C<split_var> metacomment
|
Another way to resolve this warning is to add a C<split_var> metacomment
|
||||||
described above. This will cause the variable to be split internally,
|
described above. This will cause the variable to be split internally,
|
||||||
potentially resolving the conflict. If you run with --report-unoptflat
|
potentially resolving the conflict. If you run with --report-unoptflat
|
||||||
|
Loading…
Reference in New Issue
Block a user