New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Verilator shows an internal error if a module that has inout ports is not inlined #3258
Comments
I don't fully understand tri-state handling yet, but output of V3Tristate looks strange.
Comment tells __en and __out are output Inlining hides this mismatch ? Will read V3Tristate more. Lines 48 to 50 in fd45be3
|
I suspect dedup is just catching the problem and not really related to the real issue with tristate. It looks like the variable does have the wrong direction as you suggest - does fixing that make it work? |
If a module that has inout port is not inlined, verilator shows the following internal error.
This error can be easily reproduced by adding
/*verilator no_inline_module*/
metacomment toio
module int_tri_inout.v
verilator/test_regress/t/t_tri_inout.v
Lines 18 to 22 in fd45be3
Passing
-Od
to skip dedupe optimization allows verilation, but the simulation result is not good.I assume the optimization pass is essential.
The quickest fix would be forcing the module to be inlined regardless of its size, but not ideal of course.
I am trying to understand what dedupe optimization does and hopefully find better fix.
Any suggestion will be appreciated.
The text was updated successfully, but these errors were encountered: