외부 PHY 지연 기능이 있는 삼중 속도 이더넷의 제약 조건 RGMII 인터페이스

author-image

기준

이 설계 예의 목적은 TSE_RGMII 제약하는 방법을 보여주는 것입니다. 이 설계 예는 외부 PHY의 TX_CLK 및 RX_CLK 지연 기능(90도 이동)이 켜져 있는 경우에만 적용됩니다. 10MHz, 100MHz, 1000MHz인 3가지 속도에서 실행할 수 있습니다.

사용자가 트리플 스피드 이더넷 지적 재산권(IP) 코어, ALTDDIO, ALTPLL, TimeQuest 및 정적 타이밍 분석 및 DDR(이중 데이터 속도) 소스 동기화 개념에 익숙하다는 가정이 있습니다.

제약 방법

  1. 인터페이스 제약 방법( 시스템 중심 방법 또는 인텔® FPGA 중심 방법)을 선택합니다.
    • set_input_delay 및 set_output_delay 명령의 지연 값을 계산하려면 다른 수식이 필요합니다.
    • 이 설계 예시 사용 시스템 중심 방법
  2. 클럭과 데이터 사이의 정렬 유형을 결정할 때 외부 PHY의 지연 기능(±90도 이동)을 켜거나 끌지 여부를 결정합니다.
    • 90도 시프트 -> 센터 정렬
    • 시프트 -> 에지 정렬 없음
    • 이 설계 예는 TX의 지연 기능과 외부 PHY의 RX가 켜져 있는 경우(90도 변속)에만 적용됩니다.
  3. 원하는 시작 및 래치 관계를 결정합니다.
    • 4가지 유형의 시작 및 래치 관계가 있습니다. 라이저 라이즈(RR), Rise-Fall(RF), Fall-Rise(FR) 및 Fall-Fall(FF) 관계입니다.
    • RGMII 사양에 따르면 LSB의 데이터[3:0]가 먼저 상승 에지에서 전송되고 MSB 데이터 [7:4]가 전송되고 그 다음에 떨어지는 에지가 전송됩니다.
    • RGMII 인터페이스를 탑재한 TSE의 설계는 먼저 상승하는 에지에서 데이터를 캡처한 다음 에지가 떨어지는 것을 포착합니다. 이는 시계가 -90도 대신 +90도로 이동되어야 한다는 것을 의미합니다.
    • 원하는 설정 시작 및 래치 관계(화살표 빨간색): RR 및 FF
    • 원하는 보류 실행 및 래치 관계(파란색 화살표): FR 및 RF
  4. RGMII 인터페이스를 제약합니다. SDC(SDC)는 설계 및 응용 프로그램을 기반으로 합니다. 그러나 RGMII 인터페이스에 필요한 몇 가지 주요 SDC가 있습니다.

그림 2. 클럭 및 래치 클럭 관계 시작

TX

  • create_clock
    • 외부 PHY로 전송하기 전에 인텔® FPGA 내부의 데이터를 래치하는 클럭
  • create_generated_clock:
    • 외부 PHY에서 데이터를 래치하는 90도 위상 이동이 있는 클럭
  • set_false_path:
    • 타이밍 분석에서 분석하지 않는 것은 원치 않는 관계입니다. 이 설계 예에서 설정에 대한 원치 않는 관계는 RF 및 FR이며 보류에 대한 원치 않는 관계는 RR 및 FF입니다.

set_false_path -fall_from [data_clock] -rise_to [output_clock] -setup
set_false_path -rise_from [data_clock] -fall_to [output_clock] -setup
set_false_path -rise_from [data_clock] -rise_to [output_clock] -hold
set_false_path -fall_from [data_clock] -fall_to [output_clock] -hold

 

  • set_output_delay

set_output_delay -clock output_clock\
-max [expr $data_delay_max + $tsu - $clk_delay_min] \
[get_ports data_out] \
-add_delay

set_output_delay -clock output_clock\
-max [expr $data_delay_max + $tsu - $clk_delay_min] \
[get_ports data_out] \
-clock_fall \
-add_delay

set_output_delay -clock output_clock \
-min [expr $data_delay_min - $th - $clk_delay_max] \
[get_ports data_out ] \
-add_delay

set_output_delay -clock output_clock \
-min [expr $data_delay_min - $th - $clk_delay_max] \
[get_ports data_out ] \
-clock_fall \
-add_delay

 

TSE_RGMII RX

  • create_clock:
    • 인텔® FPGA 전송하기 전에 외부 PHY 내부의 데이터를 래치하는 가상 클럭
  • _clock 생성합니다.
    • 인텔® FPGA 내부의 데이터를 래치하는 90도 위상 시프트가 있는 클럭
  • set_false_path:
    • 타이밍 분석에서 분석하지 않는 것은 원치 않는 관계입니다. 이 설계 예에서 설정에 대한 원치 않는 관계는 RF 및 FR이며 보류에 대한 원치 않는 관계는 RR 및 FF입니다.

set_false_path -fall_from [data_clock] -rise_to [output_clock] -setup
set_false_path -rise_from [data_clock] -fall_to [output_clock] -setup
set_false_path -rise_from [data_clock] -rise_to [output_clock] -hold
set_false_path -fall_from [data_clock] -fall_to [output_clock] -hold

 

검증 방법

소스 동기화 제약 조건이 올바르게 제한되었는지 확인하기 위해 체크 인해야 할 몇 가지 보고서가 있습니다.

  1. 클럭 보고서
    • 3 클럭 주파수(125MHz, 25MHz 및 2.5MHz) 및 해당 단계를 확인하십시오.
    • 코어 TX 클럭(인텔® FPGA): 125 MHz, 25 MHz 및 2.5 MHz
    • RGMII_TX_Clock(외부 PHY): 125MHz +90º, 25MHz +90º, 2.5MHz +90º
    • RGMII_RX_Clock(인텔® FPGA): 125MHz +90º, 25MHz +90º, 2.5MHz +90º
    • RGMII_RX_Virtual_Clock(외부 PHY) : 125 MHz, 25 MHz 및 2.5 MHz
  2. 클럭 전송 보고서
    • 설정의 모든 관계를 확인하고 클럭 전송을 위해 RGMII 인터페이스의 시작 래치 관계를 유지하십시오.
    • 원하는 설정: RR 및 FF
    • 원하는 보류: FR 및 RF
  3. 모든 I/O 타이밍 보고서
    • 원하는 설정에 따라 실패한 경로 및 시작 래치 관계가 있는지 확인하고 시작 래치 관계를 유지합니다.
      • 설치 및 보류를 위해 등록할 입력
      • 설치 및 보류를 위해 출력에 등록

노트:

  1. TSE_10_1_RGMII_SDC 메가 기능에서 생성한 SDC 파일입니다. RGMII SDC 제약 조건은 다루지 않습니다. RGMII SDC 제약 조건은 RGMII SDC에 포함됩니다.
  2. TSE_10_1_RGMII_SDC.sdc 파일의 수정:
    • RGMII.sdc의 pll에 대한 create_gererated_clock 명령을 사용하지 못하게 되므로 derived_pll_clock(246호)에 댓글을 달십시오.
    • 디자인에 따라 59호선과 60줄에 FF_TX_CLK 및 FF_RX_CLK 이름을 변경합니다.
  3. 타이밍 분석 중에 무시될 수 있는 경고가 있습니다. 자세한 내용은 TSE_RGMII_With_SDC.qar에 있는 readme.txt 를 참조하십시오.
  4. 이 예에 사용된 파일 다운로드: TSE_RGMII_With_SDC.qar

이 설계의 사용은 인텔® 설계 예시 라이센스 계약의 이용 약관에 따라 적용됩니다.

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