Article ID: 000074592 Content Type: Troubleshooting Last Reviewed: 09/04/2012

Why doesn't the Quartus II software correctly synthesize signed packed array variables in SystemVerilog?

Environment

  • Quartus® II Subscription Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Description

    Due to a problem in the Quartus® II software, signed packed array variables in SystemVerilog may not be synthesized correctly. This problem may occur when assigning a one-dimensional array variable to a signed packed array variable if the index range is not explicitly specified.

    For example, the following code may be synthesized incorrectly by the Quartus II software:

    logic clk;
    logic signed [3:0][31:0] packed_array_variable;
    logic signed [31:0] array_variable;

    always_ff @ (posedge clk)
        packed_array_variable[0] <= array_variable;
    Resolution

    To work around this problem, explicitly declare the index range when assigning a one-dimensional array variable to a packed array variable.

    For example, in the above code, change the last line to:

        packed_array_variable[0][31:0] <= array_variable;

    Related Products

    This article applies to 1 products

    Intel® Programmable Devices