Why is the synthesis result of my Verilog HDL struct signal incorrect? - Why is the synthesis result of my Verilog HDL struct signal incorrect?
Description Due to a problem in the Intel® Quartus® Prime Pro Edition Software v21.1 and earlier, you may see the synthesis result is incorrect when the instantiated variable name of a structure is the same as one of its members. For example, in the structure definition below, when the design uses in.data , it is synthesized as in.data.data , which is the element of the structure. This means the bit width is 256 bits when it should be 258 bits i.e. 1 bit sop, 1 bit eop and 256 bits data. interface test #(parameter WIDTH=256) (); typedef struct packed { logic sop; logic eop; logic [WIDTH-1:0] data; } data_t; data_t data; endinterface ...... test #(.WIDTH(256)) in(); assign dout = in.data; ...... Resolution To work around this problem, do not use the same name for the structure as one if it's members. This problem has been fixed beginning with the Intel® Quartus® Prime Pro Edition Software v21.2.
Custom Fields values:
['novalue']
Troubleshooting
1509402076
False
['novalue']
['FPGA Dev Tools Quartus® Prime Software Pro']
21.2
21.1
['Programmable Logic Devices']
['novalue']
['novalue']
['novalue'] - 2021-09-25
external_document