OpenCL™ - BSP - 지원 센터
OpenCL™ BSP 지원 페이지는 OpenCL™ BSP를 계획, 설계 및 구현하는 방법에 대한 정보를 제공할 뿐만 아니라 디버깅을 위한 몇 가지 팁과 요령을 알아봅니다.
1. 참조 디자인 수정
시작
BSP 개발을 시작하려면 다음 단계를 수행해야 합니다.
- 인텔® FPGA SDK for OpenCL™ and 인텔® Quartus® 소프트웨어가 설치되어 있는지 확인합니다.
- OpenCL™ 참조 BSP와 일치하는 도구 버전을 사용할 수 있는지 확인합니다.
- 전체 인텔® Quartus® 소프트웨어 라이선스에 대한 액세스를 확인합니다.
참조 디자인 선택
맞춤형 플랫폼에 적합한 참조 디자인을 선택하십시오.
인텔은 다음 플랫폼에 대한 OpenCL™ 참조 BSP 설계를 지원합니다. 특정 플랫폼에 대한 OpenCL™ BSP 포팅 가이드를 볼 수도 있습니다.
- Stratix® V PCIe* 개발 키트 - OpenCL™ Stratix® V용 인텔® FPGA SDK 네트워크 참조 플랫폼 포팅 가이드 보기
- 인텔® Arria® 10 PCIe 개발 키트 - OpenCL™용 인텔® FPGA SDK 보기 인텔® Arria® 10 GX FPGA 개발 키트 참조 플랫폼 포팅 가이드
- 인텔® Arria® 10 SoC 개발 키트 - OpenCL™용 인텔® FPGA SDK 보기 인텔® Arria® 10 SoC 개발 키트 참조 플랫폼 포팅 가이드
- 인텔® Stratix® 10 PCIe* 개발 키트 - OpenCL™용 인텔® FPGA SDK 보기 인텔® Stratix® 10 GX FPGA 개발 키트 참조 플랫폼 포팅 가이드
참조 디자인 수정
OpenCL BSP 포팅 가이드의 단계에 따라 플랫폼에서 참조 디자인 수정을 시작합니다. 디자인 변경이 완료된 후 첫 번째 커널을 컴파일하는 것이 좋습니다. 일반적으로 BSP의 다양한 인터페이스를 테스트하는 Boardtest라는 커널을 사용합니다. Boardtest 및 일반 BSP 구축 단계에 대한 정보는 다음 가이드에 언급되어 있습니다.
OpenCL™ 사용자 지정 플랫폼 툴킷용 인텔® FPGA SDK 사용 설명서(PDF)
BSP 구축을 위한 권장 단계:
- "플랫" 흐름에서 Boardtest를 컴파일하여 타이밍 닫힌 ".aocx" 파일을 생성합니다.
- Boardtest를 실행하여 ".aocx"의 유효성을 검사하고 테스트에서 인터페이스 대역폭 기대치를 교차 확인합니다.
- 보장된 타이밍 마감 OpenCL BSP를 생성하기 위해 "기본" 빌드에 대한 평면도 작업을 시작합니다.
2. 평면도 및 타이밍 폐쇄
시작
OpenCL에서는 프로젝트의 두 가지 다른 개정판(플랫 및 기본 개정판)에 대한 타이밍 작업을 해야 합니다. 플랫 리비전은 파티션이나 로직 잠금 영역이 없는 버전으로, hardware/flat.qsf 파일을 사용하여 구현합니다. 기본 개정판은 분할 및 논리 잠금을 포함하고 hardware/base.qsf 파일을 사용하여 구현하는 개정판입니다. 좋은 시작으로 먼저 타이밍 클린 플랫 리비전을 얻은 다음 평면도 작업을 수행하여 디자인의 타이밍 클린 기본 리비전을 얻는 것이 좋습니다.
컴파일 흐름에 대한 자세한 내용은 인텔® FPGA SDK for OpenCL Board Support Package 평면도 최적화 가이드의 OpenCL™ ™ BSP 컴파일 흐름 섹션을 참조하십시오.
평면도 파티션
플랫 컴파일부터 시작하여 BSP의 모든 주요 구성 요소(특히 PCIe* 또는 DDR 메모리와 같이 I/O 연결이 있는 지적 재산권(IP) 블록)가 자연스럽게 배치되는 위치를 파악합니다.
이에 대한 자세한 지침은 인텔® FPGA SDK for OpenCL 보드 지원 패키지 평면도 최적화 가이드의 OpenCL™ ™ BSP 평면도 섹션을 참조하십시오.
자세한 내용은 부분 재구성 사용자 가이드를 참조할 수도 있습니다.
PR 지역 수정
기본 컴파일 중에 freeze_wrapper_inst|kernel_system_inst이 포함된 커널의 Logic Lock 영역으로 시작합니다. 플랫 컴파일 및 칩 플래너를 사용하여 BSP 하드웨어의 크기와 위치를 식별합니다. Logic Lock Region(논리 잠금 영역)을 사용하여 kernel_system에 더 많은 리소스를 예약하려고 합니다.
이에 대한 자세한 지침은 인텔® FPGA SDK for OpenCL 보드 지원 패키지 평면도 최적화 가이드의 OpenCL™ ™ BSP 평면도 섹션을 참조하십시오.
타이밍 위반 수정
설계에서 타이밍 위반을 해결하려면 IP 코어 사이에 파이프라인 단계를 추가해야 할 수 있습니다.
자세한 지침은 다음 링크를 참조하십시오.
설정/보류 제약 조건
출력 디렉토리의 .failing_paths.rpt 및 .failing_clocks.rpt에는 설계의 주요 오류가 나열됩니다. 일부 경로에서 일관된 오류가 발생하는 경우 /hardware/top.sdc 파일 내에서 해당 중요 경로에 대한 최소 또는 최대 지연 제약 조건을 설정할 수 있습니다.
관련 문제의 경우 지식 데이터베이스 페이지에서 다음 해결 방법 방법(Arria 10에서 경쟁 보류 및 설정 위반에 대한 타이밍을 닫는 방법)을 참조할 수 있습니다.
3. MMD 및 OpenCL™ 유틸리티
MMD 소스 개발 또는 수정
MMD 소프트웨어 라이브러리는 호스트와 가속 보드 간의 기본 입/출력(I/O)을 구현하고 열기, 읽기 및 쓰기와 같은 인터페이스를 제공합니다. MMD 라이브러리 드라이버는 Windows* 64 또는 Linux* 64 형식으로 저장되고 소스 코드는 소스 폴더에 저장됩니다.
자세한 내용은 인텔® FPGA SDK for OpenCL™ Custom Platform Toolkit 사용 설명서의 MMD 라이브러리 만들기 섹션을 참조하십시오.
유틸리티 지원
OpenCL™ 유틸리티를 사용하면 OpenCL용 인텔® FPGA SDK를 사용하여 보드 액세스를 수행할 수 있습니다™. 여기에는 aocl 설치, aocl 제거, aocl 진단, aocl 프로그램 및 aocl 플래시가 포함됩니다.
자세한 내용은 인텔® FPGA SDK for OpenCL Custom Platform Toolkit 사용 설명서의 인텔® FPGA SDK for OpenCL™ ™ Utilities 지원 제공 섹션을 참조하십시오.
소프트웨어 유틸리티와 MMD 계층을 생성한 후 하드웨어 설계를 테스트해야 합니다. 표준 방법은 boardtest 커널을 생성하고 보드에서 실행하는 것입니다.
자세한 내용은 인텔® FPGA SDK for OpenCL™ Custom Platform Toolkit 사용 설명서의 하드웨어 설계 테스트 섹션을 참조하십시오.
4. 디버그
보드 지원
이 섹션은 인텔® FPGA 개발 키트 또는 자체 사용자 지정 보드를 가져오는 동안 문제를 해결하는 데 도움이 됩니다.
보드를 가져오는 동안 직면할 수 있는 몇 가지 알려진 문제를 알아보려면 AN 807의 다음 섹션을 참조하십시오. OpenCL™용 인텔® FPGA SDK용 인텔® Arria® 10 GX FPGA 개발 키트 구성 애플리케이션 참고:
평면도 및 타이밍
정적 로직에 최소 영역을 사용하고 OpenCL 커널에 더 많은 공간을 남겨두는 방법에 대한 팁과 요령은 AN 824: OpenCL™ 보드 지원 패키지용 인텔® FPGA SDK 평면도 최적화 가이드를 참조할 수 있습니다.™
런타임 디버그
호스트 응용 프로그램을 실행하는 동안 더 많은 디버그 정보를 얻도록 설정할 수 있는 특정 환경 변수가 있습니다. 이는 인텔® FPGA SDK for OpenCL™ 특정 환경 변수로, 사용자 지정 플랫폼 디자인의 문제를 진단하는 데 도움이 될 수 있습니다.
다음 표에서는 이러한 모든 환경 변수를 나열하고 자세히 설명합니다.
환경 변수 |
설명 |
ACL_HAL_디버그 |
이 변수를 1에서 5 로 설정하여 MMD 계층과 직접 인터페이스하는 HAL(하드웨어 추상화 계층)의 디버그 출력을 높입니다. |
ACL_PCIE_DEBUG |
이 변수를 1 - 10000 값으로 설정하여 MMD의 디버그 출력을 늘립니다. 이 변수 설정은 버전 ID 레지스터를 올바르게 읽고 UniPHY IP 코어가 보정되었는지 확인하는 데 유용합니다. |
ACL_PCIE_JTAG_CABLE |
케이블 번호를 지정하는 디폴트 quartus_pgm 인수를 무시하려면 이 변수를 설정합니다. 기본값은 케이블 1입니다. 인텔® FPGA Download Cable 여러 개가 있는 경우 이 변수를 설정하여 특정 케이블을 지정할 수 있습니다. |
ACL_PCIE_JTAG_DEVICE_INDEX |
FPGA 장치 인덱스를 지정하는 기본 quartus_pgm 인수를 재정의하려면 이 변수를 설정합니다. 기본적으로 이 변수의 값은 1입니다. FPGA가 JTAG 체인의 첫 번째 장치가 아닌 경우 값을 사용자 지정할 수 있습니다. |
ACL_PCIE_USE_JTAG_PROGRAMMING |
MMD가 부분 재구성 대신 JTAG 케이블을 사용하여 FPGA 다시 프로그래밍하도록 하려면 이 변수를 설정합니다. |
ACL_PCIE_DMA_USE_MSI |
Windows*에서 직접 메모리 액세스(DMA) 전송에 MSI를 사용하려면 이 변수를 설정합니다. |
신호 탭 디버그
OpenCL™ 설계는 시뮬레이션 기능을 지원하지 않으므로 신호 탭 로직 분석기를 사용하는 것이 이러한 설계를 디버깅하는 가장 좋은 방법입니다.
커널 중단이 있거나 메모리 인터페이스 또는 aocl 진단 실패와 관련된 문제가 있는 설계를 디버깅하려면 신호 탭 로직 분석기를 사용하는 것이 좋습니다.
신호 탭 로직 분석기에 대한 자세한 내용은 디버그 도구 사용자 가이드의 신호 탭 로직 분석기를 사용한 설계 디버깅 섹션을 참조하십시오.
신호 탭 파일을 BSP 설계에 추가하려면 다음 단계를 수행합니다
1. Signal Tap GUI를 열고 분석할 모든 신호를 추가합니다.
2. STP 파일을 인텔® Quartus® 소프트웨어 프로젝트 파일과 동일한 디렉토리에 저장합니다.
3. 다음 명령줄을 flat.qsf에 추가합니다.
- set_global_assignment -name ENABLE_SIGNALTAP 켜짐
- set_global_assignment -name USE_SIGNALTAP_FILE <file_name>.stp
- set_global_assignment -name SIGNALTAP_FILE <file_name>.stp
4. AOCL 명령줄에서 커널을 다시 컴파일합니다.
지식 데이터베이스 솔루션
인텔® Arria® 10 기기
인텔® Stratix® 10 기기
알려진 문제
추가 자료
디버그 도구 사용 설명서의 시스템 내 소스 및 프로브를 사용한 설계 디버깅 섹션
5. 추천 도서 및 교육
OpenCL™ 비디오
제목 |
설명 |
---|---|
이 비디오는 Windows* 시스템을 사용하여 Cyclone® V SoC에서 OpenCL HelloWorld 및 OpenCL™™ 고속 푸리에 변환(FFT)의 두 가지 응용 프로그램을 실행하기 위한 기본 절차에 대해 설명합니다. |
|
이 비디오에서는 Windows* 시스템을 사용하여 Cyclone® V SoC에서 OpenCL HelloWorld와 OpenCL™™ FFT라는 두 가지 응용 프로그램을 실행하는 기본 절차에 대해 설명합니다. |
|
이 비디오에서는 Windows* 시스템을 사용하여 Cyclone® V SoC에서 OpenCL HelloWorld와 OpenCL™™ FFT라는 두 가지 응용 프로그램을 실행하는 기본 절차에 대해 설명합니다. |
|
이 비디오에서는 Windows* 시스템을 사용하여 Cyclone® V SoC에서 OpenCL HelloWorld와 OpenCL™™ FFT라는 두 가지 응용 프로그램을 실행하는 기본 절차에 대해 설명합니다. |
|
이 비디오에서는 Windows* 시스템을 사용하여 Cyclone® V SoC에서 OpenCL HelloWorld와 OpenCL™™ FFT라는 두 가지 응용 프로그램을 실행하는 기본 절차에 대해 설명합니다. |
|
이 비디오에서는 고객이 잠재적으로 이 기능을 사용하여 OpenCL™ 커널 코드에서 사용자 지정 처리 블록(RTL)을 가질 수 있는 이유를 설명합니다. 이 동영상은 make 파일, 구성 파일과 같은 디자인 예제를 설명하고 컴파일 흐름을 설명합니다. 이 비디오에는 설계 예제의 데모도 나와 있습니다. |
|
이 비디오에서는 인텔 FPGA SoC FPGAs 대상으로 하는 OpenCL™ 커널 및 호스트 코드를 개발하는 데 필요한 도구를 다운로드, 설치 및 구성하는 방법을 보여줍니다. |
|
인텔 FPGA SoC FPGA(Linux 호스트)의 OpenCL™ – 2부 – 에뮬레이터를 사용하여 벡터 추가 예제 실행 |
이 비디오에서는 인텔 FPGA OpenCL에 기본 제공되는 에뮬레이터를 대상으로 하는 예제 OpenCL™™ 애플리케이션을 다운로드하고 컴파일하는 방법을 보여 줍니다. |
인텔 FPGA SoC FPGA(Linux 호스트)의 OpenCL™ – 3부 – SoC FPGA용 커널 및 호스트 코드 컴파일 |
이 비디오에서는 Cyclone® V SoC FPGA의 FPGA 및 프로세서를 대상으로 하는 OpenCL™ 커널 및 호스트 코드를 컴파일하는 방법을 보여줍니다. |
이 비디오에서는 OpenCL™ 예제를 실행하고 보드에서 호스트 코드와 커널을 실행하도록 Cyclone® V SoC 보드를 설정하는 방법을 보여줍니다. |
6. 도움 받기
OpenCL 인증 서비스 제공업체
인텔은 인텔® FPGA 보드용 OpenCL™ 보드 지원 패키지 개발을 지원할 수 있는 다음과 같은 인증 서비스 공급자를 추천합니다. 이러한 제공업체는 인텔 FPGA 보드를 위한 고품질 OpenCL 보드 지원 패키지, 드라이버 및 설계 마이그레이션을 개발하는 데 광범위한 경험을 가지고 있습니다.
테라식 Inc
OpenCL 및 OpenCL 로고는 Khronos의 승인하에 사용되는 Apple Inc.의 상표입니다.
이 페이지의 콘텐츠는 원본 영어 콘텐츠에 대한 사람 번역 및 컴퓨터 번역의 조합으로 완성되었습니다. 이 콘텐츠는 편의와 일반적인 정보 제공을 위해서만 제공되었으며, 완전하거나 정확한 것으로 간주되어선 안 됩니다. 이 페이지의 영어 버전과 번역 간 모순이 있는 경우, 영어 버전이 우선적으로 적용됩니다. 이 페이지의 영어 버전을 확인하십시오.