Quartus® II 소프트웨어의 문제로 인해 SystemVerilog의 서명된 압축 배열 변수가 올바르게 합성되지 않을 수 있습니다. 인덱스 범위를 명시적으로 지정하지 않은 경우 부호 있는 압축된 배열 변수에 1차원 배열 변수를 할당할 때 이 문제가 발생할 수 있습니다.
예를 들어, 다음 코드는 Quartus II 소프트웨어에서 잘못 합성될 수 있습니다.
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;
이 문제를 해결하려면 압축된 배열 변수에 1차원 배열 변수를 할당할 때 인덱스 범위를 명시적으로 선언하십시오.
예를 들어 위의 코드에서 마지막 줄을 다음과 같이 변경합니다.
packed_array_variable[0][31:0] <= array_variable;