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