오픈CL™ - BSP - 지원 센터

인텔® 오픈CLFPGA SDK™ 통해 소프트웨어 개발자는 인텔 CPU 및 FPGA를 통해 이질적인 플랫폼을 타겟팅하여 애플리케이션을 가속화할 수 있습니다. 인텔® 오픈CL용 FPGA SDK™ 인텔® 쿼터스® 프라임 소프트웨어 또는 별도의 패키지로 설치할 수 있습니다. 아래 링크에서 OpenCL용 인텔 FPGA SDK를 다운로드할 수 있습니다.

오픈CL을 위해 인텔® FPGA SDK 다운로드™

오픈CL™ BSP 지원 페이지에 오신 것을 환영합니다! 여기에서 OpenCL™ BSP를 계획, 설계 및 구현하는 방법에 대한 정보를 찾을 수 있을 뿐만 아니라 디버깅 을 위한 몇 가지 팁과 트릭을 배울 수 있습니다.

이 페이지는 OpenCL™ 보드 지원 패키지(또는 OpenCL 커널/알고리즘 을 설계/마이그레이션)를 개발하는 과정을 처음부터 끝까지 안내하도록 설정되어 있습니다. 참조 디자인 수정 섹션에서는 인텔® 참조 플랫폼을 사용자 지정 플랫폼으로 수정하는 방법과 타이밍 오류 없이 플랫 디자인을 컴파일하는 방법에 대한 리소스를 찾을 수 있습니다. 플로어기획 및 타이밍 폐쇄 섹션은 설계를 분할하고 최대 작동 빈도를 달성하는 방법에 대한 지침을 제공합니다. 또한 BSP를 구축하는 동안 설계 타이밍을 닫고 타이밍이 보장되는 기술을 설명합니다. MMD 및 OpenCL 유틸리티 섹션은 MMD를 다시 빌드하는 단계를 제공하고 OpenCL 유틸리티에 대한 자세한 정보를 제공합니다. 디버그 섹션에서발생할 수 있는 디버깅 문제에 대한 몇 가지 도구와 리소스를 제공합니다. BSP 개발 프로세스 중에 도움이 되는 모든 섹션에 나열된 문서 및 교육 과정이 있습니다.

1. 참조 설계 수정

시작

BSP 개발을 시작하려면 다음 단계를 수행해야 합니다.

  1. 오픈CL™ 및 인텔® 쿼투스® 소프트웨어용 인텔® FPGA SDK가 설치되어 있는지 확인합니다.
  2. OpenCL과 일치하는 도구 버전을 확인합니다™ 참조 BSP를 사용할 수 있습니다.
  3. 전체 인텔® 쿼터스® 소프트웨어 라이센스에 대한 액세스를 확인합니다.

참조 디자인 선택

사용자 지정 플랫폼에 맞는 참조 디자인 선택

인텔은 다음 플랫폼에 대한 OpenCL™ 참조 BSP 설계를 지원합니다. 특정 플랫폼에 대한 OpenCL™ BSP 포팅 가이드를 볼 수도 있습니다.

참조 디자인 수정

OpenCL BSP 포팅 가이드의 단계를 따라 참조 디자인을 platfrom에 수정합니다. 디자인 변경이 완료되면 첫 번째 커널을 컴파일해 보세요. 일반적으로 우리는 BSP의 다른 인터페이스를 테스트하는 Boardtest라는커널을 사용합니다. 이사회 및 일반 BSP 건물 단계에 대한 정보는 다음 가이드에 언급됩니다.

인텔® 오픈CL™ 사용자 지정 플랫폼 툴킷 사용자 가이드 (PDF) FPGA SDK ›

BSP를 구축하는 데 권장되는 단계:

  1. "평평한" 흐름으로 보드테스트를 컴파일하여 시간 닫힌 ".aocx" 파일을 생성합니다.
  2. 보드 테스트를 실행하여 ".aocx"의 유효성을 검사하고 테스트에서 인터페이스 대역폭 예상을 교차 확인합니다.
  3. "베이스" 빌드에 대한 평면도 작업을 시작하여 타이밍이 닫힌 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 명령줄에서 커널을 다시 컴파일합니다.

알려진 문제

추가 리소스

디버그 도구 사용자 가이드의 시스템 내 소스 및 프로브 섹션을 사용하여 디버깅 설계

AN 799: 빠른 인텔® Arria® 신호 프로브및 빠른 재컴파일을 사용하여 10 디자인 디버깅 ›

5. 권장 독서 및 교육

오픈CL™ 동영상

타이틀

묘사

OpenCL™ 1부로 시작하기

이 비디오는 Windows* 기계를 사용하여 사이클론® V SoC에서 OpenCL™ HelloWorld 및 OpenCL™ 빠른 푸리에 변환(FFT) 두 응용 프로그램을 실행하기 위한 즉시 사용 중인 절차에 대해 설명합니다.

OpenCL™ 2부로 시작하기

이 비디오는 Windows* 기계를 사용하여 사이클론® V SoC에서 OpenCL™ HelloWorld 및 OpenCL™ FFT라는 두 가지 응용 프로그램을 실행하기 위한 즉시 사용 중인 절차에 대해 설명합니다.

OpenCL 파트 3로 시작하기

이 비디오는 Windows* 기계를 사용하여 사이클론® V SoC에서 OpenCL™ HelloWorld 및 OpenCL™ FFT라는 두 가지 응용 프로그램을 실행하기 위한 즉시 사용 중인 절차에 대해 설명합니다.

OpenCL 파트 4로 시작하기

이 비디오는 Windows* 기계를 사용하여 사이클론® V SoC에서 OpenCL™ HelloWorld 및 OpenCL™ FFT라는 두 가지 응용 프로그램을 실행하기 위한 즉시 사용 중인 절차에 대해 설명합니다.

OpenCL 파트 5로 시작하기

이 비디오는 Windows* 기계를 사용하여 사이클론® V SoC에서 OpenCL™ HelloWorld 및 OpenCL™ FFT라는 두 가지 응용 프로그램을 실행하기 위한 즉시 사용 중인 절차에 대해 설명합니다.

사용자 지정 Verilog 모듈/디자인을 OpenCL™ 라이브러리로 패키지하는 방법

이 비디오에서는 고객이 이 기능을 사용하여 OpenCL™ 커널 코드에서 사용자 지정 처리 블록(RTL)을 가질 수 있는 이유에 대해 설명합니다. 비디오는 파일 만들기, 파일 구성 과 같은 디자인 예제를 설명하고 컴파일 흐름을 설명합니다. 비디오에는 디자인 예제의 데모도 표시됩니다.

인텔 FPGA SoC FPGA (리눅스 호스트)에 오픈 CL™ – 부품 1 – 도구 다운로드 및 설정

이 비디오는 인텔 FPGA SoC FPGA를 대상으로 OpenCL™ 커널 및 호스트 코드를 개발하는 데 필요한 도구를 다운로드, 설치 및 구성하는 방법을 보여 드립니다.

인텔 FPGA SoC FPGA (리눅스 호스트)에 오픈 CL™ – 부품 2 – 에뮬레이터와 벡터 추가 예제를 실행

이 비디오는 인텔 FPGA OpenCL에 내장된 에뮬레이터를 대상으로 하는 예제 OpenCL™ 응용 프로그램을 다운로드하고 컴파일하는 방법을 보여 ™.

오픈CL™ 인텔 FPGA SoC FPGA (리눅스 호스트) – 파트 3 – SoC FPGA에 대한 커널 및 호스트 코드 편집

이 비디오는 FPGA및 사이클론의 프로세서® V SoC FPGA를 대상으로 하는 OpenCL™ 커널 및 호스트 코드를 컴파일하는 방법을 보여줍니다.

인텔 FPGA SoC FPGA (리눅스 호스트)에 오픈 CL™ – 파트 4 – 런타임 환경의 설정

이 비디오에서는 Cyclone® V SoC 보드를 설정하여 OpenCL ™ 예제를 실행하고 보드에서 호스트 코드와 커널을 실행하는 방법을 보여 드립니다.

6. 도움말 받기

오픈CL 공인 서비스 제공업체

인텔은 인텔® FPGA 보드에 대한 OpenCL™ 보드 지원 패키지의 개발을 지원할 수 있는 다음과 같은 인증 된 서비스 제공 업체를 권장합니다. 이러한 제공업체는 인텔 FPGA 보드에 대한 고품질 OpenCL 보드 지원 패키지, 드라이버 및 설계 마이그레이션을 개발한 광범위한 경험을 가지고 있습니다.

테라식 주식회사

OpenCL과 OpenCL 로고는 크로노스의 허가에 의해 사용되는 Apple Inc.의 상표입니다.

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