We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
Author Name: Rich Porter Original Redmine Issue: 1620 from https://www.veripool.org
Original Assignee: Wilson Snyder (@wsnyder)
A dotted function reference through an array of instances with a non constant argument causes @internal Error: ParseRefs should no longer exist@
t.ma0.u_b[0].f(1); // works t.ma0.u_b[0].f(clk); // does not work
Apply the following patch
$ git diff diff --git a/test_regress/t/t_func_dotted.v b/test_regress/t/t_func_dotted.v index df17433a..4c985ea7 100644 --- a/test_regress/t/t_func_dotted.v +++ b/test_regress/t/t_func_dotted.v @@ -12,6 +12,9 @@ module t (/*AUTOARG*/ ma ma0 (); + initial t.ma0.u_b[0].f(1); + initial t.ma0.u_b[0].f(clk); + global_mod #(32'hf00d) global_cell (); global_mod #(32'hf22d) global_cell2 (); @@ -138,3 +141,13 @@ module mc (); mc.checkName (mc.getName(1'b0)); end endmodule + +module b; + + function void f(bit v); + $display("%m"); + endfunction : f; + +endmodule : b + +bind ma b u_b[0:1];
Yields the following result
$ test_regress/t/t_func_dotted_inl0.pl ====================================================================== dist/t_func_dotted_inl0: ================================================== -Skip: dist/t_func_dotted_inl0: scenario 'dist' not enabled for test dist/t_func_dotted_inl0: %Skip: Skip: scenario 'dist' not enabled for test ==SUMMARY: Passed 0 Failed 0 Unsup 0 Time 0:00 ====================================================================== vlt/t_func_dotted_inl0: ================================================== perl /work/verilator/test_regress/../bin/verilator --prefix Vt_func_dotted_inl0 ../obj_vlt/t_func_dotted_inl0/Vt_func_dotted_inl0__main.cpp --exe --make gmake --x-assign unique -cc -Mdir obj_vlt/t_func_dotted_inl0 -OD --debug-check --comp-limit-members 10 --clk clk -f input.vc +define+TEST_OBJ_DIR=obj_vlt/t_func_dotted_inl0 +define+NOUSE_INLINE t/t_func_dotted.v > obj_vlt/t_func_dotted_inl0/vlt_compile.log %Error: Internal Error: t/t_func_dotted.v:16: ../V3LinkDot.cpp:1945: ParseRefs should no longer exist : ... In instance t initial t.ma0.u_b[0].f(clk); ^~~ ... See the manual and https://verilator.org for more assistance. %Warning: vlt/t_func_dotted_inl0: Exec of perl failed: %Error: Internal Error: t/t_func_dotted.v:16: ../V3LinkDot.cpp:1945: ParseRefs should no longer exist vlt/t_func_dotted_inl0: %Error: Exec of perl failed: %Error: Internal Error: t/t_func_dotted.v:16: ../V3LinkDot.cpp:1945: ParseRefs should no longer exist vlt/t_func_dotted_inl0: FAILED: Exec of perl failed: %Error: Internal Error: t/t_func_dotted.v:16: ../V3LinkDot.cpp:1945: ParseRefs should no longer exist ==SUMMARY: Passed 0 Failed 1 Unsup 0 Time 0:00
This was tested on the following version.
$ git log commit 95ffcad12e2a3c84290a580bbafcbef394a1cdc2 (HEAD -> master, origin/master, origin/HEAD) Author: Wilson Snyder <wsnyder@wsnyder.org> Date: Tue Dec 3 07:18:59 2019 -0500 Fix t_queue crash on Trusty due to lifetime issue.
The text was updated successfully, but these errors were encountered:
Original Redmine Comment Author Name: Wilson Snyder (@wsnyder) Original Date: 2019-12-05T00:27:06Z
Thanks for modifying a test to show the issue, makes it much easier.
Seemed the assertion was all that was broken.
Fixed in git towards eventual 4.024 release.
Sorry, something went wrong.
Original Redmine Comment Author Name: Wilson Snyder (@wsnyder) Original Date: 2019-12-08T13:11:20Z
In 4.024.
wsnyder
No branches or pull requests
Author Name: Rich Porter
Original Redmine Issue: 1620 from https://www.veripool.org
Original Assignee: Wilson Snyder (@wsnyder)
A dotted function reference through an array of instances with a non constant argument causes @internal Error: ParseRefs should no longer exist@
Apply the following patch
Yields the following result
This was tested on the following version.
The text was updated successfully, but these errors were encountered: