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
Incorrect results with partially out-of-bounds part select (re-opened) #1008
Comments
Original Redmine Comment Sorry, the test case I extracted and fixed had the opposite bit ordering. I've started on a patch, but it makes a mess of other tests, so more work is needed. Stay tuned. |
I found another case that causes different failure.
Disabling table lookup optimization by I made an unsup test case here. |
…thing. The following tests fail. Explanation is here. - Failure because extra warnings - vlt/t_a1_first_cc: %Error: Exec of perl failed: No stack. make -j && test_regress/t/t_a1_first_cc.pl --vlt - vlt/t_a2_first_sc: %Error: Exec of perl failed: No stack. make -j && test_regress/t/t_a2_first_sc.pl --vlt - vlt/t_flag_debugi9: %Error: Exec of perl failed: Starting Verilator 4.029 devel rev v4.028-114-g8e707db3 (mod) make -j && test_regress/t/t_flag_debugi9.pl --vlt - vlt/t_gen_forif: %Error: Exec of perl failed: %Warning-CLKDATA: t/t_gen_forif.v:35: Clock used as data (on rhs of assignment) in sequential block 't.Result' make -j && test_regress/t/t_gen_forif.pl --vlt - Failures because the statistics changes - vlt/t_split_var_0: %Error: File_grep: obj_vlt/t_split_var_0/Vt_split_var_0__stats.txt: Got='26' Expected='23' in regexp: (?^i:SplitVar,\s+Split unpacked arrays\s+(\d+)) make -j && test_regress/t/t_split_var_0.pl --vlt - vlt/t_split_var_1_bad: %Error: Line 1 mismatches; obj_vlt/t_split_var_1_bad/vlt_compile.log != t/t_split_var_1_bad.out make -j && test_regress/t/t_split_var_1_bad.pl --vlt - vlt/t_split_var_2_trace: %Error: VCD miscompare obj_vlt/t_split_var_2_trace/simx.vcd t/t_split_var_2_trace.out make -j && test_regress/t/t_split_var_2_trace.pl --vlt - vlt/t_unopt_combo_isolate: %Error: File_grep: obj_vlt/t_unopt_combo_isolate/Vt_unopt_combo_isolate__stats.txt: Regexp not found: (?^i:Optimizations, isolate_assignments blocks\s+5) make -j && test_regress/t/t_unopt_combo_isolate.pl --vlt - vlt/t_unopt_combo_isolate_vlt: %Error: File_grep: obj_vlt/t_unopt_combo_isolate_vlt/Vt_unopt_combo_isolate_vlt__stats.txt: Regexp not found: (?^i:Optimizations, isolate_assignments blocks\s+5) make -j && test_regress/t/t_unopt_combo_isolate_vlt.pl --vlt - vlt/t_xml_tag: %Error: Line 26 mismatches; obj_vlt/t_xml_tag/Vt_xml_tag.xml != t/t_xml_tag.out make -j && test_regress/t/t_xml_tag.pl --vlt - SplitVar changed error message by other pass. (the testcases are intended for error message) - vlt/t_bitsel_wire_array_bad: %Error: Line 1 mismatches; obj_vlt/t_bitsel_wire_array_bad/vlt_compile.log != t/t_bitsel_wire_array_bad.out make -j && test_regress/t/t_bitsel_wire_array_bad.pl --vlt - vlt/t_lint_multidriven_bad: %Error: Line 9 mismatches; obj_vlt/t_lint_multidriven_bad/vlt_compile.log != t/t_lint_multidriven_bad.out make -j && test_regress/t/t_lint_multidriven_bad.pl --vlt - vlt/t_unoptflat_simple_2_bad: %Error: Exec of perl ok, but expected to fail make -j && test_regress/t/t_unoptflat_simple_2_bad.pl --vlt - Because of other issue verilator#1008 (comment) - vlt/t_select_bound1: %Error: Exec of perl failed: %Error: t/t_select_bound1.v:23: Unsupported: 4-state numbers in this context make -j && test_regress/t/t_select_bound1.pl --vlt
…thing. The following tests fail. Explanation is here. - Failure because extra warnings - vlt/t_a1_first_cc: %Error: Exec of perl failed: No stack. make -j && test_regress/t/t_a1_first_cc.pl --vlt - vlt/t_a2_first_sc: %Error: Exec of perl failed: No stack. make -j && test_regress/t/t_a2_first_sc.pl --vlt - vlt/t_flag_debugi9: %Error: Exec of perl failed: Starting Verilator 4.029 devel rev v4.028-114-g8e707db3 (mod) make -j && test_regress/t/t_flag_debugi9.pl --vlt - Failures because the statistics changes - vlt/t_split_var_0: %Error: File_grep: obj_vlt/t_split_var_0/Vt_split_var_0__stats.txt: Got='26' Expected='23' in regexp: (?^i:SplitVar,\s+Split unpacked arrays\s+(\d+)) make -j && test_regress/t/t_split_var_0.pl --vlt - vlt/t_split_var_1_bad: %Error: Line 1 mismatches; obj_vlt/t_split_var_1_bad/vlt_compile.log != t/t_split_var_1_bad.out make -j && test_regress/t/t_split_var_1_bad.pl --vlt - vlt/t_split_var_2_trace: %Error: VCD miscompare obj_vlt/t_split_var_2_trace/simx.vcd t/t_split_var_2_trace.out make -j && test_regress/t/t_split_var_2_trace.pl --vlt - vlt/t_unopt_combo_isolate: %Error: File_grep: obj_vlt/t_unopt_combo_isolate/Vt_unopt_combo_isolate__stats.txt: Regexp not found: (?^i:Optimizations, isolate_assignments blocks\s+5) make -j && test_regress/t/t_unopt_combo_isolate.pl --vlt - vlt/t_unopt_combo_isolate_vlt: %Error: File_grep: obj_vlt/t_unopt_combo_isolate_vlt/Vt_unopt_combo_isolate_vlt__stats.txt: Regexp not found: (?^i:Optimizations, isolate_assignments blocks\s+5) make -j && test_regress/t/t_unopt_combo_isolate_vlt.pl --vlt - vlt/t_xml_tag: %Error: Line 26 mismatches; obj_vlt/t_xml_tag/Vt_xml_tag.xml != t/t_xml_tag.out make -j && test_regress/t/t_xml_tag.pl --vlt - SplitVar changed error message by other pass. - vlt/t_bitsel_wire_array_bad: %Error: Line 1 mismatches; obj_vlt/t_bitsel_wire_array_bad/vlt_compile.log != t/t_bitsel_wire_array_bad.out make -j && test_regress/t/t_bitsel_wire_array_bad.pl --vlt - vlt/t_lint_multidriven_bad: %Error: Line 9 mismatches; obj_vlt/t_lint_multidriven_bad/vlt_compile.log != t/t_lint_multidriven_bad.out make -j && test_regress/t/t_lint_multidriven_bad.pl --vlt - vlt/t_gen_forif: %Error: Exec of perl failed: %Warning-CLKDATA: t/t_gen_forif.v:35: Clock used as data (on rhs of assignment) in sequential block 't.Result' make -j && test_regress/t/t_gen_forif.pl --vlt - vlt/t_unoptflat_simple_2_bad: %Error: Exec of perl ok, but expected to fail make -j && test_regress/t/t_unoptflat_simple_2_bad.pl --vlt - Because of other issue verilator#1008 (comment) - vlt/t_select_bound1: %Error: Exec of perl failed: %Error: t/t_select_bound1.v:23: Unsupported: 4-state numbers in this context make -j && test_regress/t/t_select_bound1.pl --vlt
…thing. The following tests fail. Explanation is here. - Failure because extra warnings - vlt/t_a1_first_cc: %Error: Exec of perl failed: No stack. make -j && test_regress/t/t_a1_first_cc.pl --vlt - vlt/t_a2_first_sc: %Error: Exec of perl failed: No stack. make -j && test_regress/t/t_a2_first_sc.pl --vlt - vlt/t_flag_debugi9: %Error: Exec of perl failed: Starting Verilator 4.029 devel rev v4.028-114-g8e707db3 (mod) make -j && test_regress/t/t_flag_debugi9.pl --vlt - Failures because the statistics changes - vlt/t_split_var_0: %Error: File_grep: obj_vlt/t_split_var_0/Vt_split_var_0__stats.txt: Got='26' Expected='23' in regexp: (?^i:SplitVar,\s+Split unpacked arrays\s+(\d+)) make -j && test_regress/t/t_split_var_0.pl --vlt - vlt/t_split_var_1_bad: %Error: Line 1 mismatches; obj_vlt/t_split_var_1_bad/vlt_compile.log != t/t_split_var_1_bad.out make -j && test_regress/t/t_split_var_1_bad.pl --vlt - vlt/t_split_var_2_trace: %Error: VCD miscompare obj_vlt/t_split_var_2_trace/simx.vcd t/t_split_var_2_trace.out make -j && test_regress/t/t_split_var_2_trace.pl --vlt - vlt/t_unopt_combo_isolate: %Error: File_grep: obj_vlt/t_unopt_combo_isolate/Vt_unopt_combo_isolate__stats.txt: Regexp not found: (?^i:Optimizations, isolate_assignments blocks\s+5) make -j && test_regress/t/t_unopt_combo_isolate.pl --vlt - vlt/t_unopt_combo_isolate_vlt: %Error: File_grep: obj_vlt/t_unopt_combo_isolate_vlt/Vt_unopt_combo_isolate_vlt__stats.txt: Regexp not found: (?^i:Optimizations, isolate_assignments blocks\s+5) make -j && test_regress/t/t_unopt_combo_isolate_vlt.pl --vlt - vlt/t_xml_tag: %Error: Line 26 mismatches; obj_vlt/t_xml_tag/Vt_xml_tag.xml != t/t_xml_tag.out make -j && test_regress/t/t_xml_tag.pl --vlt - SplitVar changed error message by other pass. - vlt/t_bitsel_wire_array_bad: %Error: Line 1 mismatches; obj_vlt/t_bitsel_wire_array_bad/vlt_compile.log != t/t_bitsel_wire_array_bad.out make -j && test_regress/t/t_bitsel_wire_array_bad.pl --vlt - vlt/t_lint_multidriven_bad: %Error: Line 9 mismatches; obj_vlt/t_lint_multidriven_bad/vlt_compile.log != t/t_lint_multidriven_bad.out make -j && test_regress/t/t_lint_multidriven_bad.pl --vlt - vlt/t_gen_forif: %Error: Exec of perl failed: %Warning-CLKDATA: t/t_gen_forif.v:35: Clock used as data (on rhs of assignment) in sequential block 't.Result' make -j && test_regress/t/t_gen_forif.pl --vlt - vlt/t_unoptflat_simple_2_bad: %Error: Exec of perl ok, but expected to fail make -j && test_regress/t/t_unoptflat_simple_2_bad.pl --vlt - Because of other issue verilator#1008 (comment) - vlt/t_select_bound1: %Error: Exec of perl failed: %Error: t/t_select_bound1.v:23: Unsupported: 4-state numbers in this context make -j && test_regress/t/t_select_bound1.pl --vlt
Author Name: Clifford Wolf (@cliffordwolf)
Original Redmine Issue: 1008 from https://www.veripool.org
Sorry, I don't know how to re-open a closed issue.. (can I even do that?)
A year ago I reported issue #823: Incorrect results with partially out-of-bounds part select:
http://www.veripool.org/issues/823-Verilator-Incorrect-results-with-partially-out-of-bounds-part-select
This ticked has been closed as "Fixed in git towards 3.865".
However, with current git head of verilator (commit 373a68e) I can still reproduce the problem, using exactly the test case that I posted in issue 823:
http://svn.clifford.at/handicraft/2014/verilatortest/test020.v
http://svn.clifford.at/handicraft/2014/verilatortest/test020_tb.v
http://svn.clifford.at/handicraft/2014/verilatortest/test020.cc
http://svn.clifford.at/handicraft/2014/verilatortest/test020.sh
The text was updated successfully, but these errors were encountered: