Project

General

Profile

[logo] 
 
Home
News
Activity
About/Contact
Major Tools
  Dinotrace
  Verilator
  Verilog-mode
  Verilog-Perl
Other Tools
  BugVise
  CovVise
  Force-Gate-Sim
  Gspice
  IPC::Locker
  Rsvn
  SVN::S4
  Voneline
  WFH
General Info
  Papers

Issue #991

Assignment to unpacked array causes "Assignment pattern missed initializing elements" error message

Added by Johan Bjork over 3 years ago. Updated over 1 year ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
TranslationError
% Done:

0%


Description

The following test exhibits the error:
module t (/*AUTOARG*/);
   logic [31:0] array_assign [3:0];
   assign array_assign[0] = 32'd1;
   assign array_assign[3:1] = '{'0, '0, '0};

   initial begin
      $write("*-* All Finished *-*\n");
      $finish;
   end
endmodule
phbs-Air:t phb$ ./t_array_pattern_unpacked.pl
======================================================================
vlt/t_array_pattern_unpacked: ==================================================
vlt/t_array_pattern_unpacked: Compile
    perl ../bin/verilator --prefix Vt_array_pattern_unpacked --x-assign unique -cc -Mdir obj_dir/t_array_pattern_unpacked -OD --debug-check --clk clk  -f input.vc t/t_array_pattern_unpacked.v    > obj_dir/t_array_pattern_unpacked/vlt_compile.log
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 28
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 27
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 26
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 25
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 24
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 23
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 22
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 21
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 20
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 19
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 18
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 17
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 16
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 15
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 14
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 13
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 12
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 11
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 10
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 9
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 8
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 7
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 6
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 5
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 4
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 3
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 2
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 1
%Error: t/t_array_pattern_unpacked.v:9: Assignment pattern missed initializing elements: 0
%Warning-WIDTH: t/t_array_pattern_unpacked.v:9: Operator ASSIGNW expects 32 bits on the Assign RHS, but Assign RHS's CONCAT generates 3 bits.
%Warning-WIDTH: Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message.
%Error: Exiting due to 29 error(s), 1 warning(s)
%Error: Command Failed /Users/phb/DEV/verilator-tstrader-dev//verilator_bin --prefix Vt_array_pattern_unpacked --x-assign unique -cc -Mdir obj_dir/t_array_pattern_unpacked -OD --debug-check --clk clk -f input.vc t/t_array_pattern_unpacked.v
%Warning: vlt/t_array_pattern_unpacked: Exec of perl failed

vlt/t_array_pattern_unpacked: %Error: Exec of perl failed
vlt/t_array_pattern_unpacked: FAILED: ************************************************************
==SUMMARY: Left 0  Passed 0  Unsup 0  Skipped 0  Failed 1

======================================================================
TESTS Passed 0  Unsup 0  Skipped 0  Failed 1  Time 0:00
    #vlt/t_array_pattern_unpacked: %Error: Exec of perl failed
        make && test_regress/t/t_array_pattern_unpacked.pl
TESTS Passed 0  Unsup 0  Skipped 0  Failed 1  Time 0:00

History

#1 Updated by Wilson Snyder over 3 years ago

Slice assignment (the [3:1] on the left) is a bit fragile. I'll take a look when I get a chance.

#2 Updated by Wilson Snyder over 1 year ago

  • Description updated (diff)
  • Status changed from New to Confirmed

#3 Updated by Wilson Snyder over 1 year ago

  • Category set to TranslationError
  • Status changed from Confirmed to Resolved

Finally supporting partial slices, fixed in git towards 3.915.

#4 Updated by Wilson Snyder over 1 year ago

  • Status changed from Resolved to Closed

In 3.916.

Also available in: Atom