문서 ID: 000074592 콘텐츠 형태: 문제 해결 마지막 검토일: 2012-09-04

Quartus II 소프트웨어가 SystemVerilog에서 서명된 압축 배열 변수를 올바르게 합성하지 않는 이유는 무엇입니까?

환경

  • 인텔® Quartus® II 구독 에디션
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    설명

    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;

    관련 제품

    이 문서는 다음 항목에 적용됩니다. 1 제품

    인텔® 프로그래밍 가능 장치

    이 페이지의 콘텐츠는 원본 영어 콘텐츠에 대한 사람 번역 및 컴퓨터 번역의 조합으로 완성되었습니다. 이 콘텐츠는 편의와 일반적인 정보 제공을 위해서만 제공되었으며, 완전하거나 정확한 것으로 간주되어선 안 됩니다. 이 페이지의 영어 버전과 번역 간 모순이 있는 경우, 영어 버전이 우선적으로 적용됩니다. 이 페이지의 영어 버전을 확인하십시오.