Menu

#964 systemverilog user defined types elaborate internal error

devel
closed-fixed
None
5
2019-08-02
2014-11-24
ermejdri
No

MacBook-Air-2:iv_test ermejdri$ iverilog -g2012 test.sv
:0: internal error: Elaborate method not implemented for 13parray_type_t.
1 error(s) during elaboration.

From:

module xyzw
(
   input    logic                in_a,
   output   logic                out_a
);

/*------------------------------------------------------------------------------
Local type definitions
------------------------------------------------------------------------------*/ 
   typedef struct packed {
      logic [31:0]               raw_instr;
   } row_entry_t;  

   typedef struct packed {
      row_entry_t [7:0]    instr;                                                
   } row_t; 

/*------------------------------------------------------------------------------
Signals
------------------------------------------------------------------------------*/    
   row_t                          drow_in;

endmodule 

Was cut down from a much larger chunk of code. Thanks!
--Eric

1 Attachments

Discussion

  • Cary R.

    Cary R. - 2014-11-24

    Thank you for the report and reduced example. I have verified that this is still failing using the latest development code from git. We should also look to see if we can get the file and line information included in the error message. I will try to look at this later unless someone else takes care of it by then.

     
  • Cary R.

    Cary R. - 2014-11-25

    I have added the file and line information and an error message that reports this is not currently supported. This message eventually needs to be replaced with code to correctly elaborate a packed array of packed arrays. I do not have time to look at all the details/subtleties in implementing this today. Someone else can look at this if they want or I will look into it when I have time.

    The obvious solution is to just create a multidimensional packed array, but that likely doesn't provide all the information the standard requires, but should work for basic simulations (e.g. add the new packed dimensions to the existing dimensions in the correct order and then elaborate using the base type).

     
  • Stephen Williams

    • assigned_to: Stephen Williams
     
  • Stephen Williams

    I'm going to take a crack at this one.

     
  • Stephen Williams

    Somewhere along the line, this seems to have been fixed. At least, the test program that is attached is not failing, so I'm going to close it.

     
  • Martin Whitaker

    Martin Whitaker - 2019-08-02
    • status: open --> closed-fixed
     
  • Martin Whitaker

    Martin Whitaker - 2019-08-02

    Seems this should have been closed long ago.

     

Log in to post a comment.