예. Stratix® 10 장치를 사용할 때 에뮬레이트된 트루 듀얼 포트(TDP) RAM에 사용되는 DCFIFO에서 여러 설정 타이밍 위반이 발생할 수 있습니다.
설정 타이밍 위반은 다음과 같은 노드에서 관찰될 수 있습니다.
- <에뮬레이트된 TDP RAM 인스턴스 경로>|ram_2port_0|fifo_wrapper_in|dcfifo_in|dcfifo_component|auto_generated|rdptr_g[<number>]
- 에뮬레이트된 TDP RAM 인스턴스에 대한 < 경로>|ram_2port_0|fifo_wrapper_out|dcfifo_out|dcfifo_component|auto_generated|ws_dgrp|dffpipe1|dffe3a[<number>]
이러한 설정 타이밍 슬랙스는 아래 해상도에 표시된 지침을 사용하여 DCFIFO의 깊이를 줄임으로써 개선할 수 있습니다.
에뮬레이트된 TDP RAM에서 DCFIFO의 깊이를 줄이려면 다음 단계를 사용합니다.
- Quartus® Prime Pro Edition의 프로젝트 네비게이터에 계층 구조 탭을 표시합니다.
- 설계 계층을 확장하고 에뮬레이트된 TDP RAM 인스턴스에서 다음 인스턴스를 찾습니다.
- ram_2port_0 > fifo_wrapper_in > dcfifo_in
- ram_2port_0 > fifo_wrapper_out > dcfifo_out - dcfifo_in 인스턴스와 dcfifo_out 인스턴스의 엔터티 이름을 기억해 둡니다.
다음 예제 그림에서는 노란색 사각형으로 묶인 엔터티 이름을 기억해 둡니다.
- 인스턴스 dcfifo_in의 경우 "ram2p_fifo_1910_sno4eky"
- 인스턴스 dcfifo_out의 경우 "ram2p_fifo_1910_3zzux5y"
- 프로젝트 네비게이터의 파일 탭으로 이동합니다.
- 를 확장합니다 . 에뮬레이트된 TDP RAM의 ip 파일을 찾아 <dcfifo_in>.v의 엔티티 이름과 <dcfifo_out>.v.의 엔티티 이름을 찾습니다.
파일 탭의 다음 예제 그림에서 노란색 사각형으로 묶인 파일이 편집됩니다.
- <dcfifo_in>.v.의 엔티티 이름을 엽니다.
- defparam 선언에서 다음 매개 변수를 찾습니다.
- dcfifo_component.lpm_numwords = <lpm_numwords 숫자>
- dcfifo_component.lpm_widthu = <lpm_widthu 숫자>
- dcfifo_component.lpm_numwords 및 dcfifo_component.lpm_widthu를 변경합니다.
- dcfifo_component.lpm_numwords는 에뮬레이트된 TDP RAM IP의 클럭 B(고속 클럭)를 클럭 A(저속 클럭)로 나눈 클럭 주파수 비율보다 커야 합니다.
- dcfifo_component.lpm_numwords는 4보다 커야 합니다.
- dcfifo_component.lpm_numwords는 2^dcfifo_component.lpm_widthu여야 합니다.
예를 들어
- 클럭 B 주파수/클럭 A 주파수의 비율이 5인 경우 최소 dcfifo_component.lpm_numword는 8(2^3)이어야 합니다.
- dcfifo_component.lpm_numword가 8(2^3)이면 dcfifo_component.lpm_widthu는 3입니다. - 파일 저장
- dcfifo_out>.v의 엔터티 이름 <을 열고 7-9단계를 반복합니다
에뮬레이트된 TDP RAM IP가 재생성되면 위의 파일이 재생성되고 매개변수도 기본 번호로 복원됩니다.