문서 ID: 000080843 콘텐츠 형태: 문제 해결 마지막 검토일: 2021-05-05

PCI Express* 트랜잭션 레이어 구성 공간의 인텔® Arria® 10 및 인텔® Cyclone® 10 Avalon® -ST 인터페이스가 안정적이지 않은 이유는 무엇입니까?

환경

  • 인텔® Quartus® Prime Pro Edition
  • 인텔® Quartus® Prime Standard Edition
  • PCI Express*용 인텔® Arria® 10 Cyclone® 10 하드 IP
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    설명

    구성 공간 레지스터 액세스 타이밍에 대한 UG-01145_avst 2017.05.15 - 6.12.1의 잘못된 참조 코드로 인해 인텔® Arria® 10 및 인텔® Cyclone® 10 PCIe* 트랜잭션 레이어 구성 공간 액세스가 안정되지 않습니다. tl_cfg_* 인터페이스에는 다중 사이클 제약 조건이 적용되지만 코드가 일치하지 않기 때문입니다.

    코드는 다음과 같습니다.

    항상 @(포즈 coreclkout_hip)

    시작

    주소 변경 감지

    cfg_addr_reg[3:0] <= tl_cfg_add[3:0];

    cfgctl_addr_change <= cfg_addr_reg[3:0] != tl_cfg_add[3:0];

    ...

    해결 방법

    이 문제를 해결하려면 참조 코드를 UG-01145_avst | 업그레이드하십시오. 2019.05.22 - 구성 공간 레지스터 액세스 타이밍에 대한 5.12.1.

    멀티 사이클 타이밍 위험을 방지하기 위해 파이프라인이 한 개 더 추가됩니다.

    코드는 다음과 같습니다.

    항상 @(포즈 coreclkout_hip)

    시작

    tl_cfg_add_reg <= tl_cfg_add[0];

    tl_cfg_add_reg2 <= tl_cfg_add_reg;

    주소 변경을 감지하여 입력32비트 데이터를 샘플링하기 위해 스트로브를 생성합니다.

    항상 @(포즈 coreclkout_hip)

    시작

    cfgctl_addr_change <= tl_cfg_add_reg2 != tl_cfg_add_reg;

    cfgctl_addr_change2 <= cfgctl_addr_change;

    cfgctl_addr_strobe <= cfgctl_addr_change2;

    관련 제품

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

    인텔® Cyclone® 10 GX FPGA
    인텔® Arria® 10 FPGA 및 SoC FPGA

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