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
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.
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).
I'm going to take a crack at this one.
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.
Seems this should have been closed long ago.