소스 동기 입력 인터페이스는 시스템 동기 입력 인터페이스와 유사한 방식으로 제한됩니다. FPGA 클럭을 수신하고 해당 클럭을 사용하여 입력 데이터를 래치합니다. 에지 정렬된 소스 동기화 인터페이스에서 클럭 전환은 데이터 전환과 동시에 발생합니다. 그림 1은 샘플 소스 동기 입력 인터페이스를 보여줍니다.
다음 단계를 사용하여 에지 정렬 소스 동기화 입력 인터페이스를 제한합니다.
-
가상, 기본 및 생성된 클럭 생성
-
입력 지연 제약 조건 추가
-
잘못된 경로 예외를 추가하여 타이밍 분석 및 보고에서 잘못된 경로를 제외합니다.
이러한 단계 또는 아래에 설명된 계산 및 제약 조건에 대한 자세한 내용은 href="/Literature/an/an433.pdf">AN 433: 소스 동기화 인터페이스(PDF)의 제한 및 분석(PDF)을 참조하십시오.
시계
가상 클럭은 데이터를 FPGA 전송하기 위해 데이터 레지스터를 구동하는 외부 장치의 클럭을 모델로 합니다.
FPGA 입력 포트에 기본 클럭이 필요합니다. 기본 클럭은 FPGA 클럭 입력 시 클럭 특성을 설명합니다.
생성된 클럭은 모든 위상 잠금 루프(PLL) 출력에 필요합니다. 에지 정렬 소스 동기화 입력 인터페이스에서 PLL은 데이터 캡처 레지스터의 내부 타이밍 요구 사항을 충족하기 위해 수신된 클럭을 90도 위상 이동해야 합니다.
입력 지연 제약 조건
최대 기울기 사양을 사용하여 입력 지연 값을 계산할 수 있습니다. 최대 왜곡 사양은 데이터 버스의 개별 비트가 FPGA 도착할 수 있는 시간 변동을 나타냅니다.
입력 최대 지연 값은 최대 왜곡 값입니다.
입력 최소 지연 값은 -최대 기울기 값입니다.
False Path 예외
이 에지 정렬 예제에서는 상승 및 하강 소스 및 대상 클럭 전환 시 데이터가 전송됩니다. 데이터가 반대쪽 에지 클럭 전환에서 전송되지 않기 때문에 거짓 경로 예외를 사용하여 상승 및 낙하 클럭 전환을 줄입니다.
샘플 SDC 파일
# 외부 장치에서 데이터 클럭을 설명하는 가상 클럭 만들기 create_clock -name virt_clk -period 10 # FPGA 입력 포트에 기본 클럭 만들기, 10ns 기간 create_clock -name input_clock -period 10 [get_ports clk_in] # PLL 출력에 생성 클럭 생성 create_generated_clock -name data_clock -source [get_pins pll|inclk[0]] \ -phase 90 [get_pins pll|clk[0]] # 최대 추가 최소 입력 지연 제약 조건 # +/- 250ps의 왜곡 요구 사항 가정 # set_input_delay -max -clock virt_clk 0.250 [get_ports data_in*] set_input_delay -min-clock virt_clk -0.2 위에 나열된 입력 지연 값에 대한 방정식을 사용하십시오. 50 [get_ports data_in*] set_input_delay -max-clock virt_clk -clock_fall \ 0.250 [get_ports data_in*] -set_input_delay -min-clock virt_clk -clock_fall \ -0.250 [get_ports data_in*] -add # 크로스 클럭 전송 set_false_path -setup -end -rise_from [get_clocks virt_clk] \ -fall_to [get_clocks data_clock] set_false_path -setup -end -fall_from [get_clocks virt_clk] \ -rise_to [] get_clocks data_clock] set_false_path -hold -end -rise_from [get_clocks virt_clk] \ -rise_to [get_clocks data_clock] set_false_path -hold -end -fall_from [get_clocks virt_clk] \ -fall_to [get_clocks data_clock]