문서 ID: 000082815 콘텐츠 형태: 문제 해결 마지막 검토일: 2018-04-10

JESD204B IP RTL 상태 제어 설계 예의 여러 리셋을 수행할 때 간헐적인 오류 어설션을 관찰하는 이유는 무엇입니까?

환경

  • 인텔® Quartus® II 구독 에디션
  • 인텔® Quartus® Prime Standard Edition
  • JESD204B 인텔® FPGA IP
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT

    중요 문제

    설명

    인텔® Arria® 10, Stratix® V, Arria® V 또는 Cyclone® V 장치에서 구현된 JESD204B IP RTL 상태 기계 제어 설계 예의 여러 리셋을 수행할 때, 오류로 인해 인터럽트 핀(jesd204_tx_int 및/또는 jesd204_rx_int)이 tx_err(0x60 rx_err0)에서 읽을 수 있는 인터럽트 핀 (0x60)을 관찰할 수 있습니다 . rx_err1 (0x64) 등록합니다.

    해결 방법

    인텔 Arria 10대 장치의 경우 Nios® II 프로세서 설계 예제를 대신 사용하십시오.

    Stratix V, Arria V 또는 Cyclone V 장치의 경우 RTL에 대한 다음 수정 사항을 수행하십시오.

    1. jesd204b_ed.sv 파일에서 최상위 모듈 jesd204b_ed 수정합니다.

    액티브 하이 리셋 와이어 정의:

    와이어 tx_link_rst_sync;

    와이어 tx_frame_rst_sync;

    와이어 rx_link_rst_sync;

    와이어 rx_frame_rst_sync;

    와이어 global_rst_sync;

     

    다음 와이어 할당에서 재설정의 극성을 수정합니다.

    트랜시버가 준비될 때까지 코어를 리셋 모드로 유지

    할당 global_rst_n_sync = ~global_rst_sync; global_rst_n_sync 할당 추가

    할당 tx_avs_rst_n = avs_rst_n;

    할당 rx_avs_rst_n = avs_rst_n;

    할당 tx_frame_rst_n = ~tx_frame_rst_sync;

    할당 rx_frame_rst_n = ~rx_frame_rst_sync;

    할당 tx_link_rst_n = ~tx_link_rst_sync;

    할당 rx_link_rst_n = ~rx_link_rst_sync;

     

    altera_reset_controller 활성 하이 리셋 동기화기입니다. 올바른 극성을 반영하도록 리셋 동기화기 인스턴스화의 입력 및 출력을 수정합니다.

    //

    전역 재설정용 동기화기 재설정(mgmt clock Domain)

    //

    altera_reset_controller #(

    . NUM_RESET_INPUTS(1),

    . OUTPUT_RESET_SYNC_EDGES("deassert"),

    . SYNC_DEPTH (2)

    ) u_avs_rst_sync (

    .reset_in0(~global_rst_n),

    .clk(mgmt_clk),

    .reset_out(global_rst_sync)

    );

     

    버스 신호인 wire_tx_ready 및 wire_rx_ready 대해 조금씩 수행하십시오.

    //

     

    전송 레이어 재설정용 동기화기 재설정(프레임 클럭 도메인)

    //

    altera_reset_controller #(

    . NUM_RESET_INPUTS(1),

    . OUTPUT_RESET_SYNC_EDGES("deassert"),

    . SYNC_DEPTH (2)

    ) u_tx_frame_rst_sync (

    .reset_in0(~(wire_frame_rst_n 및 wire_tx_ready))

    .clk(frame_clk),

    .reset_out(tx_frame_rst_n_sync)

    );

     

    altera_reset_controller #(

    . NUM_RESET_INPUTS(1),

    . OUTPUT_RESET_SYNC_EDGES("deassert"),

    . SYNC_DEPTH (2)

    ) u_rx_frame_rst_sync(

    .reset_in0(~(wire_frame_rst_n 및 wire_rx_ready))

    .clk(frame_clk),

    .reset_out(rx_frame_rst_n_sync)

    );

     

    //

    기본 코어 재설정용 동기화기 재설정(링크 클럭 도메인)

    //

    altera_reset_controller #(

    . NUM_RESET_INPUTS(1),

    . OUTPUT_RESET_SYNC_EDGES("deassert"),

    . SYNC_DEPTH (2)

    ) u_tx_link_rst_sync (

    .reset_in0(~(wire_link_rst_n 및 wire_tx_ready))

    .clk(link_clk),

    .reset_out(tx_link_rst_n_sync)

    );

       

    altera_reset_controller #(

    . NUM_RESET_INPUTS(1),

    . OUTPUT_RESET_SYNC_EDGES("deassert"),

    . SYNC_DEPTH (2)

    ) u_rx_link_rst_sync (

    .reset_in0(~(wire_link_rst_n 및 wire_rx_ready))

    .clk(link_clk),

    .reset_out(rx_link_rst_n_sync)

    );

     

    ----------------------------------------

     

    2. 모듈 control_unit(control_unit.sv)에서 frame_rst, link_rst, avs_rst 및 xcvr_rst 대한 재설정 값을 변경 합니다.

    //

    기본 코어 트랜시버 리셋용 출력 레지스터

    //

    항상 @ (포즈 clk 또는 negedge rst_n)

    시작

    (~rst_n) 시작하는 경우

    frame_rst

    link_rst

    avs_rst

    xcvr_rst

    끝 다른 시작

     

    이 문제에 대한 계획된 수정 사항은 없습니다.

    관련 제품

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

    인텔® Arria® 10 FPGA 및 SoC FPGA
    Stratix® V FPGA
    Arria® V FPGA 및 SoC FPGA
    Cyclone® V GX FPGA
    Cyclone® V GT FPGA
    Cyclone® V SX SoC FPGA
    Cyclone® V ST SoC FPGA

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